diff options
| author | Marmare314 <49279081+Marmare314@users.noreply.github.com> | 2023-04-06 15:26:09 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-06 15:26:09 +0200 |
| commit | 0f8219b392e96d3cf7d784ee5d474274169d9918 (patch) | |
| tree | 60ce53bb076b61b09184f4f1aefa2fa63ebb3ed2 /src/ide/complete.rs | |
| parent | a73149767c82509b77ccf6996ab0b1125cc9c249 (diff) | |
Unpacking syntax (#532)
Closes #341
Diffstat (limited to 'src/ide/complete.rs')
| -rw-r--r-- | src/ide/complete.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/ide/complete.rs b/src/ide/complete.rs index da9e0725..0c80c8df 100644 --- a/src/ide/complete.rs +++ b/src/ide/complete.rs @@ -1096,7 +1096,9 @@ impl<'a> CompletionContext<'a> { let mut sibling = Some(node.clone()); while let Some(node) = &sibling { if let Some(v) = node.cast::<ast::LetBinding>() { - defined.insert(v.binding().take()); + for ident in v.kind().idents() { + defined.insert(ident.take()); + } } sibling = node.prev_sibling(); } @@ -1105,10 +1107,9 @@ impl<'a> CompletionContext<'a> { if let Some(v) = parent.cast::<ast::ForLoop>() { if node.prev_sibling_kind() != Some(SyntaxKind::In) { let pattern = v.pattern(); - if let Some(key) = pattern.key() { - defined.insert(key.take()); + for ident in pattern.idents() { + defined.insert(ident.take()); } - defined.insert(pattern.value().take()); } } |
