aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Implement more precise binary op return type predictionLukas Wirth2021-04-102-17/+51
|
* 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]>
| * | CleanupFlorian Diebold2021-04-082-24/+19
| | |
| * | Intern VariancesFlorian Diebold2021-04-081-2/+3
| | | | | | | | | | | | This may be a slight performance improvement.
| * | Don't intern ProgramClause at allFlorian Diebold2021-04-081-2/+2
| | | | | | | | | | | | This seems to work best performance/memory-wise.
| * | Intern QuantifiedWhereClausesFlorian Diebold2021-04-081-2/+3
| | | | | | | | | | | | Slight performance and memory usage improvement.
| * | Intern ProgramClausesFlorian Diebold2021-04-081-2/+3
| | |
| * | Intern CanonicalVarKindsFlorian Diebold2021-04-081-2/+3
| | | | | | | | | | | | Slight savings in performance and memory.
| * | Intern consts & lifetimesFlorian Diebold2021-04-082-7/+20
| | | | | | | | | | | | Slight memory usage reduction.
| * | Intern typesFlorian Diebold2021-04-081-3/+7
| | | | | | | | | | | | Performance about the same, memory reduced by ~5%.
| * | Intern SubstitutionsFlorian Diebold2021-04-088-27/+34
| | | | | | | | | | | | (Costs a bit of performance, reduces memory usage on RA by ~10%.)
| * | Intern VariableKindsFlorian Diebold2021-04-081-4/+14
|/ /
* | Merge #8431bors[bot]2021-04-081-2/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | 8431: 8024: Added the trait highlight modifier for assoc types. r=Veykril a=chetankhilosiya Co-authored-by: Chetan Khilosiya <[email protected]>
| * | 8024: Added the trait modifier for assoc types.Chetan Khilosiya2021-04-081-2/+12
|/ /
* | Merge #8428bors[bot]2021-04-087-33/+40
|\ \ | |/ |/| | | | | | | | | | | | | | | 8428: Use named fields in `MacroCallKind` r=jonas-schievink a=jonas-schievink bors r+ changelog skip Co-authored-by: Jonas Schievink <[email protected]>
| * Use named fields in `MacroCallKind`Jonas Schievink2021-04-087-33/+40
|/
* Merge #8426bors[bot]2021-04-081-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8426: Track recursion limit when expanding custom derive r=jonas-schievink a=jonas-schievink You can write a custom derive that expands to itself: ```rust #[proc_macro_derive(Derive)] pub fn derive(item: TokenStream) -> TokenStream { let mut out: TokenStream = "#[derive(Derive)]".parse().unwrap(); out.extend(item); out } ``` rustc reports a recursion limit error, but rust-analyzer used to spin in name resolution and eventually fail with "name resolution is stuck". This makes it fail fast by respecting the recursion depth of the invocation. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Track recursion limit when expanding custom deriveJonas Schievink2021-04-081-1/+1
|/
* Merge #8421bors[bot]2021-04-081-13/+30
|\ | | | | | | | | | | | | | | 8421: Reduce allocations in "Expand macro" formatter r=edwin0cheng a=lnicola Co-authored-by: LaurenČ›iu Nicola <[email protected]>