aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #8897bors[bot]2021-05-204-6/+74
|\ | | | | | | | | | | | | | | 8897: minor: Don't compare ast::Visibility by stringifying r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Tobias Wirth <[email protected]>
| * Don't compare ast::Visibility by stringifyingLukas Tobias Wirth2021-05-204-6/+74
| |
* | Merge #8893bors[bot]2021-05-202-10/+9
|\ \ | |/ |/| | | | | | | | | | | 8893: Update outdated auto-import documentation r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Tobias Wirth <[email protected]>
| * Update outdated auto-import documentationLukas Tobias Wirth2021-05-202-10/+9
|/
* Merge #8873bors[bot]2021-05-2010-48/+312
|\ | | | | | | | | | | | | | | | | | | | | | | 8873: Implement import-granularity guessing r=matklad a=Veykril This renames our `MergeBehavior` to `ImportGranularity` as rustfmt has it as the purpose of them are basically the same. `ImportGranularity::Preserve` currently has no specific purpose for us as we don't have an organize imports assist yet, so it currently acts the same as `ImportGranularity::Item`. We now try to guess the import style on a per file basis and fall back to the user granularity setting if the file has no specific style yet or where it is ambiguous. This can be turned off by setting `import.enforceGranularity` to `true`. Closes https://github.com/rust-analyzer/rust-analyzer/issues/8870 Co-authored-by: Lukas Tobias Wirth <[email protected]>
| * Check for differing attributes in granularity guessingLukas Tobias Wirth2021-05-203-7/+21
| |
| * Replace ImportGranularity::Guess with guessing boolean flagLukas Tobias Wirth2021-05-1910-33/+219
| |
| * Add ImportGranularity::GuessLukas Tobias Wirth2021-05-183-15/+11
| |
| * Implement import-granularity guessingLukas Tobias Wirth2021-05-181-2/+33
| |
| * MergeBehavior -> ImportGranularityLukas Tobias Wirth2021-05-188-38/+75
| |
* | Merge #8889bors[bot]2021-05-192-9/+27
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8889: internal: Track in-scope derive helpers during nameres r=jonas-schievink a=jonas-schievink ...without using them yet bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Track in-scope derive helpers during nameresJonas Schievink2021-05-192-9/+27
|/ /
* | Merge #8888bors[bot]2021-05-192-4/+33
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8888: fix: fix unresolved attribute fallback again r=jonas-schievink a=jonas-schievink `ModItem`s are per-file, so we have to track the file if we store them in the crate-level `DefCollector`. Fixes the remaining issue in https://github.com/rust-analyzer/rust-analyzer/pull/8882#issuecomment-844379170 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Fix unresolved attribute fallback againJonas Schievink2021-05-192-4/+33
|/ /
| |
| \
*-. \ Merge #8885 #8887bors[bot]2021-05-1911-281/+193
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8885: internal: greatly simplify eager macro representation r=jonas-schievink a=jonas-schievink - Share structures with lazy macros, make both use `MacroCallLoc`. - Remove `intern_eager_expansion`, `EagerCallLoc`, `EagerMacroId`, and *many* matches on `MacroCallId`. - Make a lot of FIXMEs obsolete since the code no longer distinguishes between eager and lazy macros. - Add `EagerCallInfo`, which is `Some` for calls to eager macros and holds the argument or expansion result and the included file. 8887: fix: fix derive collection after unresolved attribute fallback r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/pull/8882#issuecomment-844379170 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| | * | Fix derive collection after unresolved attribute fallbackJonas Schievink2021-05-192-2/+26
| |/ / |/| |
* | | Merge #8884bors[bot]2021-05-191-5/+20
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8884: fix: add_explicit_type produces invalid code on `@` patterns r=Veykril a=iDawer In ```rust let name @ () = (); ``` an explicit type should be inserted after the pattern, not just after the name. `let` statement defined as `LetStmt = Attr* 'let' Pat (':' Type)? '=' initializer:Expr ';'` Co-authored-by: Dawer <[email protected]>
| * | | add_explicit_type respects `@` patternsDawer2021-05-191-5/+20
| | | |
| | * | Clarify field nameJonas Schievink2021-05-194-6/+6
| | | |
| | * | Simplify eager macro representationJonas Schievink2021-05-1910-279/+167
| |/ / |/| |
* | | Merge #8875bors[bot]2021-05-197-13/+123
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8875: fix: false positive "Missing match arm" when an or-pattern has mismatched types r=flodiebold a=iDawer ![Screenshot_20210519_114510](https://user-images.githubusercontent.com/7803845/118768935-19e12c00-b86f-11eb-90c4-1eed3f2bf57f.jpg) `InferenceResult` now records pattern type mismatches. Co-authored-by: Dawer <[email protected]>
| * | | Check patterns for type match recursively.Dawer2021-05-192-2/+30
| | | |
| * | | internal: Record mismatches of pattern types.Dawer2021-05-196-11/+93
| |/ /
* | | Merge #8882bors[bot]2021-05-192-28/+160
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8882: internal: resolve attributes in name resolution (minimal version) r=jonas-schievink a=jonas-schievink Closes https://github.com/rust-analyzer/rust-analyzer/pull/7049 This should not have any observable effect, since we don't attempt to expand attribute macros yet, and I have implemented a fallback that treats items with unresolved attributes as if the attribute wasn't there. Derive helpers are not yet resolved. `#![register_{attr,tool}]` are not yet supported. Co-authored-by: Jonas Schievink <[email protected]>
| * | | Rewrite `resolve_imports` to use an iteratorJonas Schievink2021-05-191-19/+23
| | | | | | | | | | | | | | | | This allows reusing the original vector's allocation
| * | | Restructure nameres loop to be a bit clearerJonas Schievink2021-05-191-38/+41
| | | |
| * | | internal: resolve attributes in name resolutionJonas Schievink2021-05-192-3/+128
| | | |
* | | | Merge #8877bors[bot]2021-05-192-12/+17
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8877: feat: allow clients to feature detect symbol filtering r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | feat: allow clients to feature detect symbol filteringAleksey Kladov2021-05-192-12/+17
| | |/ / | |/| |
* | | | Merge #8880bors[bot]2021-05-191-5/+7
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 8880: fix: prepare_rename failing for modules r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Tobias Wirth <[email protected]>
| * | | Fix prepare_rename failing for modulesLukas Tobias Wirth2021-05-191-5/+7
| | |/ | |/|
* | | Merge #7698bors[bot]2021-05-188-8/+220
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7698: Add new LSP extension for workspace symbol lookup r=matklad a=alcroito As well as all symbol types (functions, modules). Remove outdated documentation regarding symbol lookup filtering. Closes #4881 Co-authored-by: alcroito <[email protected]>
| * | | Add new LSP extension for workspace symbol lookupalcroito2021-05-178-8/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new extension allows filtering of workspace symbool lookup results by search scope or search kind. Filtering can be configured in 3 different ways: - The '#' or '*' markers can be added inline with the symbol lookup query. The '#' marker means symbols should be looked up in the current workspace and any dependencies. If not specified, only current workspace is considered. The '*' marker means all kinds of symbols should be looked up (types, functions, etc). If not specified, only type symbols are returned. - Each LSP request can take an optional search_scope or search_kind argument query parameter. - Finally there are 2 global config options that can be set for all requests served by the active RA instance. Add support for setting the global config options to the VSCode extension. The extension does not use the per-request way, but it's useful for other IDEs. The latest version of VSCode filters out the inline markers, so currently the only reasonable way to use the new functionality is via the global config.
* | | | Merge #8871bors[bot]2021-05-181-23/+13
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | 8871: internal: Simplify `DefCollector::resolve_macros` r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Simplify `DefCollector::resolve_macros`Jonas Schievink2021-05-181-23/+13
| | |/ | |/|
* | | Merge #8345bors[bot]2021-05-1812-121/+158
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8345: Add pub mod option for UnlinkedFile r=rainy-me a=rainy-me close #8228 This is a draft that changes `Diagnostic` to contain multiple fixes. Pre analysis is in https://github.com/rust-analyzer/rust-analyzer/issues/8228#issuecomment-812887085 Because this solution is straightforward so I decided to type it out for discussion. Currently the `check_fix` is not able to test the situation when multiple fixes available. <del>Also because `Insert 'mod x;'` and `Insert 'pub mod x;'` are so similar, I don't know how to test them correctly and want some suggestions.</del>. I added `check_fixes` to allow checking mutiple possible fixes. In additional, instead of append after possible existing `mod y`, I think it's possible to Insert `pub mod x;` after `pub mod y`. Should I implement this too? Co-authored-by: rainy-me <[email protected]>
| * | Add pub mod option for UnlinkedFilerainy-me2021-05-1812-121/+158
|/ /
* | Merge #8766bors[bot]2021-05-171-2/+63
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8766: Extract function assist will add async if required r=Veykril a=JamieCunliffe The extract function assist will check for an AWAIT_EXPR or AWAIT_KW in the body and if found, will add async to the generated function. closes #8232 Co-authored-by: Jamie Cunliffe <[email protected]>
| * | Extract function assist will add async if requiredJamie Cunliffe2021-05-171-2/+63
|/ / | | | | | | | | The extract function assist will check for an AWAIT_EXPR in the body and if found, will add async to the generated function.
* | internal: use more evocative test folder nameAleksey Kladov2021-05-173-5/+4
| |
* | minor: adjust config nameAleksey Kladov2021-05-178-74/+41
| |
* | Merge #8795bors[bot]2021-05-176-10/+78
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8795: Allow semantic tokens for strings to be disabled r=matklad a=djrenren Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7111 Pretty straightforward change, but open to any suggestions if there's a more recommended testing strategy than what I went with. Co-authored-by: John Renner <[email protected]>
| * | Formatting and docsJohn Renner2021-05-106-16/+35
| | |
| * | Allow semantic tokens for strings to be disabledJohn Renner2021-05-104-9/+58
| | |
* | | Merge #8864bors[bot]2021-05-171-7/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8864: Update notify and fst r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * | | Update notify and fstkjeremy2021-05-171-7/+6
|/ / /
* | | Merge #8858bors[bot]2021-05-172-0/+21
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8858: Ignore macro import from `extern crate self` r=jonas-schievink a=ivan770 Closes #8834 Co-authored-by: ivan770 <[email protected]>
| * | | Added cov markivan7702021-05-172-1/+3
| | | |
| * | | Fix #8834ivan7702021-05-162-0/+19
| | | |
* | | | Merge #8863bors[bot]2021-05-174-0/+81
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8863: fix: don't add extra whitespace around fields r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>