aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/db.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* make documenation a queryAleksey Kladov2019-06-081-0/+3
|
* don't cache parses twiceAleksey Kladov2019-06-021-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 AstDatabaseAleksey Kladov2019-06-021-22/+28
|
* collect impl source mapsAleksey Kladov2019-06-011-3/+0
|
* don't cache ast_id_to_nodeAleksey Kladov2019-06-011-0/+1
|
* don't poison mutex around chalkAleksey Kladov2019-06-011-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 inferenceAleksey Kladov2019-05-211-1/+1
|
* add _query to query functionsAleksey Kladov2019-05-211-3/+3
|
* Add infer for generic default typeEdwin Cheng2019-05-191-1/+4
|
* expand to syntax nodeAleksey Kladov2019-05-141-3/+3
|
* Handle where clauses in trait solvingFlorian Diebold2019-05-111-1/+4
|
* Turn `implements` into a query againFlorian Diebold2019-05-071-0/+7
|
* Document the peculiarity of the solver query a bitFlorian Diebold2019-05-041-1/+6
| | | | | Also remove the only remaining mention of chalk outside of the ty::traits module.
* Chalk integrationFlorian Diebold2019-05-041-8/+18
| | | | | - add proper canonicalization logic - add conversions from/to Chalk IR
* make macro expansion into a proper queryAleksey Kladov2019-05-041-0/+3
|
* introduce macro_arg intermediate queryAleksey Kladov2019-05-041-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 Kladov2019-05-041-1/+1
| | | | | | This reverts commit 6c63a59425e256ce46d058807b64149297231982. This causes massive slowdowns: looks like we accidentally have some source-depndent
* eagarly clean astd mapsAleksey Kladov2019-05-041-1/+1
|
* lang_item_lookup is now a salsa query.Marco Groppo2019-04-191-2/+5
|
* Initial support for lang items.Marco Groppo2019-04-191-0/+4
|
* More trait infrastructureFlorian Diebold2019-04-141-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 interningAleksey Kladov2019-04-091-4/+22
|
* Added const bodies and static body to the astLenard Pratt2019-04-021-1/+1
| | | | | | and added inference the inference test reduce code duplication
* Added defWithBodyLenard Pratt2019-03-301-4/+5
|
* renameAleksey Kladov2019-03-261-5/+5
|
* simplifyAleksey Kladov2019-03-261-1/+1
|
* move source_id to a separate fileAleksey Kladov2019-03-261-2/+2
|
* make macro parsing a queryAleksey Kladov2019-03-261-1/+4
|
* store macro def inside macro idAleksey Kladov2019-03-261-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 checkFlorian Diebold2019-03-251-1/+4
| | | | ... to make the infer_trait_method_simple test have the correct result.
* Basics for trait method resolutionFlorian Diebold2019-03-251-0/+4
|
* rename persistent hir database -> def databaseAleksey Kladov2019-03-231-3/+3
|
* remove old macro supportAleksey Kladov2019-03-171-6/+1
|
* Reorganize name resolutionAleksey Kladov2019-03-171-1/+1
|
* remove lower moduleAleksey Kladov2019-03-171-10/+4
|
* remove ItemMapAleksey Kladov2019-03-171-4/+1
|
* Replace module_tree with CrateDefMapAleksey Kladov2019-03-171-14/+7
|
* Remove FnSig from FnDef typeFlorian Diebold2019-03-161-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 namesAleksey Kladov2019-03-021-7/+7
|
* dont store body inside source mapAleksey Kladov2019-03-021-4/+7
|
* rename syntax-mapping -> source-mapAleksey Kladov2019-03-021-2/+2
|
* Add static type inferenceVille Penttinen2019-02-251-1/+4
|
* Add const type inferenceVille Penttinen2019-02-251-0/+4
|
* Rename Type => TypeAliasFlorian Diebold2019-02-241-3/+5
|
* Implement support for type aliasesFlorian Diebold2019-02-241-1/+4
|
* Handle tuple structs / enum variants properly in type inferenceFlorian Diebold2019-02-171-2/+2
|
* remove query_definitionsAleksey Kladov2019-02-111-3/+2
|
* make HirDatabase object-safeAleksey Kladov2019-02-031-0/+5
|
* split HirDatabase apicsmoe2019-02-011-16/+13
|
* split hirdatabasecsmoe2019-02-011-20/+26
|