Skip to content

Commit 12b03af

Browse files
author
Bastiaan Marinus van de Weerd
committed
Fix deep property access in TypeScript.
1 parent d0b5947 commit 12b03af

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

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

+14-3
Original file line numberDiff line numberDiff line change
@@ -2361,12 +2361,17 @@ if none @is_async {
23612361
}
23622362

23632363
[
2364-
(nested_identifier object:(_)@mod)
2365-
(member_expression object:[(member_expression) (identifier)]@mod)
2364+
(nested_identifier object:(_))
2365+
(member_expression object:(_))
23662366
]@nested {
23672367
node @nested.expr_def
23682368
node @nested.type_def
2369+
}
23692370

2371+
[
2372+
(nested_identifier object:(_)@mod)
2373+
(member_expression object:[(member_expression) (identifier)]@mod)
2374+
]@nested {
23702375
edge @nested.expr_def -> @mod.expr_def
23712376
edge @nested.type_def -> @mod.type_def
23722377
}
@@ -5583,11 +5588,17 @@ if none @is_acc {
55835588
edge @name.type_ref_member -> @name.type_ref
55845589
}
55855590

5591+
[
5592+
(nested_identifier object:(_))
5593+
(member_expression object:(_))
5594+
]@nested {
5595+
node @nested.type_ref
5596+
}
5597+
55865598
[
55875599
(nested_identifier object:(_)@mod)
55885600
(member_expression object:[(member_expression) (identifier)]@mod)
55895601
]@nested {
5590-
node @nested.type_ref
55915602
edge @mod.type_ref -> @nested.type_ref
55925603
}
55935604

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
let x = { y: 42 };
3+
x.y;
4+
// ^ defined: 2
5+
}
6+
7+
{ /// Deep
8+
let x = { y: { z: 42 } };
9+
x.y.z;
10+
// ^ defined: 8
11+
}
12+
13+
{ /// Deep with parenthesized expression
14+
let x = { y: { z: 42 } };
15+
(x).y.z;
16+
// ^ defined: 14
17+
}
18+
19+
{ /// Deep with subscript expression
20+
let x = [{ y: { z: 42 } }];
21+
x[0].y.z;
22+
// ^ defined: 20
23+
}

0 commit comments

Comments
 (0)