aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Merge #8465bors[bot]2021-04-111-3/+3
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8465: Include more info in assert r=jonas-schievink a=jonas-schievink This helped find https://github.com/rust-analyzer/rust-analyzer/issues/8464 changelog skip bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | Include more info in assertJonas Schievink2021-04-111-3/+3
| | | | | |
* | | | | | Merge #8463bors[bot]2021-04-117-10/+88
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8463: Support macros in pattern position r=jonas-schievink a=jonas-schievink This was fairly easy, because patterns are limited to bodies, so almost all changes were inside body lowering. Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | | Support macros in pattern positionJonas Schievink2021-04-117-10/+88
| |/ / / / /
* | | | | | Merge #8436bors[bot]2021-04-101-19/+109
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8436: Fix extract function's mutability of variables outliving the body r=matklad a=brandondong **Reproduction:** ```rust fn main() { let mut k = 1; let mut j = 2; j += 1; k += j; } ``` 1. Select the first to third lines of the main function. Use the "Extract into function" code assist. 2. The output is the following which does not compile because the outlived variable `k` is declared as immutable: ```rust fn main() { let (k, j) = fun_name(); k += j; } fn fun_name() -> (i32, i32) { let mut k = 1; let mut j = 2; j += 1; (k, j) } ``` 3. We would instead expect the output to be: ```rust fn main() { let (mut k, j) = fun_name(); k += j; } ``` **Fix:** - Instead of declaring outlived variables as immutable unconditionally, check for any mutable usages outside of the extracted function. Co-authored-by: Brandon <[email protected]>
| * | | | | Fix extract function's mutability of variables outliving the bodyBrandon2021-04-091-19/+109
| |/ / / /
* | | | | Merge #8460bors[bot]2021-04-104-100/+105
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8460: Revert "Rewrite `#[derive]` removal code to be based on AST" r=jonas-schievink a=jonas-schievink It breaks some function-like proc macros: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Proc.20macro.20expansion/near/233971916 It also uses attribute indices incorrectly, which causes insufficient attributes to be removed. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | Revert "Rewrite `#[derive]` removal to be based on AST"Jonas Schievink2021-04-104-92/+105
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7e78aebc8fbbb4043d62949681e4d700f1a2ec46.
| * | | | | Revert "Use `pub(crate)`"Jonas Schievink2021-04-101-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c51213c2e7de21b7e68e6773ca3be0cdfc7c18af.
| * | | | | Revert "Use `name![derive]`"Jonas Schievink2021-04-101-6/+2
|/ / / / / | | | | | | | | | | | | | | | This reverts commit d6187de4cd34a1288c7820c5477b81b1e9b692a9.
* | | | | Merge #8458bors[bot]2021-04-101-698/+656
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8458: Respect test style guidelines in tests::traits r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Respect test style guidelines in tests::traitsLukas Wirth2021-04-101-698/+656
|/ / / / /
* | | | | Merge #8457bors[bot]2021-04-102-32/+139
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8457: Implement more precise binary op return type heuristic r=flodiebold a=Veykril Should fix #7150 Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Add test for binary op return ty with adtLukas Wirth2021-04-101-0/+47
| | | | | |
| * | | | | Add manual ops::Add impls to test::traits::closure_2Lukas Wirth2021-04-101-20/+46
| | | | | |
| * | | | | Implement more precise binary op return type predictionLukas Wirth2021-04-102-17/+51
| | | | | |
* | | | | | Merge #8410bors[bot]2021-04-105-20/+50
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8410: Use CompletionTextEdit::InsertAndReplace if supported by the client r=Veykril a=Veykril Fixes #8404, Fixes #3130 Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Use CompletionTextEdit::InsertAndReplace if supported by the clientLukas Wirth2021-04-085-20/+50
| | | | | |
* | | | | | Merge #8384bors[bot]2021-04-103-1/+100
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8384: add is quadratic test r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | | Let's try testing for "is not quadratic" conditionAleksey Kladov2021-04-103-1/+100
|/ / / / / /
* | | | | | Merge #8453bors[bot]2021-04-091-3/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8453: Avoid an unnecessary `collect` r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | | Avoid an unnecessary `collect`Jonas Schievink2021-04-091-3/+1
|/ / / / / /
* | | | | | Merge #8450bors[bot]2021-04-092-1/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8450: Don't ignore unnamed consts when looking for definitions r=Veykril a=Veykril Fixes #8448 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | | Insert unnamed consts to ChildBySource DynMapLukas Wirth2021-04-092-1/+5
| | | | | | |
* | | | | | | Merge #8447bors[bot]2021-04-093-7/+64
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8447: Resolve prelude and crate root names in the root DefMap r=jonas-schievink a=jonas-schievink Should fix https://github.com/rust-analyzer/rust-analyzer/issues/8418 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | | | Resolve prelude and crate root names in the root DefMapJonas Schievink2021-04-093-7/+64
|/ / / / / / /
| | | | | | |
| \ \ \ \ \ \
*-. \ \ \ \ \ \ Merge #8443 #8446bors[bot]2021-04-0910-143/+149
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8443: Rewrite `#[derive]` removal code to be based on AST r=jonas-schievink a=jonas-schievink We now remove any `#[derive]` before and including the one we want to expand, in the `macro_arg` query. The same infra will be needed by attribute macros (except we only remove the attribute we're expanding, not any preceding ones). Part of https://github.com/rust-analyzer/rust-analyzer/issues/8434 (doesn't implement the cfg-expansion yet, because that's more difficult) 8446: Undo path resolution hack for extern prelude r=jonas-schievink a=jonas-schievink Reverts the change made in https://github.com/rust-analyzer/rust-analyzer/pull/7959 We don't populate the extern prelude for block DefMaps anymore, so this is unnecessary bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| | * | | | | | | Undo path resolution hack for extern preludeJonas Schievink2021-04-091-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't populate the extern prelude for block DefMaps anymore, so this is unnecessary
| * | | | | | | | Use `name![derive]`Jonas Schievink2021-04-091-2/+6
| | | | | | | | |
| * | | | | | | | Use `pub(crate)`Jonas Schievink2021-04-091-1/+5
| | | | | | | | |
| * | | | | | | | Rewrite `#[derive]` removal to be based on ASTJonas Schievink2021-04-094-105/+92
| | | | | | | | |
| * | | | | | | | Store `#[derive]` attribute ID along macro invocJonas Schievink2021-04-095-12/+22
| | | | | | | | |
| * | | | | | | | Rename `Attr`s `index` field to `id`Jonas Schievink2021-04-091-8/+8
| | | | | | | | |
| * | | | | | | | Add `AttrId` to track attribute sourcesJonas Schievink2021-04-092-14/+20
| |/ / / / / / /
* | | | | | | | Merge #8445bors[bot]2021-04-0914-361/+355
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8445: `hir_ty` cleanup r=flodiebold a=flodiebold Move lots of things around within `hir_ty`. Most notably, all the Chalk-related stuff moves from within `traits/` to the top-level, since Chalk isn't purely a "traits thing" anymore. Co-authored-by: Florian Diebold <[email protected]>
| * | | | | | | | More cleanups / module docsFlorian Diebold2021-04-096-10/+12
| | | | | | | | |
| * | | | | | | | More cleanupsFlorian Diebold2021-04-093-38/+29
| | | | | | | | |
| * | | | | | | | More moving stuff aroundFlorian Diebold2021-04-094-78/+74
| | | | | | | | |
| * | | | | | | | Move some more stuff to better placesFlorian Diebold2021-04-092-100/+93
| | | | | | | | |
| * | | | | | | | Move ToChalk -> mappingFlorian Diebold2021-04-0910-37/+76
| | | | | | | | |
| * | | | | | | | Reorganize hir_ty modulesFlorian Diebold2021-04-0910-100/+73
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chalk isn't really a 'traits' thing anymore, so it doesn't make sense to have all the Chalk-related stuff in submodules of `traits`.
* | | | | | | | Merge #8444bors[bot]2021-04-091-7/+9
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8444: Shrink `unlinked-file` diagnostic to 3 characters r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8442 (the diagnostic fires intentionally on `#[cfg]`d modules, but with this won't cover the whole file) bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | | | Shrink `unlinked-file` diagnostic to 3 charactersJonas Schievink2021-04-091-7/+9
|/ / / / / / /
* | | | | | | Merge #8406bors[bot]2021-04-093-28/+85
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8406: Improve indexing of impls r=flodiebold a=flodiebold Store impls for e.g. &Foo with the ones for Foo instead of the big "other" bucket. This can improve performance and simplifies the HIR impl search a bit. Co-authored-by: Florian Diebold <[email protected]>
| * | | | | | | Improve indexing of implsFlorian Diebold2021-04-093-28/+85
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Store impls for e.g. &Foo with the ones for Foo instead of the big "other" bucket. This can improve performance and simplifies the HIR impl search a bit.
* | | | | | | Merge #8440bors[bot]2021-04-093-6/+77
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8440: Fix crash on syn involving lifetimes returned by Chalk r=flodiebold a=flodiebold If we get lifetime variables back in autoderef, just immediately replace them by static lifetimes for now. Method resolution doesn't really deal correctly with new variables being introduced (this needs to be fixed more properly). This fixes `rust-analyzer analysis-stats --with-deps` crashing in the RA repo. Co-authored-by: Florian Diebold <[email protected]>
| * | | | | | Fix crash on syn involving lifetimes returned by ChalkFlorian Diebold2021-04-093-6/+77
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we get lifetime variables back in autoderef, just immediately replace them by static lifetimes for now. Method resolution doesn't really deal correctly with new variables being introduced (this needs to be fixed more properly). This fixes `rust-analyzer analysis-stats --with-deps` crashing in the RA repo.
* | | | | | Merge #8429bors[bot]2021-04-091-0/+20
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8429: 8425: Added documentation for on enter covering //! doc comments. r=jonas-schievink a=chetankhilosiya Also added passing test case. Co-authored-by: Chetan Khilosiya <[email protected]>
| * | | | | | 8425: Added documentation for on enter covering //! doc comments.Chetan Khilosiya2021-04-081-0/+20
| | |_|/ / / | |/| | | | | | | | | | | | | | | | Also added passing test case.
* | | | | | Merge #8433bors[bot]2021-04-089-50/+83
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8433: Intern lots of things r=jonas-schievink a=flodiebold This uses the new interning infrastructure for most type-related things, where it had a positive effect on memory usage and performance. In total, this gives a slight performance improvement and a quite good memory reduction (1119MB->885MB on RA, 1774MB->1188MB on Diesel). Co-authored-by: Florian Diebold <[email protected]>