Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | 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. | |||||
* | simplify | Aleksey Kladov | 2019-05-12 | 4 | -33/+11 | |
| | ||||||
* | simplify | Aleksey Kladov | 2019-05-12 | 2 | -8/+7 | |
| | ||||||
* | Use traits from prelude for method resolution | Florian Diebold | 2019-05-12 | 3 | -14/+42 | |
| | ||||||
* | 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 | 2 | -16/+60 | |
| | | | | E.g. impl<T: Clone> Foo for T. | |||||
* | Handle auto traits & negative impls | Florian Diebold | 2019-05-11 | 4 | -7/+37 | |
| | | | | | 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 | 3 | -2/+39 | |
| | ||||||
* | 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 | 6 | -29/+188 | |
| | ||||||
* | Deduplicate impls in impls_for_trait | Florian Diebold | 2019-05-07 | 1 | -2/+3 | |
| | | | | This was duplicating impls in dependencies a lot... | |||||
* | Add a HirDisplay implementation for TraitRef | Florian Diebold | 2019-05-07 | 1 | -0/+17 | |
| | ||||||
* | Turn `implements` into a query again | Florian Diebold | 2019-05-07 | 5 | -8/+13 | |
| | ||||||
* | fill struct fields diagnostic | Sergey Parilin | 2019-05-06 | 5 | -11/+133 | |
| | ||||||
* | Merge #1208 | bors[bot] | 2019-05-04 | 2 | -5/+42 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1208: [WIP] Goto for Macro's r=matklad a=Lapz Adds goto definition for macros. Currently only works for macros in the current crate ~~otherwise it panics~~. Proper macro resolution needs to be added for it to resolve macros in other crates. Todo - [X] Allow goto from macro calls - [X] Fix panics - [x] Add tests ![Screen Recording 2019-04-25 at 18 00 24](https://user-images.githubusercontent.com/19998186/56754499-1dd01c00-6785-11e9-9e9a-1e36de70cfa3.gif) Co-authored-by: Lenard Pratt <[email protected]> | |||||
| * | Added local macro goto | Lenard Pratt | 2019-05-04 | 2 | -5/+42 | |
| | | ||||||
* | | Differentiate Tuple / FnPtr type constructors by cardinality | Florian Diebold | 2019-05-04 | 4 | -14/+24 | |
| | | | | | | | | | | This is necessary because Chalk (reasonably) expects each 'struct' to know how many type parameters it takes. | |||||
* | | Simplify subst / subst_bound_vars a bit | Florian Diebold | 2019-05-04 | 1 | -12/+2 | |
| | | ||||||
* | | Handle recursive types in canonicalization | Florian Diebold | 2019-05-04 | 3 | -5/+15 | |
| | | ||||||
* | | 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 | 7 | -133/+165 | |
| | | ||||||
* | | Document the peculiarity of the solver query a bit | Florian Diebold | 2019-05-04 | 2 | -3/+10 | |
| | | | | | | | | | | 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 | 3 | -321/+339 | |
| | | ||||||
* | | Implement Deref<Target=[Ty]> for Substs | Florian Diebold | 2019-05-04 | 2 | -18/+18 | |
| | | ||||||
* | | Simplify solution_from_chalk | Florian Diebold | 2019-05-04 | 1 | -12/+11 | |
| | | ||||||
* | | Chalk integration | Florian Diebold | 2019-05-04 | 12 | -146/+669 | |
| | | | | | | | | | | - add proper canonicalization logic - add conversions from/to Chalk IR | |||||
* | | Add Ty::Bound variant for use in Chalk integration | Florian Diebold | 2019-05-04 | 1 | -2/+7 | |
| | | ||||||
* | | make macro expansion into a proper query | Aleksey Kladov | 2019-05-04 | 3 | -35/+28 | |
| | | ||||||
* | | minor, move | Aleksey Kladov | 2019-05-04 | 1 | -19/+19 | |
| | | ||||||
* | | introduce macro_arg intermediate query | Aleksey Kladov | 2019-05-04 | 3 | -25/+27 | |
| | | | | | | | | | | | | | | | | | | | | | | | | Currently, when expanding macros, we look at the source code directly (we invoke ast_id_to_node query via to_node method). This is less then ideal, because it make us re-expand macros after every source change. This commit establishes a salsa-firewall: a query to get macro call's token tree. Unlike the syntax tree, token tree changes only if we actually modify the macro itself. | |||||
* | | Revert "eagarly clean astd maps" | Aleksey Kladov | 2019-05-04 | 2 | -2/+2 | |
| | | | | | | | | | | | | This reverts commit 6c63a59425e256ce46d058807b64149297231982. This causes massive slowdowns: looks like we accidentally have some source-depndent | |||||
* | | eagarly clean astd maps | Aleksey Kladov | 2019-05-04 | 2 | -2/+2 | |
|/ | ||||||
* | Use correct FileId when expanding macros in expressions | Aleksey Kladov | 2019-05-01 | 2 | -33/+44 | |
| | ||||||
* | Sidestep two-phase borrow violation signaled by ↵ | Felix S. Klock II | 2019-04-29 | 1 | -2/+3 | |
| | | | | | | mutable_borrow_reservation_conflict. See rust-lang/rust#59159 for further information/discussion. | |||||
* | Add more information on macro rules fail to parse | Edwin Cheng | 2019-04-25 | 1 | -2/+8 | |
| | ||||||
* | drop empty file | Aleksey Kladov | 2019-04-25 | 1 | -0/+0 | |
| | ||||||
* | Introduced resolve_macro_call on resolver | Lenard Pratt | 2019-04-23 | 5 | -55/+112 | |
| | | | | | | changed to manual expansion fix for nested macros | |||||
* | Added macro resolution and expansion | Lenard Pratt | 2019-04-22 | 6 | -93/+135 | |
| | ||||||
* | Addeded resolver and db | Lenard Pratt | 2019-04-22 | 1 | -60/+79 | |
| | ||||||
* | Merge #1194 | bors[bot] | 2019-04-22 | 2 | -1/+14 | |
|\ | | | | | | | | | | | | | | | | | 1194: Pr 1190 r=matklad a=matklad Co-authored-by: Andrea Pretto <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]> | |||||
| * | unused import | Aleksey Kladov | 2019-04-22 | 1 | -2/+0 | |
| | | ||||||
| * | move auto-imoprter into IDE | Aleksey Kladov | 2019-04-22 | 4 | -76/+13 | |
| | | | | | | | | | | auto-import is purely an IDE concern, so it should be done outside of HIR | |||||
| * | complete_import: prevent panic when the anchor is the completion source range | Andrea Pretto | 2019-04-21 | 2 | -9/+1 | |
| | | | | | | | | | | | | (fix rebase mess) Please enter the commit message for your changes. Lines starting | |||||
| * | complete_import: add new import resolver infrastructure with some hardcoded ↵ | Andrea Pretto | 2019-04-21 | 3 | -2/+84 | |
| | | | | | | | | | | | | importable name. Changes complete_scope to support that. |