aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* Introduce `GenericArg` like in ChalkFlorian Diebold2021-04-031-9/+22
| | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters.
* Global TypeRef/TraitRef interningJonas Schievink2021-04-011-4/+4
|
* Rename target_ty to self_tyLukas Wirth2021-03-291-6/+6
|
* Lower traits to TraitRef instead of TypeRefLukas Wirth2021-03-291-1/+2
|
* completion relevance consider if types can be unifiedJosh Mcguigan2021-03-261-1/+5
|
* Use arrayvec 0.6Laurențiu Nicola2021-03-251-1/+1
|
* Merge #7907bors[bot]2021-03-241-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7907: Autoderef with visibility r=cynecx a=cynecx Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7841. I am not sure about the general approach here. Right now this simply tries to check whether the autoderef candidate is reachable from the current module. ~~However this doesn't exactly work with traits (see the `tests::macros::infer_derive_clone_in_core` test, which fails right now).~~ see comment below Refs: - `rustc_typeck` checking fields: https://github.com/rust-lang/rust/blob/66ec64ccf31883cd2c28d045912a76179c0c6ed2/compiler/rustc_typeck/src/check/expr.rs#L1610 r? @flodiebold Co-authored-by: cynecx <[email protected]>
| * hir: don't use the self module as visible_from in iterate_method_candidatescynecx2021-03-241-6/+1
| |