aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
*-. Merge #8136 #8146bors[bot]2021-03-2211-113/+215
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8136: Introduce QuantifiedWhereClause and DynTy analogous to Chalk r=flodiebold a=flodiebold This introduces a bunch of new binders in lots of places, which we have to be careful about, but we had to add them at some point. There's a lot of skipping of the binders; once we're done with the Chalk move, we should review the remaining ones. 8146: Document patch policy r=matklad a=matklad bors r+ 🤖 Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]>
| | * Update docs/dev/README.mdAleksey Kladov2021-03-221-1/+1
| | | | | | | | | Co-authored-by: Laurențiu Nicola <[email protected]>
| | * Document patch policyAleksey Kladov2021-03-221-0/+3
| | |
| * | Use QuantifiedWhereClause in generic_predicates as wellFlorian Diebold2021-03-219-37/+28
| | | | | | | | | | | | | | | Still far too much binder skipping going on; I find it hard to imagine this is all correct, but the tests pass.
| * | Introduce QuantifiedWhereClause and DynTy analogous to ChalkFlorian Diebold2021-03-218-105/+213
| | | | | | | | | | | | | | | This introduces a bunch of new binders in lots of places, which we have to be careful about, but we had to add them at some point.
* | | Merge #8145bors[bot]2021-03-221-0/+14
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8145: Document our security stance r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Apply suggestions from code reviewAleksey Kladov2021-03-221-2/+2
| | | | | | | | | | | | Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | Update docs/user/manual.adocAleksey Kladov2021-03-221-1/+1
| | |/ | |/| | | | Co-authored-by: bjorn3 <[email protected]>
| * | Document our security stanceAleksey Kladov2021-03-221-0/+14
|/ / | | | | | | changelog: feature
* | Merge #8143bors[bot]2021-03-223-5/+8
|\ \ | | | | | | | | | | | | | | | | | | | | | 8143: Reexport PrefixKind to remove deps of hir in rust-analyzer crate r=edwin0cheng a=edwin0cheng bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | Reexport PrefixKind to remove deps to hirEdwin Cheng2021-03-223-5/+8
|/ /
* | Merge #8137bors[bot]2021-03-213-9/+51
|\ \ | | | | | | | | | | | | | | | | | | | | | 8137: Fix box pattern inference panic r=flodiebold a=Veykril Fixes #6560 Co-authored-by: Lukas Wirth <[email protected]>
| * | Fix box pattern inference panicLukas Wirth2021-03-213-9/+51
| | |
* | | Merge #8134bors[bot]2021-03-215-30/+108
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 8134: Correct the paths of submodules from the include! macro r=edwin0cheng a=sticnarf This PR should fix #7846. It mostly follows the instructions from @edwin0cheng in that issue. Co-authored-by: Yilin Chen <[email protected]>
| * | check is_include_macro only when attr_path is not specifiedYilin Chen2021-03-211-4/+3
| | | | | | | | | | | | Signed-off-by: Yilin Chen <[email protected]>
| * | use the included file as the source of expanded include macroYilin Chen2021-03-215-28/+107
| | | | | | | | | | | | Signed-off-by: Yilin Chen <[email protected]>
* | | Merge #8133bors[bot]2021-03-217-16/+173
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | 8133: Ignore type bindings in generic_predicates_for_param (fix panic on ena and crates depending on it) r=flodiebold a=flodiebold This allows us to handle more cases without a query cycle, which includes certain cases that rustc accepted. That in turn means we avoid triggering salsa-rs/salsa#257 on valid code (it will still happen if the user writes an actual cycle). We actually accept more definitions than rustc now; that's because rustc only ignores bindings when looking up super traits, whereas we now also ignore them when looking for predicates to disambiguate associated type shorthand. We could introduce a separate query for super traits if necessary, but for now I think this should be fine. Co-authored-by: Florian Diebold <[email protected]>
| * | Ignore type bindings in generic_predicates_for_paramFlorian Diebold2021-03-216-19/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to handle more cases without a query cycle, which includes certain cases that rustc accepted. That in turn means we avoid triggering salsa-rs/salsa#257 on valid code (it will still happen if the user writes an actual cycle). We actually accept more definitions than rustc now; that's because rustc only ignores bindings when looking up super traits, whereas we now also ignore them when looking for predicates to disambiguate associated type shorthand. We could introduce a separate query for super traits if necessary, but for now I think this should be fine.
| * | Test for a Salsa bugFlorian Diebold2021-03-213-0/+124
| | |
* | | Merge #8132bors[bot]2021-03-213-2/+37
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8132: Add `'` to trigger_characters, allowing more direct lifetime completions r=Veykril a=Veykril Fixes having to type a character after `'` to complete lifetimes and labels Co-authored-by: Lukas Wirth <[email protected]>
| * | | Add `'` to trigger_characters, allowing more direct lifetime completionsLukas Wirth2021-03-213-2/+37
| | | |
* | | | Merge #8135bors[bot]2021-03-2139-168/+130
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8135: more clippy::{perf, complexity, style} fixes r=Veykril a=matthiaskrgr Co-authored-by: Matthias Krüger <[email protected]>
| * | | | a lot of clippy::style fixesMatthias Krüger2021-03-2119-69/+52
| | | | |
| * | | | clippy::complexity simplifications related to IteratorsMatthias Krüger2021-03-2112-78/+62
| | | | |
| * | | | xtask: remove redundant lifetime (clippy::extra_unused_lifetimes)Matthias Krüger2021-03-211-1/+1
| | | | |
| * | | | use strip_prefix() instead of starts_with and slicing (clippy::manual_strip)Matthias Krüger2021-03-214-13/+9
| | | | |
| * | | | remove more redundant clones (clippy::redundant_clone())Matthias Krüger2021-03-215-7/+6
| | |/ / | |/| |
* | | | Merge #8128bors[bot]2021-03-212-6/+28
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8128: Expand legacy-scoped macro during collection r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8120 Co-authored-by: Jonas Schievink <[email protected]>
| * | | Expand legacy-scoped macro during collectionJonas Schievink2021-03-212-6/+28
| | | |
* | | | Merge #8131bors[bot]2021-03-216-28/+93
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8131: Do smart case fuzzy search during flyimports r=SomeoneToIgnore a=SomeoneToIgnore For now, last actionable part of https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/autoimport.20weirdness Should help https://github.com/rust-analyzer/rust-analyzer/issues/7902 Now during the flyimport completion, if the input is searched case-sensitively, if the input contains any non-lowercase letters; otherwise the lookup done as before, case-insensitively. Co-authored-by: Kirill Bulatov <[email protected]>
| * | | | Fix the profile stringKirill Bulatov2021-03-211-1/+1
| | | | |
| * | | | Less reallocationsKirill Bulatov2021-03-214-21/+12
| | | | |
| * | | | Use smart case in flyimport items lookupKirill Bulatov2021-03-213-6/+80
|/ / / /
* | | | Merge #8123bors[bot]2021-03-216-224/+250
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8123: Do not display unqualified assoc item completions r=SomeoneToIgnore a=SomeoneToIgnore Part of https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/autoimport.20weirdness Removes all flyimport completions for any unqualified associated type, effectively reverting https://github.com/rust-analyzer/rust-analyzer/pull/8095 I've explained the reasoning in the corresponding FIXME and open to discussions. As an alternative way, we could add yet another parameter in the method that's used by the `qualify_path` and enable it for the qualify assists only. Co-authored-by: Kirill Bulatov <[email protected]>
| * | | Disable unqualified assoc items completion for nowKirill Bulatov2021-03-203-2/+10
| | | |
| * | | DocsKirill Bulatov2021-03-205-15/+20
| | | |
| * | | Do not query item search by name eagerlyKirill Bulatov2021-03-204-222/+200
| | | |
| * | | Do not propose assoc items without qualifiersKirill Bulatov2021-03-203-3/+38
| | | |
* | | | Merge #8130bors[bot]2021-03-211-3/+0
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8130: Revert "Temporarily run git describe on CI to debug #8043" r=lnicola a=lnicola Reverts rust-analyzer/rust-analyzer#8121 bors r+ changelog skip Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | Revert "Temporarily run git describe on CI to debug #8043"Laurențiu Nicola2021-03-211-3/+0
|/ / /
* | | Merge #8127bors[bot]2021-03-218-18/+184
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 8127: Add label completion r=Veykril a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | Fix incorrect scoping in while expressionsLukas Wirth2021-03-213-14/+41
| | |
| * | Add label completionLukas Wirth2021-03-214-7/+100
| | |
| * | Track labels in scopesLukas Wirth2021-03-214-11/+57
| | |
* | | Merge #8122bors[bot]2021-03-218-14/+36
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8122: Make bare underscore token an Ident rather than Punct in proc-macro r=edwin0cheng a=kevinmehall In rustc and proc-macro2, a bare `_` token is parsed for procedural macro purposes as `Ident` rather than `Punct` (see https://github.com/rust-lang/rust/pull/48842). This changes rust-analyzer to match rustc's behavior and implementation by handling `_` as an Ident in token trees, but explicitly preventing `$x:ident` from matching it in MBE. proc macro crate: ```rust #[proc_macro] pub fn input(input: proc_macro::TokenStream) -> proc_macro::TokenStream { dbg!(input) } ``` test crate: ```rust test_proc_macro::input!(_); ``` output (rustc): ```rust [test-proc-macro/src/lib.rs:10] input = TokenStream [ Ident { ident: "_", span: #0 bytes(173..174), }, ] ``` output (rust-analyzer before this change): ```rust [test-proc-macro/src/lib.rs:10] input = TokenStream [ Punct { ch: '_', spacing: Joint, span: 4294967295, }, ] ``` output (rust-analyzer after this change): ```rust [test-proc-macro/src/lib.rs:10] input = TokenStream [ Ident { ident: "_", span: 4294967295, }, ] ``` Co-authored-by: Kevin Mehall <[email protected]>
| * | Fix and test edge cases of `_` as identKevin Mehall2021-03-203-3/+13
| | |
| * | Make bare underscore token an Ident rather than Punct in proc-macroKevin Mehall2021-03-206-12/+24
| | |
* | | Merge #8124bors[bot]2021-03-205-14/+233
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8124: Add basic lifetime completion r=Veykril a=Veykril This adds basic lifetime completion, basic in the sense that the completions for lifetimes are only shown when the user enters `'` followed by a char. Showing them when nothing is entered is kind of a pain, as we would want them to only show up where they are useful which in turn requires a lot of tree traversal and cursor position checking to verify whether the position is valid for a lifetime. This in itself doesn't seem too bad as usually when you know you want to write a lifetime putting `'` to ask for lifetime completions seems fine. ~~I'll take a look at whether its possible to lift the restriction of having to put a char after `'`.~~ This actually already works so I guess this is the clients responsibility, in which case VSCode doesn't like it. ![TYH9gIlyVo](https://user-images.githubusercontent.com/3757771/111886437-c9b02f80-89cd-11eb-9bee-340f1536b0de.gif) Co-authored-by: Lukas Wirth <[email protected]>
| * | | Add basic lifetime completionLukas Wirth2021-03-205-14/+233
| |/ /
* | | Merge #8125bors[bot]2021-03-205-24/+44
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 8125: Don't use an untyped String for ActiveParam tracking r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>