aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/infer/path.rs
Commit message (Collapse)AuthorAgeFilesLines
* Fix substs in resolve_value_path for ImplSelfVincent Rouillé2020-06-191-1/+1
| | | | Fixes #4953.
* Fix type parameter defaultsFlorian Diebold2020-06-051-1/+2
| | | | | They should not be applied in expression or pattern contexts, unless there are other explicitly given type args.
* Handle `Self` in values and patternsFlorian Diebold2020-05-151-1/+34
| | | | | | | | | I.e. - `Self(x)` or `Self` in tuple/unit struct impls - `Self::Variant(x)` or `Self::Variant` in enum impls - the same in patterns Fixes #4454.
* missing match arms diagnosticJosh Mcguigan2020-04-071-2/+10
|
* Use `dyn Trait` for working with databseAleksey Kladov2020-03-161-6/+9
| | | | | | | It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate).
* Resolve `Self::AssocTy` in implsFlorian Diebold2020-03-061-2/+2
| | | | | | | | | | To do this we need to carry around the original resolution a bit, because `Self` gets resolved to the actual type immediately, but you're not allowed to write the equivalent type in a projection. (I tried just comparing the projection base type with the impl self type, but that seemed too dirty.) This is basically how rustc does it as well. Fixes #3249.
* Run cargo +nightly fix --clippy -Z unstable-optionsKirill Bulatov2020-02-181-23/+24
|
* FormattingFlorian Diebold2020-02-071-4/+1
|
* Fix another testFlorian Diebold2020-02-071-5/+1
|
* Lower impl trait to variables, move away from using placeholders where they ↵Florian Diebold2020-02-071-38/+17
| | | | don't belong
* Add impl trait lowering modeFlorian Diebold2020-02-071-5/+24
|
* Introduce TyLoweringContextFlorian Diebold2020-02-071-14/+11
|
* Push resolver further upAleksey Kladov2020-01-141-2/+7
|
* Introduce `ContainerId`Aleksey Kladov2019-12-201-1/+1
|
* Rename ContainerId -> AssocContainerIdAleksey Kladov2019-12-201-4/+4
|
* Add body as a possible container for itemsAleksey Kladov2019-12-191-1/+1
|
* Forbid <T>::foo syntax in mod pathsAleksey Kladov2019-12-181-2/+2
|
* Use different types for path with and without genericsAleksey Kladov2019-12-141-12/+13
|
* Fix #2467Florian Diebold2019-12-031-1/+12
| | | | | The stand-alone `unify` requires that the type doesn't contain any type variables. So we can't share the code here for now (without more refactoring)...
* Refactor a bitFlorian Diebold2019-12-021-35/+3
|
* Extract unification code to unify moduleFlorian Diebold2019-12-021-2/+2
|
* Handle cycles in impl types betterFlorian Diebold2019-11-301-1/+1
| | | | | | - impl Trait<Self> for S is allowed - impl Trait for S<Self> is an invalid cycle, but we can add cycle recovery for it in Salsa now
* Memoize impl resolutionsAleksey Kladov2019-11-271-6/+4
|
* Move TyAleksey Kladov2019-11-271-0/+270