aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix coercion from &Foo to an inference variable in a referenceFlorian Diebold2019-12-082-1/+42
| | | | We didn't try to unify within the reference, but we should.
* Merge #2466bors[bot]2019-12-081-0/+29
|\ | | | | | | | | | | | | | | | | | | | | 2466: Handle partial resolve cases r=matklad a=edwin0cheng Another try to fix #2443 : We resolve all imports every time in `DefCollector::collect` loop even it is resolved previously. This is because other unresolved imports and macros will bring in another `PerNs`, so we can only assume that it has been partially resolved. Co-authored-by: Edwin Cheng <[email protected]>
| * Add testsEdwin Cheng2019-12-061-0/+29
| |
* | Rename GenericParam -> TypeParamAleksey Kladov2019-12-071-14/+12
| | | | | | | | We don't have LifetimeParam yet, but they are planned!
* | ReformatAleksey Kladov2019-12-071-2/+2
| |
* | Refactor parameter count trackingAleksey Kladov2019-12-076-32/+30
| |
* | Remove idx and parent generics from genericsAleksey Kladov2019-12-076-60/+135
| | | | | | | | | | This makes `hir_def::GenericParams` flatter. The logic for re-numbering the params is moved to hir instead.
* | Store GenericParams in arenaAleksey Kladov2019-12-071-1/+1
| |
* | Merge #2484bors[bot]2019-12-061-3/+5
|\ \ | |/ |/| | | | | | | | | | | | | | | 2484: DynMap r=matklad a=matklad Implement a `DynMap` a semi-dynamic, semi-static map, which helps to thread heterogeneously typed info in a uniform way. Totally inspired by https://github.com/JetBrains/kotlin/blob/df3bee30384787d8951ea548a4257c2cb52a16a3/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java. @flodiebold wdyt? Seems like a potentially useful pattern for various source-map-like things. Co-authored-by: Aleksey Kladov <[email protected]>
| * DynMapAleksey Kladov2019-12-061-3/+5
| | | | | | | | | | This might, or might not help us to reduce boilerplate associated with plumbing values from analysis to the IDE layer
* | Don't unify within a referenceFlorian Diebold2019-12-063-11/+72
|/ | | | | | | If we are expecting a `&Foo` and get a `&something`, when checking the `something`, we are *expecting* a `Foo`, but we shouldn't try to unify whatever we get with that expectation, because it could actually be a `&Foo`, and `&&Foo` coerces to `&Foo`. So this fixes quite a few false type mismatches.
* Simplify testAleksey Kladov2019-12-051-13/+10
|
* Implement derive(Copy, Clone) properly (well, kind of)Florian Diebold2019-12-051-0/+51
|
* Fix test compilationice10002019-12-041-1/+1
|
* Split up ty tests a bitFlorian Diebold2019-12-037-4902/+4882
|
* Replace `ra_hir_expand::either` with crateice10002019-12-031-2/+2
|
* Fix #2467Florian Diebold2019-12-034-7/+65
| | | | | 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)...
* Merge #2465bors[bot]2019-12-033-127/+219
|\ | | | | | | | | | | | | | | 2465: Extract built-in trait implementations to separate module r=matklad a=flodiebold This untangles the builtin logic from the Chalk translation. Co-authored-by: Florian Diebold <[email protected]>
| * Extract built-in trait implementations to separate moduleFlorian Diebold2019-12-033-127/+219
| | | | | | | | This untangles the builtin logic from the Chalk translation.
* | Make unify pub(crate)Florian Diebold2019-12-031-1/+1
| |
* | Add tests for checking the impl self typeFlorian Diebold2019-12-021-0/+14
| |
* | Refactor a bitFlorian Diebold2019-12-023-77/+74
| |
* | Check receiver type properlyFlorian Diebold2019-12-024-19/+80
| |
* | Extract unification code to unify moduleFlorian Diebold2019-12-026-263/+312
| |
* | Change order of calls to get method candidate order correctFlorian Diebold2019-12-022-39/+115
|/
* Merge #2455bors[bot]2019-12-011-0/+36
|\ | | | | | | | | | | | | | | | | | | 2455: Add BuiltinShadowMode r=flodiebold a=edwin0cheng This PR try to fix #1905 by introduce an `BuiltinShadowMode` in name resolving functions. cc @flodiebold Co-authored-by: Edwin Cheng <[email protected]>
| * Add BuiltinShadowModeEdwin Cheng2019-11-301-0/+36
| |
* | Add cycle recovery for type aliasesFlorian Diebold2019-11-303-2/+10
| |
* | Add cycle recovery for generic predicatesFlorian Diebold2019-11-303-8/+10
| |
* | Handle cycles in impl types betterFlorian Diebold2019-11-308-53/+82
| | | | | | | | | | | | - 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
* | Reduce variants of Exproxalica2019-11-291-39/+37
| |
* | Infer range typesoxalica2019-11-283-0/+127
|/
* Move source-related traits to a separate moduleAleksey Kladov2019-11-281-1/+1
|
* Rename Source -> InFileAleksey Kladov2019-11-282-9/+9
|
* Use Name::missing consistentlyAleksey Kladov2019-11-271-18/+7
|
* Minimize APIAleksey Kladov2019-11-271-8/+3
|
* Memoize impl resolutionsAleksey Kladov2019-11-277-75/+76
|
* Rename module_id -> local_idAleksey Kladov2019-11-272-7/+7
|
* prune depsAleksey Kladov2019-11-271-5/+7
|
* Move TyAleksey Kladov2019-11-2723-2/+12282
|
* Doc primitivesAleksey Kladov2019-11-262-2/+6
|
* Introduce hir_tyAleksey Kladov2019-11-262-0/+193