aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/infer.rs
Commit message (Collapse)AuthorAgeFilesLines
* Remove assoc_type_by_name helperAleksey Kladov2019-11-261-7/+7
|
* Id-ify Ty::AdtAleksey Kladov2019-11-261-2/+2
|
* Remove Resolver from autoderefAleksey Kladov2019-11-251-2/+1
| | | | | Resolver holds onto too much context, including local scopes. Let's try to pass in only what is necessary -- the trait environment.
* SimplifyAleksey Kladov2019-11-241-3/+2
|
* Don't redo field resolution in the IDEAleksey Kladov2019-11-241-0/+5
|
* SimplifyAleksey Kladov2019-11-241-2/+2
|
* Hide data from public APIAleksey Kladov2019-11-221-4/+4
|
* Move const&static date to hir_defAleksey Kladov2019-11-221-4/+4
|
* Make ImplData's fields publicAleksey Kladov2019-11-221-1/+1
|
* Move FunctionData to hir_defAleksey Kladov2019-11-221-6/+7
|
* Move resolver to hir_defAleksey Kladov2019-11-211-1/+1
|
* DecoupleAleksey Kladov2019-11-211-4/+5
|
* Decouple ResolverAleksey Kladov2019-11-211-11/+12
|
* Add HasResolver traitAleksey Kladov2019-11-201-1/+1
|
* Remove hir/adt.rsAleksey Kladov2019-11-201-2/+1
|
* Move body queries to hir_defAleksey Kladov2019-11-141-2/+3
|
* Reduce duplication between uncertain floats & intsAleksey Kladov2019-11-131-17/+11
|
* Remove owner from BodyAleksey Kladov2019-11-121-5/+6
|
* Move diagnostics to hir_expandAleksey Kladov2019-11-021-8/+4
|
* push name down to hir_expandAleksey Kladov2019-10-301-1/+1
|
* remove forward pointer for type_refAleksey Kladov2019-10-301-2/+5
|
* remove forward pointer to PathAleksey Kladov2019-10-301-2/+1
|
* remove forward pointer for nameAleksey Kladov2019-10-301-1/+1
|
* Bump depsLaurențiu Nicola2019-10-171-3/+7
|
* Split up infer.rs furtherFlorian Diebold2019-10-121-1135/+18
| | | | | | - coercion logic goes to `coerce.rs` - expression inference goes to `expr.rs` - pattern inference goes to `pat.rs`
* Address comments: fix docs, add completion test for `Self`.ice10002019-10-081-3/+1
|
* Support inferring `Self` type in enum definitionsice10002019-10-081-0/+3
| | | | Signed-off-by: ice1000 <[email protected]>
* Handle divergence in type inference for blocksLaurențiu Nicola2019-10-021-2/+10
|
* Merge #1815bors[bot]2019-09-271-5/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1815: Support correct `$crate` expansion in macros r=uHOOCCOOHu a=uHOOCCOOHu This PR makes normal use cases of `$crate` from macros work as expected. It makes more macros from `std` work. Type inference works well with `panic`, `unimplemented`, `format`, and maybe more. Sadly that `vec![1, 2, 3]` still not works, but it is not longer an issue about macro. Screenshot: ![Screenshot_20190927_022136](https://user-images.githubusercontent.com/14816024/65714465-b4568f80-e0cd-11e9-8043-dd44c2ae8040.png) Co-authored-by: uHOOCCOOHu <[email protected]>
| * Refactor `Name` ready for hygienic macrouHOOCCOOHu2019-09-261-5/+4
| |
* | Add SubstsBuilderFlorian Diebold2019-09-261-8/+7
|/ | | | + further refactoring.
* Support all coercion placesuHOOCCOOHu2019-09-251-25/+57
|
* Support custom `CoerceUnsized`uHOOCCOOHu2019-09-251-26/+181
| | | | Split out tests about coercion
* Better handle never type and branch merginguHOOCCOOHu2019-09-251-60/+92
| | | | Split out tests for never type to another file
* Support basic implicit type coerceuHOOCCOOHu2019-09-251-86/+168
|
* Support auto-deref in argument positionuHOOCCOOHu2019-09-251-1/+43
|
* Remove redundant clone()Shotaro Yamada2019-09-251-2/+2
|
* Implement the call argument checking order hack for closuresFlorian Diebold2019-09-241-10/+26
|
* Make the closure_1 test workFlorian Diebold2019-09-241-0/+5
|
* Give closures typesFlorian Diebold2019-09-241-4/+18
|
* Split off path expression inference code into submoduleFlorian Diebold2019-09-231-172/+4
|
* Remove TraitItem and ImplItem in favor of AssocItemFlorian Diebold2019-09-171-14/+12
|
* Refactor some moreFlorian Diebold2019-09-171-39/+61
| | | | | | Type-relative paths (`<T>::foo`) also need to work in type context, for example `<T>::Item` is legal. So rather than returning the type ref from the resolver function, just check it before.
* Refactor associated item resolution moreFlorian Diebold2019-09-171-71/+54
| | | | | When resolving an associated item in value namespace, use the `Ty` lowering code for the segments before the last instead of replicating it.
* Refactor a bit to prepare for resolving trait assoc itemsFlorian Diebold2019-09-171-30/+27
|
* Merge #1817bors[bot]2019-09-161-75/+52
|\ | | | | | | | | | | | | | | 1817: Support path starting with a type r=matklad a=uHOOCCOOHu The path syntax `<Ty>::foo` Co-authored-by: uHOOCCOOHu <[email protected]>
| * Define known paths and group namesuHOOCCOOHu2019-09-151-25/+12
| |
| * Support path starting with a typeuHOOCCOOHu2019-09-151-65/+55
| |
* | Gracefully handle `const _` items in `ConstData`Dylan MacKenzie2019-09-161-1/+1
|/
* Upgrade ChalkFlorian Diebold2019-09-141-4/+0
| | | | ... and remove Ty::UnselectedProjection. It'll be handled differently.