Skip to content

Commit ba57851

Browse files
authored
Merge pull request #224 from github/java-comma-for-loop
Update for statement tests
2 parents 388bee0 + b66fe25 commit ba57851

File tree

2 files changed

+49
-14
lines changed

2 files changed

+49
-14
lines changed

languages/tree-sitter-stack-graphs-java/src/stack-graphs.tsg

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -614,29 +614,56 @@ attribute node_symbol = node => symbol = (source-text node), source_n
614614

615615
(local_variable_declaration
616616
type: (_) @type
617-
declarator: (variable_declarator
618-
name: (_) @name
619-
)
617+
declarator: (variable_declarator) @var_decl
620618
) @local_var
621619
{
622-
node def
623-
attr (def) node_definition = @name
624-
edge @local_var.after_scope -> def
625-
edge @local_var.after_scope -> @local_var.before_scope
626-
attr (@local_var.after_scope -> @local_var.before_scope) precedence = 1
620+
edge @var_decl.def__typeof -> @type.type
621+
}
627622

623+
(local_variable_declaration
624+
type: (_) @type) @local_var {
628625
edge @type.lexical_scope -> @local_var.before_scope
626+
}
629627

630-
node def__typeof
631-
attr (def__typeof) pop_symbol = ":"
628+
(variable_declarator value: (_) @value) @this {
629+
edge @value.lexical_scope -> @this.before_scope
630+
}
632631

633-
edge def -> def__typeof
632+
(local_variable_declaration
633+
declarator: (_) @last
634+
. ) @local_var {
635+
edge @local_var.after_scope -> @last.after_scope
636+
attr (@local_var.after_scope -> @last.after_scope) precedence = 1
637+
}
634638

635-
edge def__typeof -> @type.type
639+
(local_variable_declaration
640+
type: (_)
641+
.
642+
declarator: (_) @first) @local_var {
643+
edge @first.before_scope -> @local_var.before_scope
636644
}
637645

638-
(local_variable_declaration declarator: (variable_declarator value: (_) @value)) @this {
639-
edge @value.lexical_scope -> @this.before_scope
646+
(local_variable_declaration
647+
declarator: (_) @left
648+
.
649+
declarator: (_) @right
650+
) @local_var {
651+
edge @right.before_scope -> @left.after_scope
652+
}
653+
654+
(variable_declarator
655+
name: (_) @name) @var_decl {
656+
node @var_decl.before_scope
657+
node @var_decl.after_scope
658+
node @var_decl.def__typeof
659+
attr (@var_decl.def__typeof) pop_symbol = ":"
660+
661+
node def
662+
attr (def) node_definition = @name
663+
edge @var_decl.after_scope -> def
664+
edge @var_decl.after_scope -> @var_decl.before_scope
665+
666+
edge def -> @var_decl.def__typeof
640667
}
641668

642669
(return_statement (_) @expr) @stmt

languages/tree-sitter-stack-graphs-java/test/statement/for_statement.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,12 @@ void g() {
1717
//^ defined: 12
1818
}
1919
}
20+
21+
void h() {
22+
int k = 5;
23+
for (int i = 0, j = i; i < 123; k++) {
24+
// ^ defined: 23
25+
// ^ defined: 22
26+
}
27+
}
2028
}

0 commit comments

Comments
 (0)