aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Fix if/else coercionFlorian Diebold2021-05-211-1/+4
| | |
| * | Make diverging type variables work againFlorian Diebold2021-05-212-0/+23
| | | | | | | | | | | | | | | Chalk doesn't know about the `diverging` flag, so we need to instead propagate it before fully resolving the variables.
| * | Fix handling of diverging branches in match coercionFlorian Diebold2021-05-212-4/+52
| | | | | | | | | | | | Fixes #7626.
| * | Fix coercion of two closures to a function pointerFlorian Diebold2021-05-214-56/+48
| | | | | | | | | | | | Fixes #8604.
| * | Update tests with expected changesFlorian Diebold2021-05-212-40/+34
| | |
| * | Make type resolver a proper folder, make it resolve consts as wellFlorian Diebold2021-05-211-48/+117
| | |
| * | Fix fallback to bound vars in `unify`Florian Diebold2021-05-211-45/+78
| | |
| * | Better Debug impl for InternedWrapperFlorian Diebold2021-05-211-1/+7
| | |
| * | Temporary fix for unknown expectationsFlorian Diebold2021-05-212-0/+8
| | |
| * | Fix warnings & formatFlorian Diebold2021-05-213-20/+11
| | |
| * | Rewrite coercion using the new unificationFlorian Diebold2021-05-216-105/+371
| | |
| * | Remove our unification code, use Chalk's insteadFlorian Diebold2021-05-218-438/+125
| | |
* | | Merge #8910bors[bot]2021-05-214-20/+79
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8910: Don't lower extern block in the ItemTree r=jonas-schievink a=jonas-schievink The ItemTree lowering code used to attach attributes on an `extern {}` block to all the children. This is wrong and causes problems with attribute resolution that manifested as a hang. This PR treats extern blocks as first-class items in the ItemTree and lowers its contents in the `ModCollector` instead. Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8414#issuecomment-845607923 Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8905 Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8909 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Don't lower extern block in the ItemTreeJonas Schievink2021-05-214-20/+79
|/ /
* | Merge #8902bors[bot]2021-05-201-3/+6
|\ \ | | | | | | | | | | | | | | | | | | | | | 8902: fix: Fix code completion not inserting borrow text when client supports InsertAndReplace r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Tobias Wirth <[email protected]>
| * | Fix code completion not inserting borrow text when client supports ↵Lukas Tobias Wirth2021-05-201-3/+6
| | | | | | | | | | | | InsertAndReplace
* | | Merge #8900bors[bot]2021-05-203-38/+100
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8900: internal: support `#[register_attr]` and `#[register_tool]` r=jonas-schievink a=jonas-schievink Relatively straightforward since these are crate-local. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Support `#[register_attr]` and `#[register_tool]`Jonas Schievink2021-05-203-32/+94
| | | |
| * | | Rename `ignore_attrs_on` to `skip_attrs`Jonas Schievink2021-05-201-6/+6
|/ / /
* | | Merge #8899bors[bot]2021-05-201-4/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8899: minor: Simplify r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | SimplifyJonas Schievink2021-05-201-4/+2
|/ / /
* | | Merge #8898bors[bot]2021-05-202-75/+141
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8898: internal: resolve derive helpers r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Refactor name resolution to resolve derive helpersJonas Schievink2021-05-202-85/+135
| | | |
| * | | Rename `unexpanded_macros` to `unresolved_macros`Jonas Schievink2021-05-201-15/+31
| | |/ | |/|
* | | 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
| | | |