aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* profile type inferenceAleksey Kladov2019-05-214-3/+6
|
* profile implements queryAleksey Kladov2019-05-211-0/+2
|
* fix odrer-of-iteration bug in testsAleksey Kladov2019-05-212-7/+15
|
* sort hash maps for testsAleksey Kladov2019-05-215-212/+196
|
* Merge #1296bors[bot]2019-05-212-2/+2
|\ | | | | | | | | | | | | | | 1296: :arrow_up: insta r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * :arrow_up: instaAleksey Kladov2019-05-212-2/+2
| |
* | add _query to query functionsAleksey Kladov2019-05-212-6/+6
|/
* add is_union to structs ASTAleksey Kladov2019-05-201-1/+17
|
* remove minor code duplicationAleksey Kladov2019-05-202-20/+16
|
* Merge #1289bors[bot]2019-05-201-38/+39
|\ | | | | | | | | | | | | | | 1289: simplify r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * simplifyAleksey Kladov2019-05-201-38/+39
| |
* | Merge #1287bors[bot]2019-05-202-1/+19
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 1287: Add support of matching literal in mbe r=matklad a=edwin0cheng This PR adds support of matching literal in mbe , which used in our `T` macro : ```rust macro_rules! foo { ('(') => { fn foo() {} } } ``` Co-authored-by: Edwin Cheng <[email protected]>
| * Fix match literalEdwin Cheng2019-05-202-1/+19
| |
* | output the progress for realAleksey Kladov2019-05-201-1/+4
|/
* Merge #1286bors[bot]2019-05-205-17/+86
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1286: Add infer for generic default type r=flodiebold a=edwin0cheng This PR add infer support for generic default type: ``` struct Gen<T=u32> { val: T } ``` * add the (unresolved) defaults from the definition to GenericParams * add a query generic_defaults that resolves those defaults to types and returns a Substs * add the missing type in `substs_from_path_segment` * add tests based on the idea in this [comment](https://github.com/rust-analyzer/rust-analyzer/issues/1099#issuecomment-484206279) Co-authored-by: Edwin Cheng <[email protected]>
| * Use normal iteration instead of walk_mutEdwin Cheng2019-05-201-8/+5
| |
| * Add infer for generic default typeEdwin Cheng2019-05-194-15/+80
| |
| * Add default type to GenericParamEdwin Cheng2019-05-191-3/+10
| |
* | Assert that DB is unwind-safe, instead of provingAleksey Kladov2019-05-181-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately, that `: RefUnwindSafe` bound gives rustc a hard time, so let's remove it for know. See * https://github.com/rust-analyzer/rust-analyzer/issues/1283 * https://github.com/rust-lang/rust/pull/60444 * https://github.com/rust-lang/rust/issues/58291 closes #1283
* | :arrow_up: text_unitAleksey Kladov2019-05-152-40/+27
| |
* | apply T! macro where it is possibleSergey Parilin2019-05-1538-623/+619
| |
* | fixed macro for bracketsSergey Parilin2019-05-152-3/+3
|/
* show current function in analysis-stats progress barAleksey Kladov2019-05-142-3/+8
|
* allow expanding expressionsAleksey Kladov2019-05-142-7/+8
|
* expand to syntax nodeAleksey Kladov2019-05-146-26/+33
|
* store macro kind in HirFileIdAleksey Kladov2019-05-144-21/+38
|
* Merge #1272bors[bot]2019-05-141-0/+46
|\ | | | | | | | | | | | | | | | | | | 1272: Error out non single root token tree conversion r=matklad a=edwin0cheng This PR add a check to prevent non single root token tree conversion between token trees and syntax tree. It should prevent the assert produced in #1267. Co-authored-by: Edwin Cheng <[email protected]>
| * Error out non single root token tree conversionEdwin Cheng2019-05-141-0/+46
| |
* | Merge #1271bors[bot]2019-05-1311-24/+29
|\ \ | | | | | | | | | | | | | | | | | | | | | 1271: make AstId untyped r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | make AstId untypedAleksey Kladov2019-05-1311-24/+29
| | |
* | | 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.
* | Merge #1257bors[bot]2019-05-136-1/+114
|\ \ | |/ |/| | | | | | | | | | | 1257: Implemented tkn! macro for syntax kinds r=matklad a=pasa Implementation of #1248 Co-authored-by: Sergey Parilin <[email protected]>
| * Implemented T! macro for syntax kindsSergey Parilin2019-05-136-1/+114
| |
* | simplifyAleksey Kladov2019-05-125-34/+12
| |
* | 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
| |
* | Merge #1265bors[bot]2019-05-122-34/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | 1265: drop obsolete render test subcommand r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | drop obsolete render test subcommandAleksey Kladov2019-05-121-30/+1
| | |
| * | allow to specify path in analysis-statsAleksey Kladov2019-05-122-4/+6
| | |
* | | 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-115-7/+47
| | | | | | | | | | | | | | | 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
|/ /
* | switch to once_cell from lazy_staticAleksey Kladov2019-05-074-20/+17
| |
* | Merge #1251bors[bot]2019-05-077-14/+45
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1251: Chalk integration improvements r=matklad a=flodiebold A few improvements that came up while working on where clause support: - turn `implements` into a query again to improve performance - allow skipping to a specific function with `analysis-stats`, e.g. `ra_cli analysis-stats --only world_symbols` - deduplicate impls in impls_for_trait -- previously many impls e.g. from std where repeated many times, this should help performance as well... - add a `HirDisplay` implementation for TraitRef (not used here anywhere, but useful for debugging) Co-authored-by: Florian Diebold <[email protected]>
| * | Deduplicate impls in impls_for_traitFlorian Diebold2019-05-071-2/+3
| | | | | | | | | | | | This was duplicating impls in dependencies a lot...