aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src
Commit message (Collapse)AuthorAgeFilesLines
* allow expanding expressionsAleksey Kladov2019-05-142-7/+8
|
* expand to syntax nodeAleksey Kladov2019-05-145-25/+32
|
* store macro kind in HirFileIdAleksey Kladov2019-05-144-21/+38
|
* Merge #1271bors[bot]2019-05-136-11/+15
|\ | | | | | | | | | | | | | | 1271: make AstId untyped r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * make AstId untypedAleksey Kladov2019-05-136-11/+15
| |
* | Increase Chalk solver max_size back to 4Florian Diebold2019-05-131-1/+1
|/ | | | | | Reducing it to 2 was just a failed attempt to see whether that would help fix some slow cases; in fact, it can create new slow cases by replacing concrete types by variables.
* simplifyAleksey Kladov2019-05-124-33/+11
|
* simplifyAleksey Kladov2019-05-122-8/+7
|
* Use traits from prelude for method resolutionFlorian Diebold2019-05-123-14/+42
|
* Blacklist some traits from being considered in where clausesFlorian Diebold2019-05-122-7/+34
| | | | | | | For Send/Sync/Sized, we don't handle auto traits correctly yet and because they have a lot of impls, they can easily lead to slowdowns. In the case of Fn/FnMut/FnOnce, we don't parse the special Fn notation correctly yet and don't handle closures yet, so we are very unlikely to find an impl.
* Fix impl blocks with unresolved target trait being treated as inherent implsFlorian Diebold2019-05-121-5/+7
|
* Add support for inline boundsFlorian Diebold2019-05-112-16/+60
| | | | E.g. impl<T: Clone> Foo for T.
* Handle auto traits & negative implsFlorian Diebold2019-05-114-7/+37
| | | | | We don't pass field types to Chalk yet though, so the auto trait inference won't be correct.
* Reduce Chalk max_size parameter, add test for slow caseFlorian Diebold2019-05-113-3/+42
|
* Handle Chalk conversion for FnDefFlorian Diebold2019-05-113-2/+39
|
* Handle resolution errors in where clausesFlorian Diebold2019-05-112-15/+56
| | | | | This is slightly hacky, but maybe more elegant than alternative solutions: We just use a hardcoded Chalk trait ID which we special-case to have no impls.
* Handle where clauses in trait solvingFlorian Diebold2019-05-116-29/+188
|
* Deduplicate impls in impls_for_traitFlorian Diebold2019-05-071-2/+3
| | | | This was duplicating impls in dependencies a lot...
* Add a HirDisplay implementation for TraitRefFlorian Diebold2019-05-071-0/+17
|
* Turn `implements` into a query againFlorian Diebold2019-05-075-8/+13
|
* fill struct fields diagnosticSergey Parilin2019-05-065-11/+133
|
* Merge #1208bors[bot]2019-05-042-5/+42
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1208: [WIP] Goto for Macro's r=matklad a=Lapz Adds goto definition for macros. Currently only works for macros in the current crate ~~otherwise it panics~~. Proper macro resolution needs to be added for it to resolve macros in other crates. Todo - [X] Allow goto from macro calls - [X] Fix panics - [x] Add tests ![Screen Recording 2019-04-25 at 18 00 24](https://user-images.githubusercontent.com/19998186/56754499-1dd01c00-6785-11e9-9e9a-1e36de70cfa3.gif) Co-authored-by: Lenard Pratt <[email protected]>
| * Added local macro gotoLenard Pratt2019-05-042-5/+42
| |
* | 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-042-5/+13
| |
* | 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-0412-146/+669
| | | | | | | | | | - 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
|