diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-12-20 15:30:36 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2019-12-20 15:30:36 +0000 |
commit | cfc50ff160d0af2ce5cd931c6d41161abfdb2fbd (patch) | |
tree | 35a9048f1f6f7a7e948faf2f337dd7973ab3427b /crates/ra_hir_expand/src/ast_id_map.rs | |
parent | af5e2abe15c2bf182b871e26a680507a51526176 (diff) | |
parent | 4a7e19946a60b4cba6ef9d9916ae0fbec65c74da (diff) |
Merge #2615
2615: Fix wrong path parsing for macro call in pattern position r=edwin0cheng a=edwin0cheng
The parser incorrectly insert a `PathPat` inside `MacroCall` syntax node when parsing inside a pattern position, for example :
```rust
let foo!() = 0;
```
become:
```
MACRO_CALL@[60; 66)
PATH_PAT@[60; 63) <------------- It should not exist
PATH@[60; 63)
PATH_SEGMENT@[60; 63)
NAME_REF@[60; 63)
IDENT@[60; 63) "foo"
EXCL@[63; 64) "!"
TOKEN_TREE@[64; 66)
L_PAREN@[64; 65) "("
R_PAREN@[65; 66) ")"
```
This PR fix this bug and add some test to make sure goto-defintion works for macro inside pattern.
Co-authored-by: Edwin Cheng <[email protected]>
Diffstat (limited to 'crates/ra_hir_expand/src/ast_id_map.rs')
0 files changed, 0 insertions, 0 deletions