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.
pull/3131/head
Michael Davis 2 years ago committed by GitHub
parent 791bf7e50a
commit 9753da6ab7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,6 +1,7 @@
; Scopes ; Scopes
(block) @local.scope (block) @local.scope
(closure_expression) @local.scope
; Definitions ; Definitions
@ -10,7 +11,7 @@
(let_declaration (let_declaration
pattern: (identifier) @local.definition) pattern: (identifier) @local.definition)
(closure_parameters (identifier)) @local.definition (closure_parameters (identifier) @local.definition)
; References ; References
(identifier) @local.reference (identifier) @local.reference

Loading…
Cancel
Save