aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/method_resolution.rs
Commit message (Collapse)AuthorAgeFilesLines
* Replace remaining uses of Substitution::build_for_defFlorian Diebold2021-04-041-3/+3
|
* Add and start using TraitRef and ProjectionTy buildersFlorian Diebold2021-04-041-5/+3
|
* Use bitflags to compress function propertiesJonas Schievink2021-04-031-1/+1
| | | | Very minor savings, only 1 MB or so
* Rename Ty::interned to Ty::kindFlorian Diebold2021-04-031-7/+5
| | | | ... since that's the actual method on Chalk side that matches the signature.
* Introduce `GenericArg` like in ChalkFlorian Diebold2021-04-031-3/+4
| | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters.
* Use arrayvec 0.6Laurențiu Nicola2021-03-251-2/+2
|
* Merge #7907bors[bot]2021-03-241-4/+37
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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_def: move visibility queries from hir_ty to hir_defcynecx2021-03-241-1/+1
| |
| * hir_ty: add coverage testing for autoderef_visibility_method testcynecx2021-03-201-0/+1
| |
| * hir_ty: iterate_method_candidates_for_self_ty pass `visible_from_module` ↵cynecx2021-03-201-1/+6
| | | | | | | | down to `iterate_inherent_methods`
| * hir_ty: introduce visible_from_module param into method resolutioncynecx2021-03-201-4/+31
| |
* | Align InEnvironment with ChalkFlorian Diebold2021-03-211-3/+3
| | | | | | | | | | | | This in particular means storing a chalk_ir::Environment, not our TraitEnvironment. This makes InEnvironment not usable for Type, where we need to keep the full TraitEnvironment.
* | Align Canonical more with Chalk's versionFlorian Diebold2021-03-211-15/+34
|/ | | | In particular, use chalk_ir::CanonicalVarKinds.
* Turn Obligation into something similar to chalk_ir::DomainGoalFlorian Diebold2021-03-201-3/+3
| | | | This includes starting to make use of Chalk's `Cast` trait.
* Chalkify TraitRefFlorian Diebold2021-03-181-2/+3
|
* Rename Substs -> SubstitutionFlorian Diebold2021-03-161-7/+7
|
* Merge #8020bors[bot]2021-03-151-1/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | 8020: Power up goto_implementation r=matklad a=Veykril by allowing it to be invoked on references of names, now showing all (trait) implementations of the given type in all crates instead of just the defining crate as well as including support for builtin types ![image](https://user-images.githubusercontent.com/3757771/111144403-52bb0700-8587-11eb-9205-7a2a5b8b75a3.png) Example screenshot of `impl`s of Box in `log`, `alloc`, `std` and the current crate. Before you had to invoke it on the definition where it would only show the `impls` in `alloc`. Co-authored-by: Lukas Wirth <[email protected]>
| * Speedup trait impl search for goto_implementationLukas Wirth2021-03-151-1/+9
| |
* | Don't use Substs for Ref/Raw/Array/SliceFlorian Diebold2021-03-141-4/+2
|/
* Use chalk_ir::ForeignDefIdFlorian Diebold2021-03-131-6/+9
|
* Separate `Ty` and `TyKind` like in ChalkFlorian Diebold2021-03-131-35/+41
| | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`.
* Use Chalk Environment more directlyFlorian Diebold2021-03-121-2/+1
|
* Delete `ContainerId`Jonas Schievink2021-03-091-1/+1
|
* Stop using `ContainerId` in `AssocContainerId`Jonas Schievink2021-03-091-1/+1
|
* Use upstream cov-markLaurențiu Nicola2021-03-081-1/+1
|
* Use chalk_ir::AdtIdLukas Wirth2021-03-041-7/+7
|
* Use chalk_ir::MutabilityLukas Wirth2021-03-011-4/+5
|
* Introduce Ty::AliasLukas Wirth2021-03-011-4/+4
|
* Being Ty::InferenceVar closes to chalk equivalentLukas Wirth2021-03-011-3/+3
|
* Lift FnPointer into a structLukas Wirth2021-02-281-6/+4
|
* Remove Substs from Ty::ForeignTypeLukas Wirth2021-02-281-1/+1
|
* Turn Ty::Tuple variant into a tuple-variantLukas Wirth2021-02-281-2/+2
|
* Inline TypeCtor into TyLukas Wirth2021-02-281-55/+71
|
* Use chalk_ir::Scalar directlyLukas Wirth2021-02-281-3/+7
|
* Introduce TypeCtor::ScalarLukas Wirth2021-02-281-64/+26
|
* Check for dyn impls in method resolutionLukas Wirth2021-02-081-11/+16
|
* Make `ModuleId`'s `krate` field privateJonas Schievink2021-01-221-3/+3
|
* Make public DefMap fields privateJonas Schievink2021-01-201-2/+2
|
* Use correct, full substs for self type in implFlorian Diebold2020-12-041-1/+7
| | | | | | | | Without arbitrary self types, the self type could never refer to the method type parameters, so this wasn't a problem; but with arbitrary self types, it can. This fixes the crash from #6668; but it doesn't make method resolution work for these methods.
* Fix case where non FnOnce variables is marked callableGrayJack2020-10-261-0/+13
|
* Use Ty::apply instead of simple and fix method resolution.Charles Lew2020-09-161-0/+8
|
* Rename ra_hir_ty -> hir_tyAleksey Kladov2020-08-131-0/+769