aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Thread proc-macro types through the HIRJonas Schievink2021-05-291-5/+13
|
* Stop expanding UseTrees during ItemTree loweringJonas Schievink2021-05-261-20/+6
|
* internal: move diagnostics to hirAleksey Kladov2021-05-251-4/+172
| | | | | | | | | | | | | | | | | | | | | | | The idea here is to eventually get rid of `dyn Diagnostic` and `DiagnosticSink` infrastructure altogether, and just have a `enum hir::Diagnostic` instead. The problem with `dyn Diagnostic` is that it is defined in the lowest level of the stack (hir_expand), but is used by the highest level (ide). As a first step, we free hir_expand and hir_def from `dyn Diagnostic` and kick the can up to `hir_ty`, as an intermediate state. The plan is then to move DiagnosticSink similarly to the hir crate, and, as final third step, remove its usage from the ide. One currently unsolved problem is testing. You can notice that the test which checks precise diagnostic ranges, unresolved_import_in_use_tree, was moved to the ide layer. Logically, only IDE should have the infra to render a specific range. At the same time, the range is determined with the data produced in hir_def and hir crates, so this layering is rather unfortunate. Working on hir_def shouldn't require compiling `ide` for testing.
* Merge #8942bors[bot]2021-05-251-32/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 8942: Add `library` semantic token modifier to items from other crates r=arzg a=arzg Closes #5772. A lot of code here is pretty repetitive; please let me know if you have any ideas how to improve it, or whether it’s fine as-is. Side-note: How can I add tests for this? I don’t see a way for the test Rust code in `test_highlighting` to reference other crates to observe the new behaviour. Co-authored-by: Aramis Razzaghipour <[email protected]>
| * Remove hir krate methodsAramis Razzaghipour2021-05-241-48/+0
| |
| * Add highlighting of items from other cratesAramis Razzaghipour2021-05-241-0/+17
| |
* | Get rid of field_type againFlorian Diebold2021-05-231-14/+1
| |
* | Infer correct expected type for generic struct fieldsFlorian Diebold2021-05-231-3/+15
|/
* Give ‘unsafe’ semantic token modifier to unsafe traitsAramis Razzaghipour2021-05-231-0/+4
|
* Add test for #8931 and better checkingFlorian Diebold2021-05-231-2/+2
|
* Rework obligation handlingFlorian Diebold2021-05-211-4/+6
| | | | | | | | We can't do the easy hack that we did before anymore, where we kept track of whether any inference variables changed since the last time we rechecked obligations. Instead, we store the obligations in canonicalized form; that way we can easily check the inference variables to see whether they have changed since the goal was canonicalized.
* Fix HIR expecting errors to unify with anythingFlorian Diebold2021-05-211-6/+3
|
* Fix compilation of hir and ide cratesFlorian Diebold2021-05-211-2/+2
|
* Merge #8813bors[bot]2021-05-161-1/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8813: Get some more array lengths! r=lf- a=lf- This is built on #8799 and thus contains its changes. I'll rebase it onto master when that one gets merged. It adds support for r-a understanding the length of: * `let a: [u8; 2] = ...` * `let a = b"aaa"` * `let a = [0u8; 4]` I have added support for getting the values of byte strings, which was not previously there. I am least confident in the correctness of this part and it probably needs some more tests, as we currently have only one test that exercised that part (!). Fixes #2922. Co-authored-by: Jade <[email protected]>
| * Address final feedbackJade2021-05-161-1/+1
| | | | | | | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const
| * Add more tests, refactor array lengths/consteval workJade2021-05-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | Fix #2922: add unknown length as a condition for a type having unknown. Incorporate reviews: * Extract some of the const evaluation workings into functions * Add fixmes on the hacks * Add tests for impls on specific array lengths (these work!!! 😁) * Add tests for const generics (indeed we don't support it yet)
* | Apply async semantic token modifier to async/await keywordshi-rustin2021-05-141-0/+4
|/ | | | Only async semantic token modifier
* Correctly support SelfType when searching for usagesLukas Wirth2021-05-081-0/+4
|
* internal: expose cfg attrs from hir::CrateAleksey Kladov2021-05-071-0/+5
|
* Don't store call-site text offsets in hygiene infoJonas Schievink2021-05-061-1/+1
|
* simplifyLukas Tobias Wirth2021-05-051-0/+4
|
* internal: fix naming polarityAleksey Kladov2021-04-301-1/+1
| | | | | Type Constructors have *parameters*, when they are substituted with type *arguments*, we have a type.
* internal: normalize nameAleksey Kladov2021-04-301-1/+1
| | | | All def types in hir are unsubstituted
* Exclude inherent traits from flyimportsKirill Bulatov2021-04-161-0/+12
|
* Improve indexing of implsFlorian Diebold2021-04-091-9/+21
| | | | | | 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.
* Intern SubstitutionsFlorian Diebold2021-04-081-1/+1
| | | | (Costs a bit of performance, reduces memory usage on RA by ~10%.)
* Fix missing match armsFlorian Diebold2021-04-081-1/+3
|
* InEnvironment::new takes a referenceFlorian Diebold2021-04-071-2/+2
|
* Make Canonical::new a free-standing functionFlorian Diebold2021-04-071-1/+1
|
* Move hir_trait_id to extension traitFlorian Diebold2021-04-071-1/+2
|
* Remove Ty::substs{_mut}Florian Diebold2021-04-071-8/+18
| | | | | | Almost all uses actually only care about ADT substs, so it's better to be explicit. The methods were a bad abstraction anyway since they already didn't include the inner types of e.g. `TyKind::Ref` anymore.
* Free Ty::def_cratesLukas Wirth2021-04-071-3/+3
|
* Remove `SolutionVariables`, add ConstrainedSubst analogous to ChalkFlorian Diebold2021-04-061-4/+4
| | | | ... just missing the constraints.
* Move Ty accessors to TyExtLukas Wirth2021-04-061-1/+1
|
* Add chalk_ir::Const to TyKind::ArrayLukas Wirth2021-04-061-2/+2
|
* Add Lifetime to TyKind::RefLukas Wirth2021-04-061-4/+8
|
* Substitution::prefix -> subst_prefixFlorian Diebold2021-04-051-1/+2
| | | | I probably want to get rid of this function completely later.
* Add Interner parameter to Binders::substituteFlorian Diebold2021-04-051-3/+3
|
* Binders::subst -> substituteFlorian Diebold2021-04-051-3/+3
|
* Hide Binders internals moreFlorian Diebold2021-04-051-2/+2
|
* Rename TyKind::ForeignType to ForeignLaurențiu Nicola2021-04-051-1/+1
|
* Rename TyKind::Unknown to ErrorLaurențiu Nicola2021-04-051-1/+1
|
* Move things from `traits` module to `types` as wellFlorian Diebold2021-04-041-3/+4
|
* Move things in hir_ty into submodulesFlorian Diebold2021-04-041-1/+1
| | | | | - all the types that will be replaced by Chalk go to `types` - `TypeWalk` impls go to `walk`
* Replace Substitution::type_paramsFlorian Diebold2021-04-041-2/+2
|
* Replace remaining uses of Substitution::build_for_defFlorian Diebold2021-04-041-3/+2
|
* Add and start using TraitRef and ProjectionTy buildersFlorian Diebold2021-04-041-16/+8
|
* Move Ty::builtin to TyBuilderFlorian Diebold2021-04-041-2/+2
|
* Use bitflags to compress function propertiesJonas Schievink2021-04-031-3/+3
| | | | Very minor savings, only 1 MB or so
* Rename Ty::interned to Ty::kindFlorian Diebold2021-04-031-13/+13
| | | | ... since that's the actual method on Chalk side that matches the signature.