aboutsummaryrefslogtreecommitdiff
path: root/crates/hir
Commit message (Collapse)AuthorAgeFilesLines
* Give ‘unsafe’ semantic token modifier to unsafe traitsAramis Razzaghipour2021-05-231-0/+4
|
* Paper over #8931 a bit moreFlorian Diebold2021-05-231-2/+3
| | | | | | | | | The problem was the skipping of binders in `resolve_method_call_as_callable`; this still doesn't use the _correct_ substitution, but at least it doesn't return a type with free variables in it. Fixes #8931.
* Add test for #8931 and better checkingFlorian Diebold2021-05-231-2/+2
|
* Add more docsAleksey Kladov2021-05-222-3/+10
|
* 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
|
* Simplify eager macro representationJonas Schievink2021-05-191-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-072-0/+6
|
* Merge #8745bors[bot]2021-05-061-0/+12
|\ | | | | | | | | | | | | | | | | 8745: Support goto_type_definition for types r=matklad a=Veykril I'm unsure if the approach of lowering an `ast::Type` to a `hir::Type` is a good idea, it seems fine to me at least. Fixes #2882 Co-authored-by: Lukas Tobias Wirth <[email protected]>
| * Support goto_type_definition for typesLukas Tobias Wirth2021-05-061-0/+12
| |
* | Reuse database in LowerCtxJonas Schievink2021-05-062-4/+3
| |
* | Don't store call-site text offsets in hygiene infoJonas Schievink2021-05-064-6/+7
| |
* | 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-302-2/+2
| | | | All def types in hir are unsubstituted
* hir_ty: deal with TypeRef::Macro in HirFormattercynecx2021-04-171-3/+2
|
* hir_ty: Expand macros at type positioncynecx2021-04-172-4/+9
|
* 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-072-11/+21
| | | | | | 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.
* infer: remove `record_pat_field_resolutions` fieldJonas Schievink2021-04-061-4/+8
| | | | | Same as https://github.com/rust-analyzer/rust-analyzer/pull/8376, this can be computed from other data
* infer: remove `record_field_resolutions` fieldJonas Schievink2021-04-061-6/+9
| | | | | It stores no useful data, since we can derive all fields from `variant_resolutions`
* 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-053-6/+8
|
* Binders::subst -> substituteFlorian Diebold2021-04-053-5/+5
|
* Hide Binders internals moreFlorian Diebold2021-04-052-4/+4
|
* Use arrayvec 0.7 to avoid perf regression in 0.6.1kjeremy2021-04-051-1/+1
| | | | See: https://github.com/bluss/arrayvec/issues/182
* 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-042-4/+4
|
* 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
|