Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fix profile name | Aleksey Kladov | 2019-07-09 | 1 | -1/+1 |
| | |||||
* | Merge #1515 | bors[bot] | 2019-07-09 | 8 | -106/+281 |
|\ | | | | | | | | | | | | | | | | | | | | | | | 1515: Trait environment r=matklad a=flodiebold This adds the environment, i.e. the set of `where` clauses in scope, when solving trait goals. That means that e.g. in ```rust fn foo<T: SomeTrait>(t: T) {} ``` , we are able to complete methods of `SomeTrait` on the `t`. This affects the trait APIs quite a bit (since every method that needs to be able to solve for some trait needs to get this environment somehow), so I thought I'd do it rather sooner than later ;) Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | Unify `normalize` and `implements` to simplify code | Florian Diebold | 2019-07-08 | 6 | -94/+62 |
| | | |||||
| * | Use environment for associated type normalization as well | Florian Diebold | 2019-07-08 | 6 | -19/+51 |
| | | |||||
| * | Start handling environment in trait resolution | Florian Diebold | 2019-07-08 | 6 | -14/+103 |
| | | | | | | | | | | I.e. if we are inside a function with some where clauses, we assume these where clauses hold. | ||||
| * | Refactor a bit & introduce Environment struct | Florian Diebold | 2019-07-08 | 5 | -19/+105 |
| | | |||||
* | | Merge #1512 | bors[bot] | 2019-07-09 | 2 | -17/+103 |
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1512: Infer ? operator r=unrealhoang a=unrealhoang Logical continuation of https://github.com/rust-analyzer/rust-analyzer/pull/1501 cc https://github.com/rust-analyzer/rust-analyzer/issues/1426 Co-authored-by: Unreal Hoang <[email protected]> | ||||
| * | | beautify tests | Unreal Hoang | 2019-07-09 | 1 | -20/+36 |
| | | | |||||
| * | | use namespaced consts for KnownName | Unreal Hoang | 2019-07-08 | 1 | -12/+10 |
| | | | |||||
| * | | projection over std::ops::Try::Ok to infer try/? | Unreal Hoang | 2019-07-08 | 2 | -2/+74 |
| |/ | |||||
* / | Look for the fXX_runtime lang items during method resolution. | Marco Groppo | 2019-07-08 | 1 | -4/+6 |
|/ | |||||
* | cargo format | Muhammad Mominul Huque | 2019-07-07 | 1 | -3/+3 |
| | |||||
* | Constify KnownName's | Muhammad Mominul Huque | 2019-07-07 | 1 | -6/+7 |
| | |||||
* | Merge #1501 | bors[bot] | 2019-07-07 | 4 | -35/+156 |
|\ | | | | | | | | | | | | | | | 1501: Infer for loop variable r=flodiebold a=unrealhoang My take on https://github.com/rust-analyzer/rust-analyzer/issues/1425 Co-authored-by: Unreal Hoang <[email protected]> | ||||
| * | add projection to infer for loop variable | Unreal Hoang | 2019-07-07 | 4 | -35/+156 |
| | | |||||
* | | Merge #1499 | bors[bot] | 2019-07-07 | 1 | -1/+1 |
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | 1499: processing attribute #[path] of module r=matklad a=andreevlex support two cases - simple name file `foo.rs` - declaration in mod.rs #1211 Co-authored-by: Alexander Andreev <[email protected]> | ||||
| * | Moved module resolution test in mods.rs | Alexander Andreev | 2019-07-07 | 1 | -1/+1 |
| | | |||||
* | | Make EnumVariant a GenericDef and simplify some code | Florian Diebold | 2019-07-06 | 3 | -11/+12 |
| | | |||||
* | | Add trait obligations for where clauses when calling functions/methods | Florian Diebold | 2019-07-06 | 4 | -30/+140 |
|/ | | | | | E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x: Into<u32>`, etc. | ||||
* | Clippy trivially_copy_pass_by_ref | Jeremy Kolb | 2019-07-05 | 4 | -9/+9 |
| | |||||
* | Merge #1491 | bors[bot] | 2019-07-05 | 1 | -1/+1 |
|\ | | | | | | | | | | | | | | | | | | | 1491: More clippy r=matklad a=kjeremy A few more clippy changes. I'm a little unsure of the second commit. It's the trivially_copy_pass_by_ref lint and there are a number of places in the code we could use it if it makes sense. Co-authored-by: Jeremy Kolb <[email protected]> | ||||
| * | Clippy changes | Jeremy Kolb | 2019-07-05 | 1 | -1/+1 |
| | | |||||
* | | Fix clippy::redundant_clone | Shotaro Yamada | 2019-07-05 | 1 | -2/+1 |
|/ | |||||
* | Some clippy fixes for 1.36 | Jeremy Kolb | 2019-07-04 | 2 | -10/+8 |
| | |||||
* | allow rustfmt to reorder imports | Aleksey Kladov | 2019-07-04 | 9 | -63/+67 |
| | | | | | | This wasn't a right decision in the first place, the feature flag was broken in the last rustfmt release, and syntax highlighting of imports is more important anyway | ||||
* | cache chalk queries | Aleksey Kladov | 2019-06-26 | 2 | -194/+220 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives a significant speedup, because chalk will call these functions several times even withing a single revision. The only significant one here is `impl_data`, but I figured it might be good to cache others just for consistency. The results I get are: Before: from scratch: 16.081457952s no change: 15.846493ms trivial change: 352.95592ms comment change: 361.998408ms const change: 457.629212ms After: from scratch: 14.910610278s no change: 14.934647ms trivial change: 85.633023ms comment change: 96.433023ms const change: 171.543296ms Seems like a nice win! | ||||
* | Add comment | Shotaro Yamada | 2019-06-25 | 1 | -6/+8 |
| | |||||
* | Method resolution for slices | Shotaro Yamada | 2019-06-24 | 1 | -25/+36 |
| | |||||
* | rename XSignature -> XData | Aleksey Kladov | 2019-06-18 | 3 | -25/+23 |
| | |||||
* | Add test for autoderef infinite recursion | Florian Diebold | 2019-06-16 | 1 | -0/+25 |
| | |||||
* | Simplifications / cleanup from review | Florian Diebold | 2019-06-16 | 3 | -3/+4 |
| | |||||
* | Some more cleanup | Florian Diebold | 2019-06-15 | 1 | -4/+4 |
| | |||||
* | Check that Deref has the right number of parameters | Florian Diebold | 2019-06-15 | 1 | -2/+7 |
| | |||||
* | Somewhat handle variables in the derefed type, and add another test | Florian Diebold | 2019-06-15 | 2 | -5/+50 |
| | |||||
* | Implement * operation using Deref trait | Florian Diebold | 2019-06-15 | 1 | -3/+5 |
| | |||||
* | Implement autoderef using the Deref trait | Florian Diebold | 2019-06-15 | 4 | -33/+84 |
| | | | | - add support for other lang item targets, since we need the Deref lang item | ||||
* | Add basic infrastructure for assoc type projection | Florian Diebold | 2019-06-15 | 3 | -10/+135 |
| | |||||
* | Add test for Deref | Florian Diebold | 2019-06-15 | 1 | -0/+29 |
| | |||||
* | check for cancellation when executing queries | Aleksey Kladov | 2019-06-12 | 2 | -2/+0 |
| | | | | | | | Note that we can't just remove CheckCanceled trait altogether: sometimes it's useful to check for cancellation while the query is running! We do this, for example, in the name resolution fixed-point loop. | ||||
* | remove inherent source impls | Aleksey Kladov | 2019-06-11 | 1 | -1/+1 |
| | |||||
* | use Source for Function | Aleksey Kladov | 2019-06-11 | 1 | -1/+1 |
| | |||||
* | remove some hacks from nameresolution for macros | Aleksey Kladov | 2019-06-08 | 1 | -2/+4 |
| | |||||
* | somewhat better name | Aleksey Kladov | 2019-06-08 | 2 | -19/+22 |
| | |||||
* | [#1083] Try block syntax: fix tests | Andrey Tkachenko | 2019-06-06 | 1 | -1/+0 |
| | |||||
* | [#1083] Try block syntax | Andrey Tkachenko | 2019-06-06 | 1 | -0/+6 |
| | |||||
* | Fix clippy::or_fun_call | Alan Du | 2019-06-04 | 1 | -1/+1 |
| | |||||
* | Fix clippy::identity_conversion | Alan Du | 2019-06-04 | 1 | -3/+3 |
| | |||||
* | Fix clippy::into_iter_on_ref | Alan Du | 2019-06-04 | 1 | -1/+1 |
| | |||||
* | Fix clippy::single_match | Alan Du | 2019-06-04 | 3 | -47/+33 |
| | |||||
* | don't poison mutex around chalk | Aleksey Kladov | 2019-06-01 | 1 | -2/+3 |
| | | | | | | | | | We use panics for cancellation, so we could trigger panic while holding the solver. std::sync::Mutex will be poisoned as a result, which and all further attempts to use solver (from other threads) will panic as well. This commit switches to parking_lot::Mutex which just unlocks on panic. |