aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Improve autocompletion by looking on the type and nameBenjamin Coenen2020-04-214-48/+47
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-04-1828-180/+691
|\
| * find_path: Builtins are always in scopeFlorian Diebold2020-04-182-25/+50
| | | | | | | | Fixes #3977.
| * Merge #4026bors[bot]2020-04-181-1/+10
| |\ | | | | | | | | | | | | | | | | | | | | | 4026: Omit more parameter hints in the presence of underscores r=matklad a=lnicola Fixes #4017. Co-authored-by: Laurențiu Nicola <[email protected]>
| | * Omit more parameter hints in the presence of underscoresLaurențiu Nicola2020-04-181-1/+10
| | |
| * | Merge #4023bors[bot]2020-04-184-27/+92
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4023: Fix another crash from wrong binders r=matklad a=flodiebold Basically, if we had something like `dyn Trait<T>` (where `T` is a type parameter) in an impl we lowered that to `dyn Trait<^0.0>`, when it should be `dyn Trait<^1.0>` because the `dyn` introduces a new binder. With one type parameter, that's just wrong, with two, it'll lead to crashes. Co-authored-by: Florian Diebold <[email protected]>
| | * | Fix another crash from wrong bindersFlorian Diebold2020-04-174-27/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Basically, if we had something like `dyn Trait<T>` (where `T` is a type parameter) in an impl we lowered that to `dyn Trait<^0.0>`, when it should be `dyn Trait<^1.0>` because the `dyn` introduces a new binder. With one type parameter, that's just wrong, with two, it'll lead to crashes.
| * | | Fix incorrect order of syntax highlight rangesLeander Tentrup2020-04-172-1/+14
| | | |
| * | | Fix type equality for dyn TraitFlorian Diebold2020-04-173-5/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a lot of false type mismatches. (And as always when touching the unification code, I have to say I'm looking forward to replacing it by Chalk's...)
| * | | Add two more tests for associated typesFlorian Diebold2020-04-171-0/+174
| | | |
| * | | Don't use SyntaxNodePtr::range when determining scope for offsetAleksey Kladov2020-04-171-47/+52
| | |/ | |/|
| * | Merge #4012bors[bot]2020-04-172-3/+59
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4012: fix panic on ellipsis in pattern r=flodiebold a=JoshMcguigan fixes #3999 Co-authored-by: Josh Mcguigan <[email protected]>
| | * | fix panic on ellipsis in patternJosh Mcguigan2020-04-172-3/+59
| | | |
| * | | Don\t suggest import itself as a completion for importAleksey Kladov2020-04-172-1/+40
| | | |
| * | | Merge #4010bors[bot]2020-04-178-17/+83
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4010: Fix handling of ranges in diagnostics r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| | * | | Simplify Diagnostic structureAleksey Kladov2020-04-176-51/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not entirely clear what subnode ranges should mean in the presence of macros, so let's leave them out for now. We are not using them heavily anyway.
| | * | | Correctly highlight ranges of diagnostics from macrosAleksey Kladov2020-04-175-21/+89
| | | | | | | | | | | | | | | | | | | | closes #2799
| | * | | Don't expose impl details of SyntaxPtrAleksey Kladov2020-04-178-14/+55
| | | | |
| * | | | Merge #4009bors[bot]2020-04-171-9/+10
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4009: Better snippet when completing trait method r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| | * | | | Better snippet when completing trait methodAleksey Kladov2020-04-171-9/+10
| | |/ / /
| * | | | Merge #4004bors[bot]2020-04-172-2/+6
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4004: Use mmap for proc macro libs r=matklad a=lnicola Fixes #4002. Co-authored-by: Laurențiu Nicola <[email protected]>
| | * | | | Use mmap for proc macro libsLaurențiu Nicola2020-04-172-2/+6
| | |/ / /
| * | | | Merge #3996bors[bot]2020-04-172-6/+2
| |\ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 3996: Fix path for proc-macro in nightly / stable release r=matklad a=edwin0cheng I messed up that I forget we use different executable names for nightly / stable release, I changed to use the current executable name instead. Co-authored-by: Edwin Cheng <[email protected]>
| | * | | Fix path for proc-macro in nightly / stable buildEdwin Cheng2020-04-162-6/+2
| | | | |
| * | | | Reduce allocations when looking up proc macro declLaurențiu Nicola2020-04-171-37/+35
| | |/ / | |/| |
* | | | feat: improve dot completions with scoringBenjamin Coenen2020-04-171-5/+1
| | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-04-1744-322/+1061
|\| | |
| * | | Merge #3995bors[bot]2020-04-163-149/+150
| |\ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | 3995: Separate project discovery from project loading r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| | * | Unmix error handling when discovering workspacesAleksey Kladov2020-04-163-75/+41
| | | | | | | | | | | | | | | | | | | | Hitting an io::Error is a legit problem. Finding more than one Cargo.toml is not.
| | * | Decouple project loading from project discovery a bitAleksey Kladov2020-04-163-128/+163
| | |/
| * | Merge #3958bors[bot]2020-04-1614-29/+201
| |\ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3958: Add proc-macro related config and tests r=matklad a=edwin0cheng This PR do the following things: 1. Add cli argument `proc-macro` for running proc-macro server. 2. Added support for proc-macro in bench and analysis-stats 3. Added typescript config for proc-macros 4. Added an heavy test for proc-macros. To test it out: 1. run `cargo xtask install --proc-macro` 2. add `"rust-analyzer.cargo.loadOutDirsFromCheck": true"` and `"rust-analyzer.procMacro.enabled": true"` in vs code config. [Edit] Change to use `rust-analyzer proc-macro` for running proc-macro standalone process. Co-authored-by: Edwin Cheng <[email protected]>
| | * Fix extern_process argsEdwin Cheng2020-04-162-8/+22
| | |
| | * Add proc-macro cli command for rust-analyzerEdwin Cheng2020-04-1611-18/+43
| | |
| | * Add tests for proc_macroEdwin Cheng2020-04-161-1/+88
| | |
| | * Add config for proc_macroEdwin Cheng2020-04-163-1/+11
| | |
| | * Add with-proc-macro in bench ,stats and diagnositcsEdwin Cheng2020-04-166-13/+49
| | |
| * | Don't expose SyntaxNodePtr impl detailsAleksey Kladov2020-04-164-9/+7
| | |
| * | Merge #3979bors[bot]2020-04-163-3/+51
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3979: fix missing match arm false positive for enum with no variants r=flodiebold a=JoshMcguigan fixes #3974 Co-authored-by: Josh Mcguigan <[email protected]>
| | * | fix false positive for enum with no variantsJosh Mcguigan2020-04-163-3/+51
| | | |
| * | | Test for non-working proc macro server assoc typesFlorian Diebold2020-04-161-0/+68
| | | |
| * | | Switch Chalk to recursive solverFlorian Diebold2020-04-165-40/+53
| | | | | | | | | | | | | | | | + various fixes related to that.
| * | | Update ChalkFlorian Diebold2020-04-162-5/+6
| | |/ | |/|
| | |
| | \
| *-. \ Merge #3966 #3968bors[bot]2020-04-155-16/+119
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3966: Add support for bounds on associated types in trait definitions r=matklad a=flodiebold E.g. ```rust trait Trait { type Item: SomeOtherTrait; } ``` Note that these don't simply desugar to where clauses; as I understand it, where clauses have to be proved by the *user* of the trait, but these bounds are proved by the *implementor*. (Also, where clauses on associated types are unstable.) (Another one from my recursive solver branch...) 3968: Remove format from syntax_bridge hot path r=matklad a=edwin0cheng Although only around 1% speed up by running: ``` Measure-Command {start-process .\target\release\rust-analyzer "analysis-stats -q ." -NoNewWindow -wait} ``` Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Edwin Cheng <[email protected]>
| | | * | Remove format from syntax_bridge hot pathEdwin Cheng2020-04-131-5/+6
| | | | |
| | * | | Add support for bounds on associated types in trait definitionsFlorian Diebold2020-04-134-11/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E.g. ``` trait Trait { type Item: SomeOtherTrait; } ``` Note that these don't simply desugar to where clauses; as I understand it, where clauses have to be proved by the *user* of the trait, but these bounds are proved by the *implementor*. (Also, where clauses on associated types are unstable.)
| | | | |
| | \ \ \
| | \ \ \
| | \ \ \
| *---. \ \ \ Merge #3964 #3965 #3967bors[bot]2020-04-159-32/+191
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3964: Nicer Chalk debug logs r=matklad a=flodiebold I'm looking at a lot of Chalk debug logs at the moment, so here's a few changes to make them slightly nicer... 3965: Implement inline associated type bounds r=matklad a=flodiebold Like `Iterator<Item: SomeTrait>`. This is an unstable feature, but it's used in the standard library e.g. in the definition of Flatten, so we can't get away with not implementing it :) (This is cherry-picked from my recursive solver branch, where it works better, but I did manage to write a test that works with the current Chalk solver as well...) 3967: Handle `Self::Type` in trait definitions when referring to own associated type r=matklad a=flodiebold It was implemented for other generic parameters for the trait, but not for `Self`. (Last one off my recursive solver branch :smile: ) Co-authored-by: Florian Diebold <[email protected]>
| | | | * | | | Handle `Self::Type` in trait definitions when referring to own associated typeFlorian Diebold2020-04-133-5/+38
| | | | |/ / / | | | | | | | | | | | | | | | | | | | | | It was implemented for other generic parameters for the trait, but not for `Self`.
| | | * / / / Implement inline associated type boundsFlorian Diebold2020-04-136-17/+120
| | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like `Iterator<Item: SomeTrait>`. This is an unstable feature, but it's used in the standard library e.g. in the definition of Flatten, so we can't get away with not implementing it :)
| | * | | | Nicer display of projections in Chalk logsFlorian Diebold2020-04-132-8/+11
| | | | | |
| | * | | | Nicer display of closures in Chalk logsFlorian Diebold2020-04-131-2/+22
| | |/ / /