Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Add trait obligations for where clauses when calling functions/methods | Florian Diebold | 2019-07-06 | 1 | -2/+2 | |
| | | | | | E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x: Into<u32>`, etc. | |||||
* | allow rustfmt to reorder imports | Aleksey Kladov | 2019-07-04 | 1 | -13/+15 | |
| | | | | | | This wasn't a right decision in the first place, the feature flag was broken in the last rustfmt release, and syntax highlighting of imports is more important anyway | |||||
* | put source maps first for better stats | Aleksey Kladov | 2019-06-30 | 1 | -6/+6 | |
| | ||||||
* | print memory usage for queries | Aleksey Kladov | 2019-06-30 | 1 | -0/+4 | |
| | ||||||
* | make sure that CrateDefMap is independent from syntax | Aleksey Kladov | 2019-06-26 | 1 | -27/+33 | |
| | ||||||
* | cache chalk queries | Aleksey Kladov | 2019-06-26 | 1 | -0/+20 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives a significant speedup, because chalk will call these functions several times even withing a single revision. The only significant one here is `impl_data`, but I figured it might be good to cache others just for consistency. The results I get are: Before: from scratch: 16.081457952s no change: 15.846493ms trivial change: 352.95592ms comment change: 361.998408ms const change: 457.629212ms After: from scratch: 14.910610278s no change: 14.934647ms trivial change: 85.633023ms comment change: 96.433023ms const change: 171.543296ms Seems like a nice win! | |||||
* | Add firewall query to lang items | Aleksey Kladov | 2019-06-19 | 1 | -0/+3 | |
| | | | | | With an intermediate query, changing one module won't cause reparsing of all modules | |||||
* | rename XSignature -> XData | Aleksey Kladov | 2019-06-18 | 1 | -8/+8 | |
| | ||||||
* | Simplifications / cleanup from review | Florian Diebold | 2019-06-16 | 1 | -2/+2 | |
| | ||||||
* | Add basic infrastructure for assoc type projection | Florian Diebold | 2019-06-15 | 1 | -4/+10 | |
| | ||||||
* | move docs under code model | Aleksey Kladov | 2019-06-11 | 1 | -2/+2 | |
| | ||||||
* | make documenation a query | Aleksey Kladov | 2019-06-08 | 1 | -0/+3 | |
| | ||||||
* | don't cache parses twice | Aleksey Kladov | 2019-06-02 | 1 | -0/+3 | |
| | | | | | | | | | Before this commit, `Parse`s for original file ended up two times in salsa's db: first, when we parse original file, and second, when we parse macro or a file. Given that parse trees are the worst ofenders in terms of memory, it makes sense to make sure we store them only once. | |||||
* | add AstDatabase | Aleksey Kladov | 2019-06-02 | 1 | -22/+28 | |
| | ||||||
* | collect impl source maps | Aleksey Kladov | 2019-06-01 | 1 | -3/+0 | |
| | ||||||
* | don't cache ast_id_to_node | Aleksey Kladov | 2019-06-01 | 1 | -0/+1 | |
| | ||||||
* | don't poison mutex around chalk | Aleksey Kladov | 2019-06-01 | 1 | -1/+2 | |
| | | | | | | | | | We use panics for cancellation, so we could trigger panic while holding the solver. std::sync::Mutex will be poisoned as a result, which and all further attempts to use solver (from other threads) will panic as well. This commit switches to parking_lot::Mutex which just unlocks on panic. | |||||
* | profile type inference | Aleksey Kladov | 2019-05-21 | 1 | -1/+1 | |
| | ||||||
* | add _query to query functions | Aleksey Kladov | 2019-05-21 | 1 | -3/+3 | |
| | ||||||
* | Add infer for generic default type | Edwin Cheng | 2019-05-19 | 1 | -1/+4 | |
| | ||||||
* | expand to syntax node | Aleksey Kladov | 2019-05-14 | 1 | -3/+3 | |
| | ||||||
* | Handle where clauses in trait solving | Florian Diebold | 2019-05-11 | 1 | -1/+4 | |
| | ||||||
* | Turn `implements` into a query again | Florian Diebold | 2019-05-07 | 1 | -0/+7 | |
| | ||||||
* | Document the peculiarity of the solver query a bit | Florian Diebold | 2019-05-04 | 1 | -1/+6 | |
| | | | | | Also remove the only remaining mention of chalk outside of the ty::traits module. | |||||
* | Chalk integration | Florian Diebold | 2019-05-04 | 1 | -8/+18 | |
| | | | | | - add proper canonicalization logic - add conversions from/to Chalk IR | |||||
* | make macro expansion into a proper query | Aleksey Kladov | 2019-05-04 | 1 | -0/+3 | |
| | ||||||
* | introduce macro_arg intermediate query | Aleksey Kladov | 2019-05-04 | 1 | -1/+4 | |
| | | | | | | | | | | | | 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 | 1 | -1/+1 | |
| | | | | | | 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 | 1 | -1/+1 | |
| | ||||||
* | lang_item_lookup is now a salsa query. | Marco Groppo | 2019-04-19 | 1 | -2/+5 | |
| | ||||||
* | Initial support for lang items. | Marco Groppo | 2019-04-19 | 1 | -0/+4 | |
| | ||||||
* | More trait infrastructure | Florian Diebold | 2019-04-14 | 1 | -2/+5 | |
| | | | | | | | | | | - 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) | |||||
* | migrate to salsas interning | Aleksey Kladov | 2019-04-09 | 1 | -4/+22 | |
| | ||||||
* | Added const bodies and static body to the ast | Lenard Pratt | 2019-04-02 | 1 | -1/+1 | |
| | | | | | | and added inference the inference test reduce code duplication | |||||
* | Added defWithBody | Lenard Pratt | 2019-03-30 | 1 | -4/+5 | |
| | ||||||
* | rename | Aleksey Kladov | 2019-03-26 | 1 | -5/+5 | |
| | ||||||
* | simplify | Aleksey Kladov | 2019-03-26 | 1 | -1/+1 | |
| | ||||||
* | move source_id to a separate file | Aleksey Kladov | 2019-03-26 | 1 | -2/+2 | |
| | ||||||
* | make macro parsing a query | Aleksey Kladov | 2019-03-26 | 1 | -1/+4 | |
| | ||||||
* | store macro def inside macro id | Aleksey Kladov | 2019-03-26 | 1 | -3/+6 | |
| | | | | | | | | This solves the problem of "macro expansion can't call into name resolution, because name resolution calls back into macro expansion" Because we store macro def as a part of call id, macro expansion just knows the def! | |||||
* | Implement a very naive implements check | Florian Diebold | 2019-03-25 | 1 | -1/+4 | |
| | | | | ... to make the infer_trait_method_simple test have the correct result. | |||||
* | Basics for trait method resolution | Florian Diebold | 2019-03-25 | 1 | -0/+4 | |
| | ||||||
* | rename persistent hir database -> def database | Aleksey Kladov | 2019-03-23 | 1 | -3/+3 | |
| | ||||||
* | remove old macro support | Aleksey Kladov | 2019-03-17 | 1 | -6/+1 | |
| | ||||||
* | Reorganize name resolution | Aleksey Kladov | 2019-03-17 | 1 | -1/+1 | |
| | ||||||
* | remove lower module | Aleksey Kladov | 2019-03-17 | 1 | -10/+4 | |
| | ||||||
* | remove ItemMap | Aleksey Kladov | 2019-03-17 | 1 | -4/+1 | |
| | ||||||
* | Replace module_tree with CrateDefMap | Aleksey Kladov | 2019-03-17 | 1 | -14/+7 | |
| | ||||||
* | Remove FnSig from FnDef type | Florian Diebold | 2019-03-16 | 1 | -1/+4 | |
| | | | | | It doesn't need to be in there since it's just information from the def. Another step towards aligning Ty with Chalk's representation. | |||||
* | align lower module query names | Aleksey Kladov | 2019-03-02 | 1 | -7/+7 | |
| |