aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty
Commit message (Collapse)AuthorAgeFilesLines
...
* Handle resolution errors in where clausesFlorian Diebold2019-05-112-15/+56
| | | | | This is slightly hacky, but maybe more elegant than alternative solutions: We just use a hardcoded Chalk trait ID which we special-case to have no impls.
* Handle where clauses in trait solvingFlorian Diebold2019-05-113-24/+138
|
* Deduplicate impls in impls_for_traitFlorian Diebold2019-05-071-2/+3
| | | | This was duplicating impls in dependencies a lot...
* Turn `implements` into a query againFlorian Diebold2019-05-073-7/+5
|
* fill struct fields diagnosticSergey Parilin2019-05-061-0/+1
|
* Differentiate Tuple / FnPtr type constructors by cardinalityFlorian Diebold2019-05-043-7/+15
| | | | | This is necessary because Chalk (reasonably) expects each 'struct' to know how many type parameters it takes.
* Handle recursive types in canonicalizationFlorian Diebold2019-05-042-4/+14
|
* Remove ToChalk implementation for ApplicationTyFlorian Diebold2019-05-041-29/+16
|
* Make canonicalization API a bit nicerFlorian Diebold2019-05-042-31/+56
|
* Update ChalkFlorian Diebold2019-05-042-5/+13
|
* Turn eprintln!s into debug!sFlorian Diebold2019-05-042-8/+12
|
* Handle Ty::Unknown in Chalk conversionFlorian Diebold2019-05-041-1/+5
| | | | Badly, but at least it doesn't crash.
* Canonicalize before doing method resolutionFlorian Diebold2019-05-045-132/+144
|
* Document the peculiarity of the solver query a bitFlorian Diebold2019-05-041-2/+4
| | | | | Also remove the only remaining mention of chalk outside of the ty::traits module.
* Move Chalk conversion code to its own moduleFlorian Diebold2019-05-042-275/+335
|
* Implement Deref<Target=[Ty]> for SubstsFlorian Diebold2019-05-041-1/+0
|
* Simplify solution_from_chalkFlorian Diebold2019-05-041-12/+11
|
* Chalk integrationFlorian Diebold2019-05-046-133/+533
| | | | | - add proper canonicalization logic - add conversions from/to Chalk IR
* Introduced resolve_macro_call on resolverLenard Pratt2019-04-231-0/+26
| | | | | | changed to manual expansion fix for nested macros
* Add HIR for where clauses & ignore impls with where clauses in trait resolutionFlorian Diebold2019-04-212-3/+23
| | | | | This prevents any `impl<T> Trait for T where ...` from being treated as a blanket impl while we don't handle where clauses yet.
* Add a simple test for str method completionFlorian Diebold2019-04-201-0/+22
|
* lang_item_lookup is now a salsa query.Marco Groppo2019-04-191-6/+5
|
* New krate() method in Resolver.Marco Groppo2019-04-192-49/+33
| | | | Renamed Impl to ImplBlock.
* Initial support for lang items.Marco Groppo2019-04-192-29/+63
|
* RefactoringEdwin Cheng2019-04-171-51/+46
|
* Simpliy codeEdwin Cheng2019-04-171-60/+32
|
* Bug fix and add more commentsEdwin Cheng2019-04-171-22/+60
|
* Fix 1099Edwin Cheng2019-04-172-5/+109
|
* Refactor method candidate generation a bitFlorian Diebold2019-04-142-53/+138
| | | | | | This fixes the order in which candidates are chosen a bit (not completely though, as the ignored test demonstrates), and makes autoderef work with trait methods. As a side effect, this also makes completion of trait methods work :)
* Extract generic_params method to a HasGenericParams traitFlorian Diebold2019-04-143-9/+14
|
* Make callable signature handling a bit nicerFlorian Diebold2019-04-141-47/+14
|
* Some cleanupFlorian Diebold2019-04-143-98/+111
|
* More trait infrastructureFlorian Diebold2019-04-145-43/+260
| | | | | | | | | | - make it possible to get parent trait from method - add 'obligation' machinery for checking that a type implements a trait (and inferring facts about type variables from that) - handle type parameters of traits (to a certain degree) - improve the hacky implements check to cover enough cases to exercise the handling of traits with type parameters - basic canonicalization (will probably also be done by Chalk)
* Get substs for trait refs in impl blocksFlorian Diebold2019-04-142-27/+74
|
* replace usages of `algo::generate` with `iter::successors` from stdRobin Freyler2019-04-131-2/+2
|
* make resolver privateAleksey Kladov2019-04-131-1/+1
|
* simplifyAleksey Kladov2019-04-121-11/+12
|
* simplify testsAleksey Kladov2019-04-121-26/+13
|
* type-safer source-map for bindingsAleksey Kladov2019-04-101-1/+1
|
* Avoid two-phase borrow conflictLaurențiu Nicola2019-04-081-2/+2
|
* updated snapshotsLenard Pratt2019-04-072-69/+41
|
* Added ArrayExprKind,Lenard Pratt2019-04-071-13/+17
| | | | | changed the display for fixed array types, Added Array Enum to ra_hir/expr
* Added inference of array lengthLenard Pratt2019-04-072-1/+38
|
* Parse and infer tuple indicesrobojumper2019-04-061-0/+59
|
* Merge #1076bors[bot]2019-04-022-10/+71
|\ | | | | | | | | | | | | | | | | 1076: Const body inference r=flodiebold a=Lapz This is the second part of #887. I've added type inference on const bodies and introduced the DefWithBody containing Function, Const and Static. I want to add tests but im unsure on how I would go about testing that completions work. Co-authored-by: Lenard Pratt <[email protected]>
| * Added const bodies and static body to the astLenard Pratt2019-04-022-10/+71
| | | | | | | | | | | | and added inference the inference test reduce code duplication
* | switch to new rowanAleksey Kladov2019-04-011-8/+6
|/
* Clean up comments / use nicer Iterator methodsFlorian Diebold2019-03-251-9/+14
|
* Implement a very naive implements checkFlorian Diebold2019-03-252-7/+27
| | | | ... to make the infer_trait_method_simple test have the correct result.
* Basics for trait method resolutionFlorian Diebold2019-03-253-21/+54
|