aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
| * hir_ty: introduce visible_from_module param into method resolutioncynecx2021-03-201-0/+7
| |
* | simplifyLukas Wirth2021-03-231-0/+15
| |
* | Make more use of the HIR in rename::rename_to_selfLukas Wirth2021-03-231-4/+17
| |
* | Merge hir::MacroDef::is_* into hir::MacroDef::kindLukas Wirth2021-03-231-14/+17
| |
* | Set up a search scope when searching for mbe macro referencesLukas Wirth2021-03-231-0/+5
| |