diff options
author | Michael Davis | 2022-07-20 02:51:35 +0000 |
---|---|---|
committer | GitHub | 2022-07-20 02:51:35 +0000 |
commit | 9753da6ab79f863e2e8a54874dd45a077e1ffb96 (patch) | |
tree | daba28cc9f289364736bd42e7e4c77744ba9943e /runtime/queries | |
parent | 791bf7e50a19bcf7612788deb7514847089cb976 (diff) |
Fix locals tracking in Rust closures (#3027)
The fix comes from the rewriting of the `closure_parameters` stanza:
it was capturing the entire `closure_parameters` node including
paretheses, whitespace, and commas. Capturing the identifiers within
fixes the tracking.
In order to make sure locals definitions from closure parameters don't
leak out of the body of the closure, though, we should also mark the
closure itself as a locals scope.
Diffstat (limited to 'runtime/queries')
-rw-r--r-- | runtime/queries/rust/locals.scm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/queries/rust/locals.scm b/runtime/queries/rust/locals.scm index 6428f9b4..9c85b84a 100644 --- a/runtime/queries/rust/locals.scm +++ b/runtime/queries/rust/locals.scm @@ -1,6 +1,7 @@ ; Scopes (block) @local.scope +(closure_expression) @local.scope ; Definitions @@ -10,7 +11,7 @@ (let_declaration pattern: (identifier) @local.definition) -(closure_parameters (identifier)) @local.definition +(closure_parameters (identifier) @local.definition) ; References (identifier) @local.reference |