@@ -627,16 +627,6 @@ attribute node_symbol = node => symbol = (source-text node), source_n
627627 (import_statement "type"?@is_type (import_clause (named_imports (import_specifier name:(_)@name))@clause))
628628] {
629629if none @is_type {
630- node @name.expr_def
631- node @name.expr_def__ns
632- node @name.expr_ref
633- node @name.expr_ref__ns
634-
635- ; expr reference
636- attr (@name.expr_ref) node_reference = @name
637- edge @name.expr_ref -> @name.expr_ref__ns
638- ;
639- attr (@name.expr_ref__ns) push_symbol = "%E"
640630 edge @name.expr_ref__ns -> @clause.lexical_scope
641631}
642632}
@@ -646,6 +636,9 @@ if none @is_type {
646636 (import_statement "type"?@is_type (import_clause (named_imports (import_specifier name:(_)@name !alias))@clause))
647637] {
648638if none @is_type {
639+ node @name.expr_def
640+ node @name.expr_def__ns
641+
649642 ; expr definition
650643 edge @clause.defs -> @name.expr_def__ns ; FIXME defs, lexical_defs?
651644 ;
@@ -664,7 +657,6 @@ if none @is_type {
664657if none @is_type {
665658 node @alias.expr_def
666659 node @alias.expr_def__ns
667- node @alias.expr_ref
668660
669661 ; expr definition
670662 edge @clause.defs -> @alias.expr_def__ns
@@ -2340,6 +2332,12 @@ if none @is_async {
23402332 (ambient_declaration (module name:(string) @name))
23412333 ; X._
23422334 (nested_identifier object:(identifier)@name)
2335+ ; _.X._
2336+ (member_expression object:(identifier)@name)
2337+ ; _.X
2338+ (nested_identifier property:(_)@name)
2339+ ; _._.X
2340+ (member_expression property:(_)@name)
23432341] {
23442342 node @name.expr_def
23452343 node expr_def_typeof
@@ -2362,20 +2360,29 @@ if none @is_async {
23622360 edge @name.type_def -> @name.type_def_member
23632361}
23642362
2365- (nested_identifier object:(_)@mod) @nested {
2363+ [
2364+ (nested_identifier object:(_)@mod)
2365+ (member_expression object:[(member_expression) (identifier)]@mod)
2366+ ]@nested {
23662367 node @nested.expr_def
23672368 node @nested.type_def
23682369
23692370 edge @nested.expr_def -> @mod.expr_def
23702371 edge @nested.type_def -> @mod.type_def
23712372}
23722373
2373- (nested_identifier object:(_)@mod property:(_)@name) {
2374+ [
2375+ (nested_identifier object:(_)@mod property:(_)@name)
2376+ (member_expression object:[(member_expression) (identifier)]@mod property:(_)@name)
2377+ ] {
23742378 edge @mod.expr_def_member -> @name.expr_def
23752379 edge @mod.type_def_member -> @name.type_def
23762380}
23772381
2378- (nested_identifier property:(_)@name)@nested {
2382+ [
2383+ (nested_identifier property:(_)@name)
2384+ (member_expression property:(_)@name)
2385+ ]@nested {
23792386 node @nested.expr_def_member
23802387 node @nested.type_def_member
23812388
@@ -2782,105 +2789,13 @@ if none @is_async {
27822789
27832790; x;
27842791
2785- [
2786- (primary_expression/identifier)@name
2787- ; FIXME expansion of _lhs_expression/identifier and _augmented_assignment_lhs
2788- (for_in_statement ["var" "let" "const"]?@is_def left:(identifier)@name)
2789- (assignment_expression left:(identifier)@name)
2790- (augmented_assignment_expression left:(identifier)@name)
2791- (asserts (identifier)@name)
2792- (type_predicate name:(identifier)@name)
2793- ; FIXME type_query has its own restricted expression production
2794- ; we need to do this for every (identifier) inside a type query
2795- ; this cannot be expressed, so we manually unroll three levels here
2796- (type_query (identifier)@name)
2797- (type_query (member_expression object:(identifier)@name))
2798- (type_query (member_expression object:(member_expression object:(identifier)@name)))
2799- (type_query (member_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2800- (type_query (subscript_expression object:(identifier)@name))
2801- (type_query (subscript_expression object:(member_expression object:(identifier)@name)))
2802- (type_query (subscript_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2803- (type_query (call_expression function:(identifier)@name))
2804- (type_query (call_expression function:(member_expression object:(identifier)@name)))
2805- (type_query (call_expression function:(member_expression object:(member_expression object:(identifier)@name))))
2806- (type_query (call_expression function:(member_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2807- (type_query (call_expression function:(subscript_expression object:(identifier)@name)))
2808- (type_query (call_expression function:(subscript_expression object:(member_expression object:(identifier)@name))))
2809- (type_query (call_expression function:(subscript_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2810- ; FIXME decorator has its own restricted expression production
2811- ; we need to do this for every (identifier) inside a decorator
2812- ; this cannot be expressed, so we manually unroll three levels here
2813- (decorator (identifier)@name)
2814- (decorator (member_expression object:(identifier)@name))
2815- (decorator (member_expression object:(member_expression object:(identifier)@name)))
2816- (decorator (member_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2817- (decorator (call_expression function:(identifier)@name))
2818- (decorator (call_expression function:(member_expression object:(identifier)@name)))
2819- (decorator (call_expression function:(member_expression object:(member_expression object:(identifier)@name))))
2820- (decorator (call_expression function:(member_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2821- ; #dialect tsx
2822- (nested_identifier object:(_)@name)
2823- (nested_type_identifier module:(nested_identifier)@name)
2824- (internal_module name:(_)@name)
2825- (jsx_opening_element name: (_)@name)
2826- (jsx_closing_element name: (_)@name)
2827- (jsx_self_closing_element name: (_)@name)
2828- ; #end
2829- ] {
2830- if none @is_def {
2792+ (identifier)@name {
28312793 node @name.cotype
28322794 node @name.lexical_defs
28332795 node @name.lexical_scope
28342796 node @name.type
28352797 node @name.var_defs
2836- }
2837- }
28382798
2839- [
2840- (primary_expression/identifier)@name
2841- (decorator (identifier)@name)
2842- ; FIXME expansion of _lhs_expression/identifier and _augmented_assignment_lhs
2843- ; we need to do this for every (identifier) inside a type query
2844- ; this cannot be expressed, so we manually unroll three levels here
2845- (for_in_statement ["var" "let" "const"]?@is_def left:(identifier)@name)
2846- (assignment_expression left:(identifier)@name)
2847- (augmented_assignment_expression left:(identifier)@name)
2848- (asserts (identifier)@name)
2849- (type_predicate name:(identifier)@name)
2850- ; FIXME type_query has its own restricted expression production
2851- (type_query (identifier)@name)
2852- (type_query (member_expression object:(identifier)@name))
2853- (type_query (member_expression object:(member_expression object:(identifier)@name)))
2854- (type_query (member_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2855- (type_query (subscript_expression object:(identifier)@name))
2856- (type_query (subscript_expression object:(member_expression object:(identifier)@name)))
2857- (type_query (subscript_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2858- (type_query (call_expression function:(identifier)@name))
2859- (type_query (call_expression function:(member_expression object:(identifier)@name)))
2860- (type_query (call_expression function:(member_expression object:(member_expression object:(identifier)@name))))
2861- (type_query (call_expression function:(member_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2862- (type_query (call_expression function:(subscript_expression object:(identifier)@name)))
2863- (type_query (call_expression function:(subscript_expression object:(member_expression object:(identifier)@name))))
2864- (type_query (call_expression function:(subscript_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2865- ; FIXME decorator has its own restricted expression production
2866- ; we need to do this for every (identifier) inside a decorator
2867- ; this cannot be expressed, so we manually unroll three levels here
2868- (decorator (identifier)@name)
2869- (decorator (member_expression object:(identifier)@name))
2870- (decorator (member_expression object:(member_expression object:(identifier)@name)))
2871- (decorator (member_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2872- (decorator (call_expression function:(identifier)@name))
2873- (decorator (call_expression function:(member_expression object:(identifier)@name)))
2874- (decorator (call_expression function:(member_expression object:(member_expression object:(identifier)@name))))
2875- (decorator (call_expression function:(member_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2876- ; #dialect tsx
2877- ; (nested_identifier object:(identifier)@name property:(identifier)) ; to pick up foo in JSX: <foo.bar.baz /> ; FIXME never matched
2878- (jsx_opening_element name: (identifier)@name)
2879- (jsx_closing_element name: (identifier)@name)
2880- (jsx_self_closing_element name: (identifier)@name)
2881- ; #end
2882- ] {
2883- if none @is_def {
28842799 node @name.expr_ref
28852800 node @name.expr_ref__ns
28862801 node @name.expr_ref__typeof
@@ -2898,7 +2813,67 @@ if none @is_def {
28982813 attr (@name.expr_ref__typeof) push_symbol = ":"
28992814 edge @name.expr_ref__typeof -> @name.expr_ref
29002815}
2901- }
2816+
2817+ ; [
2818+ ; (primary_expression/identifier)@name
2819+ ; ; FIXME expansion of _lhs_expression/identifier and _augmented_assignment_lhs
2820+ ; ; we need to do this for every (identifier) inside a type query
2821+ ; ; this cannot be expressed, so we manually unroll three levels here
2822+ ; (for_in_statement ["var" "let" "const"]?@is_def left:(identifier)@name)
2823+ ; (assignment_expression left:(identifier)@name)
2824+ ; (augmented_assignment_expression left:(identifier)@name)
2825+ ; (asserts (identifier)@name)
2826+ ; (type_predicate name:(identifier)@name)
2827+ ; ; FIXME type_query has its own restricted expression production
2828+ ; ; we need to do this for every (identifier) inside a type query
2829+ ; ; this cannot be expressed, so we manually unroll three levels here
2830+ ; (type_query (identifier)@name)
2831+ ; (type_query (member_expression object:(identifier)@name))
2832+ ; (type_query (member_expression object:(member_expression object:(identifier)@name)))
2833+ ; (type_query (member_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2834+ ; (type_query (subscript_expression object:(identifier)@name))
2835+ ; (type_query (subscript_expression object:(member_expression object:(identifier)@name)))
2836+ ; (type_query (subscript_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2837+ ; (type_query (call_expression function:(identifier)@name))
2838+ ; (type_query (call_expression function:(member_expression object:(identifier)@name)))
2839+ ; (type_query (call_expression function:(member_expression object:(member_expression object:(identifier)@name))))
2840+ ; (type_query (call_expression function:(member_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2841+ ; (type_query (call_expression function:(subscript_expression object:(identifier)@name)))
2842+ ; (type_query (call_expression function:(subscript_expression object:(member_expression object:(identifier)@name))))
2843+ ; (type_query (call_expression function:(subscript_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2844+ ; ; FIXME decorator has its own restricted expression production
2845+ ; ; we need to do this for every (identifier) inside a decorator
2846+ ; ; this cannot be expressed, so we manually unroll three levels here
2847+ ; (decorator (identifier)@name)
2848+ ; (decorator (member_expression object:(identifier)@name))
2849+ ; (decorator (member_expression object:(member_expression object:(identifier)@name)))
2850+ ; (decorator (member_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2851+ ; (decorator (call_expression function:(identifier)@name))
2852+ ; (decorator (call_expression function:(member_expression object:(identifier)@name)))
2853+ ; (decorator (call_expression function:(member_expression object:(member_expression object:(identifier)@name))))
2854+ ; (decorator (call_expression function:(member_expression object:(member_expression object:(member_expression object:(identifier)@name)))))
2855+ ; ; FIXME nested_identifier has its own restricted expression production
2856+ ; ; we need to do this for every (identifier) inside a decorator
2857+ ; ; this cannot be expressed, so we manually unroll three levels here
2858+ ; (nested_identifier object:(identifier)@name)
2859+ ; (nested_identifier object:(member_expression object:(identifier)@name))
2860+ ; (nested_identifier object:(member_expression object:(member_expression object:(identifier)@name)))
2861+ ; (nested_identifier object:(member_expression object:(member_expression object:(member_expression object:(identifier)@name))))
2862+ ; ; #dialect tsx
2863+ ; (jsx_opening_element name: (identifier)@name)
2864+ ; (jsx_closing_element name: (identifier)@name)
2865+ ; (jsx_self_closing_element name: (identifier)@name)
2866+ ; ; #end
2867+ ; ] {
2868+ ; if none @is_def {
2869+ ; ; node @name.cotype
2870+ ; ; node @name.lexical_defs
2871+ ; ; node @name.lexical_scope
2872+ ; ; node @name.type
2873+ ; ; node @name.var_defs
2874+
2875+ ; }
2876+ ; }
29022877
29032878
29042879
@@ -3551,12 +3526,10 @@ if none @is_async {
35513526; (member_expression (identifier) (property_identifier))
35523527; (subscript_expression (identifier) (string))
35533528
3554- [
3555- (member_expression object:(_)@object property:(_)@prop)@member_expr
3556- ; #dialect tsx
3557- ; (nested_identifier object:(_)@object property:(identifier)@prop)@member_expr ; FIXME this never matched anything!
3558- ; #end
3559- ] {
3529+ (member_expression
3530+ object:(_)@object
3531+ property:(_)@prop
3532+ )@member_expr {
35603533 node @member_expr.member
35613534 node @prop.expr_ref
35623535 node @prop.expr_ref__typeof
@@ -3578,7 +3551,6 @@ if none @is_async {
35783551 edge @prop.expr_ref__typeof -> @prop.expr_ref
35793552}
35803553
3581-
35823554(subscript_expression
35833555 object: (_)@object
35843556 index: (_)@index
@@ -4158,16 +4130,6 @@ if none @is_async {
41584130 node @pat.defs
41594131}
41604132
4161- [ ; NOTE these are the ones not also variables
4162- (for_in_statement ["var" "let" "const"] left:(identifier)@name)
4163- (variable_declarator name:(identifier)@name)
4164- (pattern/identifier)@name
4165- (rest_pattern (identifier)@name)
4166- ] {
4167- node @name.cotype
4168- node @name.lexical_scope
4169- }
4170-
41714133[
41724134 (for_in_statement ["var" "let" "const"] left:(identifier)@name)
41734135 (variable_declarator name:(identifier)@name)
@@ -5603,8 +5565,14 @@ if none @is_acc {
56035565[
56045566 ; X
56055567 (nested_type_identifier module:(identifier)@name)
5606- ; X._, _.X._
5568+ ; X._
56075569 (nested_identifier object:(identifier)@name)
5570+ ; _.X._
5571+ (member_expression object:(identifier)@name)
5572+ ; _.X
5573+ (nested_identifier property:(_)@name)
5574+ ; _._.X
5575+ (member_expression property:(_)@name)
56085576] {
56095577 node @name.type_ref
56105578 attr (@name.type_ref) node_reference = @name
@@ -5615,16 +5583,25 @@ if none @is_acc {
56155583 edge @name.type_ref_member -> @name.type_ref
56165584}
56175585
5618- (nested_identifier object:(_)@mod) @nested {
5586+ [
5587+ (nested_identifier object:(_)@mod)
5588+ (member_expression object:[(member_expression) (identifier)]@mod)
5589+ ]@nested {
56195590 node @nested.type_ref
56205591 edge @mod.type_ref -> @nested.type_ref
56215592}
56225593
5623- (nested_identifier . (_)@mod . (_)@name .) {
5594+ [
5595+ (nested_identifier object:(_)@mod property:(_)@name)
5596+ (member_expression object:[(member_expression) (identifier)]@mod property:(_)@name)
5597+ ] {
56245598 edge @name.type_ref -> @mod.type_ref_member
56255599}
56265600
5627- (nested_identifier property:(_)@name) @nested {
5601+ [
5602+ (nested_identifier property:(_)@name)
5603+ (member_expression property:(_)@name)
5604+ ]@nested {
56285605 node @nested.type_ref_member
56295606 edge @nested.type_ref_member -> @name.type_ref_member
56305607}
0 commit comments