aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove TypeCtor interningFlorian Diebold2020-07-151-3/+3
| | | | Our TypeCtor and Chalk's TypeName match now!
* Use Chalk closure supportFlorian Diebold2020-07-151-3/+3
|
* Cap macro expansion depth for IDE featuresAleksey Kladov2020-07-151-1/+1
| | | | closes #4453
* Cleanup visibilityAleksey Kladov2020-07-141-1/+1
|
* Cleanup hir diagnostics APIAleksey Kladov2020-07-141-8/+1
|
* Consolidate hir diagnostics code in one placeAleksey Kladov2020-07-142-6/+4
|
* Don't copy-paste `impl_froms` into every crateAleksey Kladov2020-07-133-31/+16
|
* Use dedicated semantic highlight tag for parametersAleksey Kladov2020-07-111-1/+14
| | | | closes #5106
* Fix goto definition for type alias type parametersAleksey Kladov2020-07-112-0/+8
| | | | closes https://github.com/rust-analyzer/rust-analyzer/issues/5042
* Reduce visibilityAleksey Kladov2020-07-111-31/+31
|
* Speed up completionAleksey Kladov2020-07-111-0/+1
|
* Dont expose IDAleksey Kladov2020-07-101-4/+3
|
* RenameAleksey Kladov2020-07-102-3/+2
|
* Goto type definition works for selfAleksey Kladov2020-07-102-0/+21
|
* Add argument count mismatch diagnosticJonas Schievink2020-07-091-1/+3
|
* Merge #5149bors[bot]2020-07-011-5/+5
|\ | | | | | | | | | | | | | | | | | | 5149: Implement Chalk variable kinds r=flodiebold a=flodiebold This means we need to keep track of the kinds (general/int/float) of variables in `Canonical`, which requires some more ceremony. (It also exposes some places where we're not really dealing with canonicalization correctly -- another thing to be cleaned up when we switch to using Chalk's types directly.) Should fix the last remaining issue of #2534. Co-authored-by: Florian Diebold <[email protected]>
| * Implement Chalk variable kindsFlorian Diebold2020-07-011-5/+5
| | | | | | | | | | | | | | | | | | This means we need to keep track of the kinds (general/int/float) of variables in `Canonical`, which requires some more ceremony. (It also exposes some places where we're not really dealing with canonicalization correctly -- another thing to be cleaned up when we switch to using Chalk's types directly.) Should fix the last remaining issue of #2534.
* | Split `CrateImplDefs` in inherent and trait implsJonas Schievink2020-07-012-11/+13
| | | | | | | | | | | | This makes the intention of inherent vs. trait impls somewhat more clear and also fixes (?) an issue where trait impls with an unresolved trait were added as inherent impls instead (hence the test changes).
* | Make less code genericLaurențiu Nicola2020-07-011-69/+47
| |
* | Try to reduce Semantics monomorphisationsLaurențiu Nicola2020-07-011-23/+186
| |
* | Merge #5158bors[bot]2020-07-011-3/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 5158: Use CrateName correctly r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Use Strings for display namesAleksey Kladov2020-07-011-3/+3
| |/
* / Make SemanticsScope non-genericLaurențiu Nicola2020-07-011-8/+8
|/
* (Partially) fix handling of type params depending on type paramsFlorian Diebold2020-06-291-3/+6
| | | | | | | | If the first type parameter gets inferred, that's still not handled correctly; it'll require some more refactoring: E.g. if we have `Thing<T, F=fn() -> T>` and then instantiate `Thing<_>`, that gets turned into `Thing<_, fn() -> _>` before the `_` is instantiated into a type variable -- so afterwards, we have two type variables without any connection to each other.
* Remove unneeded code, filename from tests, fix rebasing issuesPaul Daniel Faria2020-06-271-2/+6
|
* Revert ide highlighting changes (addressing on another branch)Paul Daniel Faria2020-06-271-4/+0
|
* Add HighlightTag::Operator, use it for unsafe deref. Move unsafe validation ↵Paul Daniel Faria2020-06-271-3/+5
| | | | to its own file
* Move diagnostics back into expr, add tests for diagnostics, fix logic to ↵Paul Daniel Faria2020-06-272-53/+2
| | | | account for derefs of raw ptrs
* Add unsafe diagnostics and unsafe highlightingPaul Daniel Faria2020-06-272-1/+54
|
* Measure ItemTree query memory usageJonas Schievink2020-06-241-2/+2
|
* draw the rest of the owlJonas Schievink2020-06-241-6/+4
|
* Remove raw item queryJonas Schievink2020-06-241-2/+2
|
* New VFSAleksey Kladov2020-06-231-1/+9
|
* Enum variants with `Self::[variant]` now resolve (#4879)BGluth2020-06-221-0/+30
|
* Merge #4947bors[bot]2020-06-201-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4947: Replace `impls_in_trait` query with smarter use of `CrateImplDefs` r=matklad a=jonas-schievink `impls_in_trait` was allocating a whopping ~400 MB of RAM when running analysis-stats on r-a itself. Remove it, instead adding a query that computes a summary `CrateImplDefs` map for all transitive dependencies. This can probably still be made more efficient, but this already reduces the peak memory usage by 25% without much performance impact on analysis-stats. **Before**: ``` Total: 34.962107188s, 2083mb allocated 2141mb resident 422mb ImplsForTraitQuery (deps) 250mb CrateDefMapQueryQuery 147mb MacroArgQuery 140mb TraitSolveQuery (deps) 68mb InferQueryQuery (deps) 62mb ImplDatumQuery (deps) ``` **After**: ``` Total: 35.261100358s, 1520mb allocated 1569mb resident 250mb CrateDefMapQueryQuery 147mb MacroArgQuery 144mb TraitSolveQuery (deps) 68mb InferQueryQuery (deps) 61mb ImplDatumQuery (deps) 45mb BodyQuery 45mb ImplDatumQuery ``` Co-authored-by: Jonas Schievink <[email protected]>
| * Add new query to statsJonas Schievink2020-06-191-4/+4
| |
| * Replace `impls_in_trait` with `CrateImplDefs`Jonas Schievink2020-06-191-4/+4
| |
* | Merge #4851bors[bot]2020-06-192-2/+23
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4851: Add quickfix to add a struct field r=TimoFreiberg a=TimoFreiberg Related to #4563 I created a quickfix for record literals first because the NoSuchField diagnostic was already there. To offer that quickfix for FieldExprs with unknown fields I'd need to add a new diagnostic (or create a `NoSuchField` diagnostic for those cases) I think it'd make sense to make this a snippet completion (to select the generated type), but this would require changing the `Analysis` API and I'd like some feedback before I touch that. Co-authored-by: Timo Freiberg <[email protected]>
| * | Add quickfix to add a struct fieldTimo Freiberg2020-06-122-2/+23
| |/
* | Apply suggestions from code reviewvsrs2020-06-181-35/+50
| |
* | Add Type::walk methodvsrs2020-06-181-71/+59
| |
* | Remove AdtOrTraitvsrs2020-06-182-33/+26
| |
* | Fix type "items" order.vsrs2020-06-181-7/+18
| |
* | Add `Go to Type Definition` hover action.vsrs2020-06-182-6/+110
|/
* Merge #4843bors[bot]2020-06-112-2/+4
|\ | | | | | | | | | | | | | | | | | | | | 4843: Don't guess macro expansion crate r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Don't guess macro expansion crateAleksey Kladov2020-06-112-2/+4
| |
* | Respect casing when searching for importsJonas Schievink2020-06-101-1/+1
| |
* | Limit import map queriesJonas Schievink2020-06-101-6/+10
| |
* | ra_hir: expose `import_map::search_dependencies`Jonas Schievink2020-06-101-0/+14
|/
* Merge #4689bors[bot]2020-06-051-2/+2
|\ | | | | | | | | | | | | | | | | | | | | 4689: Implement return position impl trait / opaque type support r=matklad a=flodiebold This is working, but I'm not that happy with how the lowering works. We might need an additional representation between `TypeRef` and `Ty` where names are resolved and `impl Trait` bounds are separated out, but things like inference variables don't exist and `impl Trait` is always represented the same way. Also note that this doesn't implement correct handling of RPIT *inside* the function (which involves turning the `impl Trait`s into variables and creating obligations for them). That intermediate representation might help there as well. Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Florian Diebold <[email protected]>