aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir
Commit message (Collapse)AuthorAgeFilesLines
* Differentiate Tuple / FnPtr type constructors by cardinalityFlorian Diebold2019-05-044-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 bitFlorian Diebold2019-05-041-12/+2
|
* Handle recursive types in canonicalizationFlorian Diebold2019-05-043-5/+15
|
* Remove ToChalk implementation for ApplicationTyFlorian Diebold2019-05-041-29/+16
|
* Make canonicalization API a bit nicerFlorian Diebold2019-05-042-31/+56
|
* Update ChalkFlorian Diebold2019-05-043-11/+16
|
* Turn eprintln!s into debug!sFlorian Diebold2019-05-042-8/+12
|
* Handle Ty::Unknown in Chalk conversionFlorian Diebold2019-05-041-1/+5
| | | | Badly, but at least it doesn't crash.
* Canonicalize before doing method resolutionFlorian Diebold2019-05-047-133/+165
|
* Document the peculiarity of the solver query a bitFlorian Diebold2019-05-042-3/+10
| | | | | Also remove the only remaining mention of chalk outside of the ty::traits module.
* Move Chalk conversion code to its own moduleFlorian Diebold2019-05-043-321/+339
|
* Implement Deref<Target=[Ty]> for SubstsFlorian Diebold2019-05-042-18/+18
|
* Simplify solution_from_chalkFlorian Diebold2019-05-041-12/+11
|
* Chalk integrationFlorian Diebold2019-05-0413-147/+677
| | | | | - add proper canonicalization logic - add conversions from/to Chalk IR
* Add Ty::Bound variant for use in Chalk integrationFlorian Diebold2019-05-041-2/+7
|
* make macro expansion into a proper queryAleksey Kladov2019-05-043-35/+28
|
* minor, moveAleksey Kladov2019-05-041-19/+19
|
* introduce macro_arg intermediate queryAleksey Kladov2019-05-043-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 Kladov2019-05-042-2/+2
| | | | | | This reverts commit 6c63a59425e256ce46d058807b64149297231982. This causes massive slowdowns: looks like we accidentally have some source-depndent
* eagarly clean astd mapsAleksey Kladov2019-05-042-2/+2
|
* Use correct FileId when expanding macros in expressionsAleksey Kladov2019-05-012-33/+44
|
* Sidestep two-phase borrow violation signaled by ↵Felix S. Klock II2019-04-291-2/+3
| | | | | | mutable_borrow_reservation_conflict. See rust-lang/rust#59159 for further information/discussion.
* Add more information on macro rules fail to parseEdwin Cheng2019-04-251-2/+8
|
* drop empty fileAleksey Kladov2019-04-251-0/+0
|
* Introduced resolve_macro_call on resolverLenard Pratt2019-04-235-55/+112
| | | | | | changed to manual expansion fix for nested macros
* Added macro resolution and expansionLenard Pratt2019-04-226-93/+135
|
* Addeded resolver and dbLenard Pratt2019-04-221-60/+79
|
* Merge #1194bors[bot]2019-04-222-1/+14
|\ | | | | | | | | | | | | | | | | 1194: Pr 1190 r=matklad a=matklad Co-authored-by: Andrea Pretto <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]>
| * unused importAleksey Kladov2019-04-221-2/+0
| |
| * move auto-imoprter into IDEAleksey Kladov2019-04-224-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 rangeAndrea Pretto2019-04-212-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 Pretto2019-04-213-2/+84
| | | | | | | | | | | | importable name. Changes complete_scope to support that.
| * auto_import: make auto import working with target as a list of SmolStr ↵Andrea Pretto2019-04-211-0/+4
| | | | | | | | instead of ast::Path
* | Change macro stack monitor test to func ptr basedEdwin Cheng2019-04-221-40/+25
| |
* | Add mbe expand limit and poision macro setEdwin Cheng2019-04-223-15/+194
|/
* Add more information on parse_macro failEdwin Cheng2019-04-211-10/+27
|
* Add HIR for where clauses & ignore impls with where clauses in trait resolutionFlorian Diebold2019-04-213-5/+63
| | | | | This prevents any `impl<T> Trait for T where ...` from being treated as a blanket impl while we don't handle where clauses yet.
* Merge #1175bors[bot]2019-04-212-6/+39
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 1175: Fix bugs and add error log about macro expansion r=matklad a=edwin0cheng This PR fixed / add following things: * Add a fused count which stop recursion of macro expansion in name resolution. * Add some logs when macro expansion fails * Add `$crate` meta variable support in mbe, which create a `$crate` ident token in token tree. * Fixed matching a `$REPEAT` pattern inside a subtree, e.g. `(fn $name:ident {$($i:ident)*} ) => {...}` * Remove composite-able punct token in syntax node to token conversion. Co-authored-by: Edwin Cheng <[email protected]>
| * Fix bugsEdwin Cheng2019-04-202-6/+39
| |
* | Add a simple test for str method completionFlorian Diebold2019-04-201-0/+22
| |
* | lang_item_lookup is now a salsa query.Marco Groppo2019-04-193-32/+34
| |
* | New krate() method in Resolver.Marco Groppo2019-04-194-54/+44
| | | | | | | | Renamed Impl to ImplBlock.
* | Initial support for lang items.Marco Groppo2019-04-197-30/+175
|/
* RefactoringEdwin Cheng2019-04-171-51/+46
|
* Simpliy codeEdwin Cheng2019-04-171-60/+32
|
* Bug fix and add more commentsEdwin Cheng2019-04-171-22/+60
|
* Fix 1099Edwin Cheng2019-04-172-5/+109
|
* Refactor method candidate generation a bitFlorian Diebold2019-04-143-54/+149
| | | | | | This fixes the order in which candidates are chosen a bit (not completely though, as the ignored test demonstrates), and makes autoderef work with trait methods. As a side effect, this also makes completion of trait methods work :)
* Extract generic_params method to a HasGenericParams traitFlorian Diebold2019-04-147-37/+33
|
* Add Container enum to handle both kinds of container (impl/trait)Florian Diebold2019-04-144-17/+58
|