Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | slightly simplify expr lowering flow | Aleksey Kladov | 2019-09-03 | 1 | -2/+2 |
| | |||||
* | move expr lowering to lower | Aleksey Kladov | 2019-09-03 | 1 | -2/+2 |
| | |||||
* | switch from volatile to untracked read | Aleksey Kladov | 2019-08-15 | 1 | -5/+4 |
| | |||||
* | migrate ra_hir to the new rowan | Aleksey Kladov | 2019-07-19 | 1 | -3/+3 |
| | |||||
* | use Parse in mbe | Aleksey Kladov | 2019-07-18 | 1 | -2/+2 |
| | |||||
* | Some renamings for clarity | Florian Diebold | 2019-07-14 | 1 | -4/+4 |
| | |||||
* | Unify `normalize` and `implements` to simplify code | Florian Diebold | 2019-07-08 | 1 | -10/+3 |
| | |||||
* | Use environment for associated type normalization as well | Florian Diebold | 2019-07-08 | 1 | -1/+1 |
| | |||||
* | Refactor a bit & introduce Environment struct | Florian Diebold | 2019-07-08 | 1 | -1/+1 |
| | |||||
* | 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. |