@@ -1043,6 +1043,41 @@ export const validation_runes_js = {
1043
1043
if ( node . callee . type === 'ClassExpression' && context . state . scope . function_depth > 0 ) {
1044
1044
w . perf_avoid_inline_class ( node ) ;
1045
1045
}
1046
+ } ,
1047
+ Identifier ( node , { path, state } ) {
1048
+ let i = path . length ;
1049
+ let parent = /** @type {import('estree').Expression } */ ( path [ -- i ] ) ;
1050
+
1051
+ if (
1052
+ Runes . includes ( /** @type {Runes[number] } */ ( node . name ) ) &&
1053
+ is_reference ( node , parent ) &&
1054
+ state . scope . get ( node . name ) === null &&
1055
+ state . scope . get ( node . name . slice ( 1 ) ) === null
1056
+ ) {
1057
+ /** @type {import('estree').Expression } */
1058
+ let current = node ;
1059
+ let name = node . name ;
1060
+
1061
+ while ( parent . type === 'MemberExpression' ) {
1062
+ if ( parent . computed ) e . rune_invalid_computed_property ( parent ) ;
1063
+ name += `.${ /** @type {import('estree').Identifier } */ ( parent . property ) . name } ` ;
1064
+
1065
+ current = parent ;
1066
+ parent = /** @type {import('estree').Expression } */ ( path [ -- i ] ) ;
1067
+
1068
+ if ( ! Runes . includes ( /** @type {Runes[number] } */ ( name ) ) ) {
1069
+ if ( name === '$effect.active' ) {
1070
+ e . rune_renamed ( parent , '$effect.active' , '$effect.tracking' ) ;
1071
+ }
1072
+
1073
+ e . rune_invalid_name ( parent , name ) ;
1074
+ }
1075
+ }
1076
+
1077
+ if ( parent . type !== 'CallExpression' ) {
1078
+ e . rune_missing_parentheses ( current ) ;
1079
+ }
1080
+ }
1046
1081
}
1047
1082
} ;
1048
1083
@@ -1153,41 +1188,6 @@ export const validation_runes = merge(validation, a11y_validators, {
1153
1188
e . import_svelte_internal_forbidden ( node ) ;
1154
1189
}
1155
1190
} ,
1156
- Identifier ( node , { path, state } ) {
1157
- let i = path . length ;
1158
- let parent = /** @type {import('estree').Expression } */ ( path [ -- i ] ) ;
1159
-
1160
- if (
1161
- Runes . includes ( /** @type {Runes[number] } */ ( node . name ) ) &&
1162
- is_reference ( node , parent ) &&
1163
- state . scope . get ( node . name ) === null &&
1164
- state . scope . get ( node . name . slice ( 1 ) ) === null
1165
- ) {
1166
- /** @type {import('estree').Expression } */
1167
- let current = node ;
1168
- let name = node . name ;
1169
-
1170
- while ( parent . type === 'MemberExpression' ) {
1171
- if ( parent . computed ) e . rune_invalid_computed_property ( parent ) ;
1172
- name += `.${ /** @type {import('estree').Identifier } */ ( parent . property ) . name } ` ;
1173
-
1174
- current = parent ;
1175
- parent = /** @type {import('estree').Expression } */ ( path [ -- i ] ) ;
1176
-
1177
- if ( ! Runes . includes ( /** @type {Runes[number] } */ ( name ) ) ) {
1178
- if ( name === '$effect.active' ) {
1179
- e . rune_renamed ( parent , '$effect.active' , '$effect.tracking' ) ;
1180
- }
1181
-
1182
- e . rune_invalid_name ( parent , name ) ;
1183
- }
1184
- }
1185
-
1186
- if ( parent . type !== 'CallExpression' ) {
1187
- e . rune_missing_parentheses ( current ) ;
1188
- }
1189
- }
1190
- } ,
1191
1191
LabeledStatement ( node , { path } ) {
1192
1192
if ( node . label . name !== '$' || path . at ( - 1 ) ?. type !== 'Program' ) return ;
1193
1193
e . legacy_reactive_statement_invalid ( node ) ;
@@ -1368,5 +1368,6 @@ export const validation_runes = merge(validation, a11y_validators, {
1368
1368
// TODO this is a code smell. need to refactor this stuff
1369
1369
ClassBody : validation_runes_js . ClassBody ,
1370
1370
ClassDeclaration : validation_runes_js . ClassDeclaration ,
1371
+ Identifier : validation_runes_js . Identifier ,
1371
1372
NewExpression : validation_runes_js . NewExpression
1372
1373
} ) ;
0 commit comments