Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Move expression lowering to hir_def | Aleksey Kladov | 2019-11-12 | 1 | -2/+2 | |
| | ||||||
* | Minor cleanup | Aleksey Kladov | 2019-11-12 | 1 | -7/+5 | |
| | ||||||
* | Merge #2179 | bors[bot] | 2019-11-06 | 1 | -0/+4 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | 2179: Use HirDatabase to compute `is_deprecated` r=matklad a=martskins This PR fixes #2167 by introducing `attributes_query` and adding `fn attrs(&self, def: crate::AttrDef) -> Option<Arc<[Attr]>>;` to the `DefDatabase` trait. I'm a little concerned about the two spots in `attributes_query` where code is repeated, but I couldn't figure out a way to avoid that, so.. I welcome suggestions :smile: Co-authored-by: Martin Asquino <[email protected]> | |||||
| * | HirDatabase stored attributes | Martin Asquino | 2019-11-04 | 1 | -0/+4 | |
| | | ||||||
* | | Move Namespace enum closer to usage | Aleksey Kladov | 2019-11-04 | 1 | -2/+2 | |
|/ | ||||||
* | Remove last traces of nameres from hir | Aleksey Kladov | 2019-11-03 | 1 | -2/+1 | |
| | ||||||
* | Move CrateDefMap to hir_def | Aleksey Kladov | 2019-11-03 | 1 | -6/+3 | |
| | ||||||
* | move struct & enum data to hir_def | Aleksey Kladov | 2019-10-31 | 1 | -11/+4 | |
| | ||||||
* | fix compilation | Aleksey Kladov | 2019-10-30 | 1 | -2/+5 | |
| | ||||||
* | move raw_items to hir_def | Aleksey Kladov | 2019-10-30 | 1 | -13/+4 | |
| | ||||||
* | Move ids to hir_def crate | Aleksey Kladov | 2019-10-30 | 1 | -25/+3 | |
| | ||||||
* | move ty interning to ty | Aleksey Kladov | 2019-10-30 | 1 | -6/+6 | |
| | ||||||
* | rename hir_def -> hir_expand | Aleksey Kladov | 2019-10-29 | 1 | -1/+1 | |
| | ||||||
* | move expansion-related code to a separate crate | Aleksey Kladov | 2019-10-29 | 1 | -35/+9 | |
| | ||||||
* | start ra_hir_def crate | Aleksey Kladov | 2019-10-29 | 1 | -2/+2 | |
| | ||||||
* | minor cleanup | Aleksey Kladov | 2019-10-16 | 1 | -9/+9 | |
| | ||||||
* | Added test for check doc strings in crates. | Alexander Andreev | 2019-09-30 | 1 | -0/+2 | |
| | | | | #1856 | |||||
* | Fix retrieval of the Fn traits | Florian Diebold | 2019-09-25 | 1 | -2/+2 | |
| | | | | | I used the wrong query, so it only used the lang items from the respective crate... | |||||
* | Make closures impl closure traits | Florian Diebold | 2019-09-24 | 1 | -3/+3 | |
| | ||||||
* | Handle associated type shorthand (`T::Item`) | Florian Diebold | 2019-09-22 | 1 | -0/+7 | |
| | | | | | | | | | | | | This is only allowed for generic parameters (including `Self` in traits), and special care needs to be taken to not run into cycles while resolving it, because we use the where clauses of the generic parameter to find candidates for the trait containing the associated type, but the where clauses may themselves contain instances of short-hand associated types. In some cases this is even fine, e.g. we might have `T: Trait<U::Item>, U: Iterator`. If there is a cycle, we'll currently panic, which isn't great, but better than overflowing the stack... | |||||
* | introduce hir debugging infra | Aleksey Kladov | 2019-09-09 | 1 | -1/+2 | |
| | | | | | | | | | | | | This is to make debugging rust-analyzer easier. The idea is that `dbg!(krate.debug(db))` will print the actual, fuzzy crate name, instead of precise ID. Debug printing infra is a separate thing, to make sure that the actual hir doesn't have access to global information. Do not use `.debug` for `log::` logging: debugging executes queries, and might introduce unneded dependencies to the crate graph | |||||
* | 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 | |
| |