| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1220: Add macro pat parsing r=matklad a=edwin0cheng
This PR add support to parsing macro call in pattern , e.g :
```
let m!(x) = 0;
```
Co-authored-by: Edwin Cheng <[email protected]>
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
1221: Use correct FileId when expanding macros in expressions r=matklad a=matklad
Co-authored-by: Aleksey Kladov <[email protected]>
|
|/ / |
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| | |
1217: Sidestep two-phase borrow violation r=matklad a=pnkfelix
Sidestep two-phase borrow violation signaled by mutable_borrow_reservation_conflict.
See rust-lang/rust#59159 for further information/discussion.
Co-authored-by: Felix S. Klock II <[email protected]>
|
|/
|
|
|
|
| |
mutable_borrow_reservation_conflict.
See rust-lang/rust#59159 for further information/discussion.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1213: Make lexer produce only single character puncts r=matklad a=edwin0cheng
As discussed in Zulip, this PR change `lexer` to produce only single char punct.
* Remove producing `DOTDOTDOT, DOTDOTEQ, DOTDOT, COLONCOLON, EQEQ, FAT_ARROW, NEQ, THIN_ARROW` in lexer.
* Add required code in parser to make sure everythings works fine.
* Change some tests (Mainly because the `ast::token_tree` is different)
Note: i think the use of `COLON` in rust is too overloaded :)
Co-authored-by: Edwin Cheng <[email protected]>
|
| | |
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1215: Fix hover on the beginning of a nested expression r=matklad a=flodiebold
E.g. in
```
let foo = 1u32;
if true {
<|>foo;
}
```
the hover shows `()`, the type of the whole if expression, instead of the more
sensible `u32`. The reason for this was that the search for an expression was
slightly left-biased: When on the edge between two tokens, it first looked at
all ancestors of the left token and then of the right token. Instead merge the
ancestors in ascending order, so that we get the smaller of the two possible
expressions.
This might seem rather inconsequential, but emacs-lsp's sideline requests hover for the beginning of each word in the current line, so it tends to hit this a lot :smile: Actually, as I think about this now, another solution might be just making hover right-biased, since if I'm hovering a certain character I really mean that character and not the one to its left...
Co-authored-by: Florian Diebold <[email protected]>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
E.g. in
```
let foo = 1u32;
if true {
<|>foo;
}
```
the hover shows `()`, the type of the whole if expression, instead of the more
sensible `u32`. The reason for this was that the search for an expression was
slightly left-biased: When on the edge between two tokens, it first looked at
all ancestors of the left token and then of the right token. Instead merge the
ancestors in ascending order, so that we get the smaller of the two possible
expressions.
|
|\
| |
| |
| |
| |
| |
| |
| | |
1212: Clippy cleanups r=matklad a=kjeremy
Co-authored-by: kjeremy <[email protected]>
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1209: Bugs fixes And Improvements of MBE r=matklad a=edwin0cheng
This PR fixed / improve followings things:
* Add `token` `$repeat` separator support: Previously $repeat only support single punct separator.
* Fixed a bug which expand infinite pattern, see `test_match_group_in_group`
* Correctly handle +,*,? case of $repeat patterns
* Increase the limit of $repeat patterns (128 => 65536), personally i think we could remove this limit as we seem to fix all major loop bugs
* **Re-enable tt matcher**
* Better meta item parsing.
* Add related tests and add some real world test cases.
* Add more debug information.
Co-authored-by: Edwin Cheng <[email protected]>
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
1207: drop empty file r=matklad a=matklad
Co-authored-by: Aleksey Kladov <[email protected]>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
1203: Go to Type Definition: See through references r=kjeremy a=kjeremy
Co-authored-by: kjeremy <[email protected]>
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
1202: Update some deps r=matklad a=kjeremy
Co-authored-by: kjeremy <[email protected]>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
1200: Allows searching for case-equivalent symbols (fixes #1151) r=matklad a=jrvidal
I couldn't find a nice, functional way of calculating the ranges in one pass so I resorted to a plain old `for` loop.
Co-authored-by: Roberto Vidal <[email protected]>
|
| | |
|
| | |
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
1201: Goto Type Definition for ADTs r=matklad a=kjeremy
Very basic go to type definition
Co-authored-by: kjeremy <[email protected]>
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
1147: Handle macros in type checking / HIR r=matklad a=Lapz
An other attempt at #1102. I will need to flatten the nested if statements and im also not sure if the way that i get the resolver and module will always work
Co-authored-by: Lenard Pratt <[email protected]>
|
| |
| |
| |
| |
| |
| | |
changed to manual expansion
fix for nested macros
|
| | |
|
| | |
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
1197: Add `...` parsing for fn pointer type r=matklad a=edwin0cheng
This PR should fix #1188
Co-authored-by: Edwin Cheng <[email protected]>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1195: Add cached for SubtreeSource r=matklad a=edwin0cheng
I just did some simple profiling, the most slowest part of the mbe related code is the tree traversal, so i add a very simple cache in here is the result:
``` target\release\ra_cli analysis-stats```
*Before
```
Database loaded, 21 roots, 1.2731481s
Crates in this dir: 26
Total modules found: 282
Total declarations: 4783
Total functions: 3126
Total expressions: 59452
Expressions of unknown type: 8999 (15%)
Expressions of partially unknown type: 2672 (4%)
Analysis: 17.9596334s
```
```
*After
Database loaded, 21 roots, 1.7425901s
Crates in this dir: 26
Total modules found: 282
Total declarations: 4783
Total functions: 3126
Total expressions: 59452
Expressions of unknown type: 8999 (15%)
Expressions of partially unknown type: 2672 (4%)
Analysis: 13.4007118s
```
Save 4 seconds :)
Co-authored-by: Edwin Cheng <[email protected]>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
1194: Pr 1190 r=matklad a=matklad
Co-authored-by: Andrea Pretto <[email protected]>
Co-authored-by: Aleksey Kladov <[email protected]>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We really shouldn't be looking at the identifier at point. Instead,
all filtering and sorting should be implemented at the layer above.
This layer should probably be home for auto-import completions as
well, but, since that is not yet implemented, let's just stick this
into complete_scope.
|
| |
| |
| |
| |
| | |
auto-import is purely an IDE concern, so it should be done outside of
HIR
|
| |
| |
| |
| |
| |
| | |
(fix rebase mess)
Please enter the commit message for your changes. Lines starting
|
| |
| |
| |
| |
| |
| | |
importable name.
Changes complete_scope to support that.
|