Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Merge #1271 | bors[bot] | 2019-05-13 | 1 | -1/+1 | |
|\ | | | | | | | | | | | | | | | 1271: make AstId untyped r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]> | |||||
| * | make AstId untyped | Aleksey Kladov | 2019-05-13 | 1 | -1/+1 | |
| | | ||||||
* | | Increase Chalk solver max_size back to 4 | Florian Diebold | 2019-05-13 | 1 | -1/+1 | |
|/ | | | | | | Reducing it to 2 was just a failed attempt to see whether that would help fix some slow cases; in fact, it can create new slow cases by replacing concrete types by variables. | |||||
* | Use traits from prelude for method resolution | Florian Diebold | 2019-05-12 | 2 | -1/+30 | |
| | ||||||
* | Blacklist some traits from being considered in where clauses | Florian Diebold | 2019-05-12 | 2 | -7/+34 | |
| | | | | | | | For Send/Sync/Sized, we don't handle auto traits correctly yet and because they have a lot of impls, they can easily lead to slowdowns. In the case of Fn/FnMut/FnOnce, we don't parse the special Fn notation correctly yet and don't handle closures yet, so we are very unlikely to find an impl. | |||||
* | Fix impl blocks with unresolved target trait being treated as inherent impls | Florian Diebold | 2019-05-12 | 1 | -5/+7 | |
| | ||||||
* | Add support for inline bounds | Florian Diebold | 2019-05-11 | 1 | -0/+33 | |
| | | | | E.g. impl<T: Clone> Foo for T. | |||||
* | Handle auto traits & negative impls | Florian Diebold | 2019-05-11 | 1 | -5/+19 | |
| | | | | | We don't pass field types to Chalk yet though, so the auto trait inference won't be correct. | |||||
* | Reduce Chalk max_size parameter, add test for slow case | Florian Diebold | 2019-05-11 | 3 | -3/+42 | |
| | ||||||
* | Handle Chalk conversion for FnDef | Florian Diebold | 2019-05-11 | 2 | -2/+38 | |
| | ||||||
* | Handle resolution errors in where clauses | Florian Diebold | 2019-05-11 | 2 | -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 solving | Florian Diebold | 2019-05-11 | 3 | -24/+138 | |
| | ||||||
* | Deduplicate impls in impls_for_trait | Florian Diebold | 2019-05-07 | 1 | -2/+3 | |
| | | | | This was duplicating impls in dependencies a lot... | |||||
* | Turn `implements` into a query again | Florian Diebold | 2019-05-07 | 3 | -7/+5 | |
| | ||||||
* | fill struct fields diagnostic | Sergey Parilin | 2019-05-06 | 1 | -0/+1 | |
| | ||||||
* | Differentiate Tuple / FnPtr type constructors by cardinality | Florian Diebold | 2019-05-04 | 3 | -7/+15 | |
| | | | | | This is necessary because Chalk (reasonably) expects each 'struct' to know how many type parameters it takes. | |||||
* | Handle recursive types in canonicalization | Florian Diebold | 2019-05-04 | 2 | -4/+14 | |
| | ||||||
* | Remove ToChalk implementation for ApplicationTy | Florian Diebold | 2019-05-04 | 1 | -29/+16 | |
| | ||||||
* | Make canonicalization API a bit nicer | Florian Diebold | 2019-05-04 | 2 | -31/+56 | |
| | ||||||
* | Update Chalk | Florian Diebold | 2019-05-04 | 2 | -5/+13 | |
| | ||||||
* | Turn eprintln!s into debug!s | Florian Diebold | 2019-05-04 | 2 | -8/+12 | |
| | ||||||
* | Handle Ty::Unknown in Chalk conversion | Florian Diebold | 2019-05-04 | 1 | -1/+5 | |
| | | | | Badly, but at least it doesn't crash. | |||||
* | Canonicalize before doing method resolution | Florian Diebold | 2019-05-04 | 5 | -132/+144 | |
| | ||||||
* | Document the peculiarity of the solver query a bit | Florian Diebold | 2019-05-04 | 1 | -2/+4 | |
| | | | | | Also remove the only remaining mention of chalk outside of the ty::traits module. | |||||
* | Move Chalk conversion code to its own module | Florian Diebold | 2019-05-04 | 2 | -275/+335 | |
| | ||||||
* | Implement Deref<Target=[Ty]> for Substs | Florian Diebold | 2019-05-04 | 1 | -1/+0 | |
| | ||||||
* | Simplify solution_from_chalk | Florian Diebold | 2019-05-04 | 1 | -12/+11 | |
| | ||||||
* | Chalk integration | Florian Diebold | 2019-05-04 | 6 | -133/+533 | |
| | | | | | - add proper canonicalization logic - add conversions from/to Chalk IR | |||||
* | Introduced resolve_macro_call on resolver | Lenard Pratt | 2019-04-23 | 1 | -0/+26 | |
| | | | | | | changed to manual expansion fix for nested macros | |||||
* | Add HIR for where clauses & ignore impls with where clauses in trait resolution | Florian Diebold | 2019-04-21 | 2 | -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 completion | Florian Diebold | 2019-04-20 | 1 | -0/+22 | |
| | ||||||
* | lang_item_lookup is now a salsa query. | Marco Groppo | 2019-04-19 | 1 | -6/+5 | |
| | ||||||
* | New krate() method in Resolver. | Marco Groppo | 2019-04-19 | 2 | -49/+33 | |
| | | | | Renamed Impl to ImplBlock. | |||||
* | Initial support for lang items. | Marco Groppo | 2019-04-19 | 2 | -29/+63 | |
| | ||||||
* | Refactoring | Edwin Cheng | 2019-04-17 | 1 | -51/+46 | |
| | ||||||
* | Simpliy code | Edwin Cheng | 2019-04-17 | 1 | -60/+32 | |
| | ||||||
* | Bug fix and add more comments | Edwin Cheng | 2019-04-17 | 1 | -22/+60 | |
| | ||||||
* | Fix 1099 | Edwin Cheng | 2019-04-17 | 2 | -5/+109 | |
| | ||||||
* | Refactor method candidate generation a bit | Florian Diebold | 2019-04-14 | 2 | -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 trait | Florian Diebold | 2019-04-14 | 3 | -9/+14 | |
| | ||||||
* | Make callable signature handling a bit nicer | Florian Diebold | 2019-04-14 | 1 | -47/+14 | |
| | ||||||
* | Some cleanup | Florian Diebold | 2019-04-14 | 3 | -98/+111 | |
| | ||||||
* | More trait infrastructure | Florian Diebold | 2019-04-14 | 5 | -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 blocks | Florian Diebold | 2019-04-14 | 2 | -27/+74 | |
| | ||||||
* | replace usages of `algo::generate` with `iter::successors` from std | Robin Freyler | 2019-04-13 | 1 | -2/+2 | |
| | ||||||
* | make resolver private | Aleksey Kladov | 2019-04-13 | 1 | -1/+1 | |
| | ||||||
* | simplify | Aleksey Kladov | 2019-04-12 | 1 | -11/+12 | |
| | ||||||
* | simplify tests | Aleksey Kladov | 2019-04-12 | 1 | -26/+13 | |
| | ||||||
* | type-safer source-map for bindings | Aleksey Kladov | 2019-04-10 | 1 | -1/+1 | |
| | ||||||
* | Avoid two-phase borrow conflict | Laurențiu Nicola | 2019-04-08 | 1 | -2/+2 | |
| |