@typescript-eslint/scope-manager 8.0.0-alpha.2 → 8.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ScopeManager.js +17 -18
- package/dist/ScopeManager.js.map +1 -1
- package/dist/definition/CatchClauseDefinition.js +2 -2
- package/dist/definition/CatchClauseDefinition.js.map +1 -1
- package/dist/definition/ClassNameDefinition.js +2 -2
- package/dist/definition/ClassNameDefinition.js.map +1 -1
- package/dist/definition/DefinitionBase.js +20 -4
- package/dist/definition/DefinitionBase.js.map +1 -1
- package/dist/definition/FunctionNameDefinition.js +2 -2
- package/dist/definition/FunctionNameDefinition.js.map +1 -1
- package/dist/definition/ImplicitGlobalVariableDefinition.js +2 -2
- package/dist/definition/ImplicitGlobalVariableDefinition.js.map +1 -1
- package/dist/definition/ImportBindingDefinition.js +2 -2
- package/dist/definition/ImportBindingDefinition.js.map +1 -1
- package/dist/definition/ParameterDefinition.js +6 -2
- package/dist/definition/ParameterDefinition.js.map +1 -1
- package/dist/definition/TSEnumMemberDefinition.js +2 -2
- package/dist/definition/TSEnumMemberDefinition.js.map +1 -1
- package/dist/definition/TSEnumNameDefinition.js +2 -2
- package/dist/definition/TSEnumNameDefinition.js.map +1 -1
- package/dist/definition/TSModuleNameDefinition.js +2 -2
- package/dist/definition/TSModuleNameDefinition.js.map +1 -1
- package/dist/definition/TypeDefinition.js +2 -2
- package/dist/definition/TypeDefinition.js.map +1 -1
- package/dist/definition/VariableDefinition.js +2 -2
- package/dist/definition/VariableDefinition.js.map +1 -1
- package/dist/referencer/ClassVisitor.js +31 -44
- package/dist/referencer/ClassVisitor.js.map +1 -1
- package/dist/referencer/ExportVisitor.js +8 -21
- package/dist/referencer/ExportVisitor.js.map +1 -1
- package/dist/referencer/ImportVisitor.js +6 -19
- package/dist/referencer/ImportVisitor.js.map +1 -1
- package/dist/referencer/PatternVisitor.js +17 -30
- package/dist/referencer/PatternVisitor.js.map +1 -1
- package/dist/referencer/Reference.js +47 -34
- package/dist/referencer/Reference.js.map +1 -1
- package/dist/referencer/Referencer.js +15 -27
- package/dist/referencer/Referencer.js.map +1 -1
- package/dist/referencer/TypeVisitor.js +22 -35
- package/dist/referencer/TypeVisitor.js.map +1 -1
- package/dist/referencer/Visitor.js +7 -19
- package/dist/referencer/Visitor.js.map +1 -1
- package/dist/referencer/VisitorBase.js +7 -19
- package/dist/referencer/VisitorBase.js.map +1 -1
- package/dist/scope/FunctionExpressionNameScope.js +1 -0
- package/dist/scope/FunctionExpressionNameScope.js.map +1 -1
- package/dist/scope/GlobalScope.js +2 -0
- package/dist/scope/GlobalScope.js.map +1 -1
- package/dist/scope/ScopeBase.js +132 -122
- package/dist/scope/ScopeBase.js.map +1 -1
- package/dist/variable/ESLintScopeVariable.js +24 -0
- package/dist/variable/ESLintScopeVariable.js.map +1 -1
- package/dist/variable/ImplicitLibVariable.js +8 -0
- package/dist/variable/ImplicitLibVariable.js.map +1 -1
- package/dist/variable/VariableBase.js +35 -26
- package/dist/variable/VariableBase.js.map +1 -1
- package/package.json +5 -4
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _TypeVisitor_referencer;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.TypeVisitor = void 0;
|
|
16
4
|
const types_1 = require("@typescript-eslint/types");
|
|
@@ -18,10 +6,10 @@ const definition_1 = require("../definition");
|
|
|
18
6
|
const scope_1 = require("../scope");
|
|
19
7
|
const Visitor_1 = require("./Visitor");
|
|
20
8
|
class TypeVisitor extends Visitor_1.Visitor {
|
|
9
|
+
#referencer;
|
|
21
10
|
constructor(referencer) {
|
|
22
11
|
super(referencer);
|
|
23
|
-
|
|
24
|
-
__classPrivateFieldSet(this, _TypeVisitor_referencer, referencer, "f");
|
|
12
|
+
this.#referencer = referencer;
|
|
25
13
|
}
|
|
26
14
|
static visit(referencer, node) {
|
|
27
15
|
const typeReferencer = new TypeVisitor(referencer);
|
|
@@ -32,13 +20,13 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
32
20
|
///////////////////
|
|
33
21
|
visitFunctionType(node) {
|
|
34
22
|
// arguments and type parameters can only be referenced from within the function
|
|
35
|
-
|
|
23
|
+
this.#referencer.scopeManager.nestFunctionTypeScope(node);
|
|
36
24
|
this.visit(node.typeParameters);
|
|
37
25
|
for (const param of node.params) {
|
|
38
26
|
let didVisitAnnotation = false;
|
|
39
27
|
this.visitPattern(param, (pattern, info) => {
|
|
40
28
|
// a parameter name creates a value type variable which can be referenced later via typeof arg
|
|
41
|
-
|
|
29
|
+
this.#referencer
|
|
42
30
|
.currentScope()
|
|
43
31
|
.defineIdentifier(pattern, new definition_1.ParameterDefinition(pattern, node, info.rest));
|
|
44
32
|
if (pattern.typeAnnotation) {
|
|
@@ -53,20 +41,20 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
53
41
|
}
|
|
54
42
|
}
|
|
55
43
|
this.visit(node.returnType);
|
|
56
|
-
|
|
44
|
+
this.#referencer.close(node);
|
|
57
45
|
}
|
|
58
46
|
visitPropertyKey(node) {
|
|
59
47
|
if (!node.computed) {
|
|
60
48
|
return;
|
|
61
49
|
}
|
|
62
50
|
// computed members are treated as value references, and TS expects they have a literal type
|
|
63
|
-
|
|
51
|
+
this.#referencer.visit(node.key);
|
|
64
52
|
}
|
|
65
53
|
/////////////////////
|
|
66
54
|
// Visit selectors //
|
|
67
55
|
/////////////////////
|
|
68
56
|
Identifier(node) {
|
|
69
|
-
|
|
57
|
+
this.#referencer.currentScope().referenceType(node);
|
|
70
58
|
}
|
|
71
59
|
MemberExpression(node) {
|
|
72
60
|
this.visit(node.object);
|
|
@@ -78,10 +66,10 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
78
66
|
TSConditionalType(node) {
|
|
79
67
|
// conditional types can define inferred type parameters
|
|
80
68
|
// which are only accessible from inside the conditional parameter
|
|
81
|
-
|
|
69
|
+
this.#referencer.scopeManager.nestConditionalTypeScope(node);
|
|
82
70
|
// type parameters inferred in the condition clause are not accessible within the false branch
|
|
83
71
|
this.visitChildren(node, ['falseType']);
|
|
84
|
-
|
|
72
|
+
this.#referencer.close(node);
|
|
85
73
|
this.visit(node.falseType);
|
|
86
74
|
}
|
|
87
75
|
TSConstructorType(node) {
|
|
@@ -108,7 +96,7 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
108
96
|
}
|
|
109
97
|
TSInferType(node) {
|
|
110
98
|
const typeParameter = node.typeParameter;
|
|
111
|
-
let scope =
|
|
99
|
+
let scope = this.#referencer.currentScope();
|
|
112
100
|
/*
|
|
113
101
|
In cases where there is a sub-type scope created within a conditional type, then the generic should be defined in the
|
|
114
102
|
conditional type's scope, not the child type scope.
|
|
@@ -136,30 +124,30 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
136
124
|
this.visit(typeParameter.constraint);
|
|
137
125
|
}
|
|
138
126
|
TSInterfaceDeclaration(node) {
|
|
139
|
-
|
|
127
|
+
this.#referencer
|
|
140
128
|
.currentScope()
|
|
141
129
|
.defineIdentifier(node.id, new definition_1.TypeDefinition(node.id, node));
|
|
142
130
|
if (node.typeParameters) {
|
|
143
131
|
// type parameters cannot be referenced from outside their current scope
|
|
144
|
-
|
|
132
|
+
this.#referencer.scopeManager.nestTypeScope(node);
|
|
145
133
|
this.visit(node.typeParameters);
|
|
146
134
|
}
|
|
147
135
|
node.extends.forEach(this.visit, this);
|
|
148
136
|
this.visit(node.body);
|
|
149
137
|
if (node.typeParameters) {
|
|
150
|
-
|
|
138
|
+
this.#referencer.close(node);
|
|
151
139
|
}
|
|
152
140
|
}
|
|
153
141
|
TSMappedType(node) {
|
|
154
142
|
// mapped types key can only be referenced within their return value
|
|
155
|
-
|
|
156
|
-
|
|
143
|
+
this.#referencer.scopeManager.nestMappedTypeScope(node);
|
|
144
|
+
this.#referencer
|
|
157
145
|
.currentScope()
|
|
158
146
|
.defineIdentifier(node.key, new definition_1.TypeDefinition(node.key, node));
|
|
159
147
|
this.visit(node.constraint);
|
|
160
148
|
this.visit(node.nameType);
|
|
161
149
|
this.visit(node.typeAnnotation);
|
|
162
|
-
|
|
150
|
+
this.#referencer.close(node);
|
|
163
151
|
}
|
|
164
152
|
TSMethodSignature(node) {
|
|
165
153
|
this.visitPropertyKey(node);
|
|
@@ -178,21 +166,21 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
178
166
|
// we don't visit the right as it a name on the thing, not a name to reference
|
|
179
167
|
}
|
|
180
168
|
TSTypeAliasDeclaration(node) {
|
|
181
|
-
|
|
169
|
+
this.#referencer
|
|
182
170
|
.currentScope()
|
|
183
171
|
.defineIdentifier(node.id, new definition_1.TypeDefinition(node.id, node));
|
|
184
172
|
if (node.typeParameters) {
|
|
185
173
|
// type parameters cannot be referenced from outside their current scope
|
|
186
|
-
|
|
174
|
+
this.#referencer.scopeManager.nestTypeScope(node);
|
|
187
175
|
this.visit(node.typeParameters);
|
|
188
176
|
}
|
|
189
177
|
this.visit(node.typeAnnotation);
|
|
190
178
|
if (node.typeParameters) {
|
|
191
|
-
|
|
179
|
+
this.#referencer.close(node);
|
|
192
180
|
}
|
|
193
181
|
}
|
|
194
182
|
TSTypeParameter(node) {
|
|
195
|
-
|
|
183
|
+
this.#referencer
|
|
196
184
|
.currentScope()
|
|
197
185
|
.defineIdentifier(node.name, new definition_1.TypeDefinition(node.name, node));
|
|
198
186
|
this.visit(node.constraint);
|
|
@@ -200,7 +188,7 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
200
188
|
}
|
|
201
189
|
TSTypePredicate(node) {
|
|
202
190
|
if (node.parameterName.type !== types_1.AST_NODE_TYPES.TSThisType) {
|
|
203
|
-
|
|
191
|
+
this.#referencer.currentScope().referenceValue(node.parameterName);
|
|
204
192
|
}
|
|
205
193
|
this.visit(node.typeAnnotation);
|
|
206
194
|
}
|
|
@@ -221,7 +209,7 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
221
209
|
}
|
|
222
210
|
}
|
|
223
211
|
if (entityName.type === types_1.AST_NODE_TYPES.Identifier) {
|
|
224
|
-
|
|
212
|
+
this.#referencer.currentScope().referenceValue(entityName);
|
|
225
213
|
}
|
|
226
214
|
this.visit(node.typeArguments);
|
|
227
215
|
}
|
|
@@ -231,5 +219,4 @@ class TypeVisitor extends Visitor_1.Visitor {
|
|
|
231
219
|
}
|
|
232
220
|
}
|
|
233
221
|
exports.TypeVisitor = TypeVisitor;
|
|
234
|
-
_TypeVisitor_referencer = new WeakMap();
|
|
235
222
|
//# sourceMappingURL=TypeVisitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeVisitor.js","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TypeVisitor.js","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var _Visitor_options;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.VisitorBase = exports.Visitor = void 0;
|
|
16
4
|
const PatternVisitor_1 = require("./PatternVisitor");
|
|
17
5
|
const VisitorBase_1 = require("./VisitorBase");
|
|
18
6
|
Object.defineProperty(exports, "VisitorBase", { enumerable: true, get: function () { return VisitorBase_1.VisitorBase; } });
|
|
19
7
|
class Visitor extends VisitorBase_1.VisitorBase {
|
|
8
|
+
#options;
|
|
20
9
|
constructor(optionsOrVisitor) {
|
|
21
10
|
super(optionsOrVisitor instanceof Visitor
|
|
22
|
-
?
|
|
11
|
+
? optionsOrVisitor.#options
|
|
23
12
|
: optionsOrVisitor);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
this.#options =
|
|
14
|
+
optionsOrVisitor instanceof Visitor
|
|
15
|
+
? optionsOrVisitor.#options
|
|
16
|
+
: optionsOrVisitor;
|
|
28
17
|
}
|
|
29
18
|
visitPattern(node, callback, options = { processRightHandNodes: false }) {
|
|
30
19
|
// Call the callback at left hand identifier nodes, and Collect right hand nodes.
|
|
31
|
-
const visitor = new PatternVisitor_1.PatternVisitor(
|
|
20
|
+
const visitor = new PatternVisitor_1.PatternVisitor(this.#options, node, callback);
|
|
32
21
|
visitor.visit(node);
|
|
33
22
|
// Process the right hand nodes recursively.
|
|
34
23
|
if (options.processRightHandNodes) {
|
|
@@ -37,5 +26,4 @@ class Visitor extends VisitorBase_1.VisitorBase {
|
|
|
37
26
|
}
|
|
38
27
|
}
|
|
39
28
|
exports.Visitor = Visitor;
|
|
40
|
-
_Visitor_options = new WeakMap();
|
|
41
29
|
//# sourceMappingURL=Visitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../src/referencer/Visitor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../src/referencer/Visitor.ts"],"names":[],"mappings":";;;AAMA,qDAAkD;AAClD,+CAA4D;AAqC1C,4FArCT,yBAAW,OAqCS;AAhC7B,MAAM,OAAQ,SAAQ,yBAAW;IACtB,QAAQ,CAAiB;IAClC,YAAY,gBAA0C;QACpD,KAAK,CACH,gBAAgB,YAAY,OAAO;YACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ;YAC3B,CAAC,CAAC,gBAAgB,CACrB,CAAC;QAEF,IAAI,CAAC,QAAQ;YACX,gBAAgB,YAAY,OAAO;gBACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ;gBAC3B,CAAC,CAAC,gBAAgB,CAAC;IACzB,CAAC;IAES,YAAY,CACpB,IAAmB,EACnB,QAAgC,EAChC,UAA+B,EAAE,qBAAqB,EAAE,KAAK,EAAE;QAE/D,iFAAiF;QACjF,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,4CAA4C;QAC5C,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAClC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AAEQ,0BAAO"}
|
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _VisitorBase_childVisitorKeys, _VisitorBase_visitChildrenEvenIfSelectorExists;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.VisitorBase = void 0;
|
|
16
4
|
const visitor_keys_1 = require("@typescript-eslint/visitor-keys");
|
|
@@ -21,11 +9,12 @@ function isNode(node) {
|
|
|
21
9
|
return isObject(node) && typeof node.type === 'string';
|
|
22
10
|
}
|
|
23
11
|
class VisitorBase {
|
|
12
|
+
#childVisitorKeys;
|
|
13
|
+
#visitChildrenEvenIfSelectorExists;
|
|
24
14
|
constructor(options) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
__classPrivateFieldSet(this, _VisitorBase_visitChildrenEvenIfSelectorExists, options.visitChildrenEvenIfSelectorExists ?? false, "f");
|
|
15
|
+
this.#childVisitorKeys = options.childVisitorKeys ?? visitor_keys_1.visitorKeys;
|
|
16
|
+
this.#visitChildrenEvenIfSelectorExists =
|
|
17
|
+
options.visitChildrenEvenIfSelectorExists ?? false;
|
|
29
18
|
}
|
|
30
19
|
/**
|
|
31
20
|
* Default method for visiting children.
|
|
@@ -37,7 +26,7 @@ class VisitorBase {
|
|
|
37
26
|
return;
|
|
38
27
|
}
|
|
39
28
|
const exclude = new Set([...excludeArr, 'parent']);
|
|
40
|
-
const children =
|
|
29
|
+
const children = this.#childVisitorKeys[node.type] ?? Object.keys(node);
|
|
41
30
|
for (const key of children) {
|
|
42
31
|
if (exclude.has(key)) {
|
|
43
32
|
continue;
|
|
@@ -68,7 +57,7 @@ class VisitorBase {
|
|
|
68
57
|
const visitor = this[node.type];
|
|
69
58
|
if (visitor) {
|
|
70
59
|
visitor.call(this, node);
|
|
71
|
-
if (!
|
|
60
|
+
if (!this.#visitChildrenEvenIfSelectorExists) {
|
|
72
61
|
return;
|
|
73
62
|
}
|
|
74
63
|
}
|
|
@@ -76,5 +65,4 @@ class VisitorBase {
|
|
|
76
65
|
}
|
|
77
66
|
}
|
|
78
67
|
exports.VisitorBase = VisitorBase;
|
|
79
|
-
_VisitorBase_childVisitorKeys = new WeakMap(), _VisitorBase_visitChildrenEvenIfSelectorExists = new WeakMap();
|
|
80
68
|
//# sourceMappingURL=VisitorBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisitorBase.js","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VisitorBase.js","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":";;;AACA,kEAA2E;AAO3E,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;AAChD,CAAC;AACD,SAAS,MAAM,CAAC,IAAa;IAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACzD,CAAC;AAMD,MAAe,WAAW;IACf,iBAAiB,CAAc;IAC/B,kCAAkC,CAAU;IACrD,YAAY,OAAuB;QACjC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAAW,CAAC;QACjE,IAAI,CAAC,kCAAkC;YACrC,OAAO,CAAC,iCAAiC,IAAI,KAAK,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,IAA0B,EAC1B,aAA0B,EAAE;QAE5B,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAa,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAA0B,CAAY,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;oBAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAsC;QAC1C,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAI,IAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC;gBAC7C,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAEQ,kCAAW"}
|
|
@@ -5,6 +5,7 @@ const definition_1 = require("../definition");
|
|
|
5
5
|
const ScopeBase_1 = require("./ScopeBase");
|
|
6
6
|
const ScopeType_1 = require("./ScopeType");
|
|
7
7
|
class FunctionExpressionNameScope extends ScopeBase_1.ScopeBase {
|
|
8
|
+
functionExpressionScope;
|
|
8
9
|
constructor(scopeManager, upperScope, block) {
|
|
9
10
|
super(scopeManager, ScopeType_1.ScopeType.functionExpressionName, upperScope, block, false);
|
|
10
11
|
if (block.id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionExpressionNameScope.js","sourceRoot":"","sources":["../../src/scope/FunctionExpressionNameScope.ts"],"names":[],"mappings":";;;AAEA,8CAAuD;AAGvD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,2BAA4B,SAAQ,qBAIzC;
|
|
1
|
+
{"version":3,"file":"FunctionExpressionNameScope.js","sourceRoot":"","sources":["../../src/scope/FunctionExpressionNameScope.ts"],"names":[],"mappings":";;;AAEA,8CAAuD;AAGvD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,2BAA4B,SAAQ,qBAIzC;IACiB,uBAAuB,CAAO;IAC9C,YACE,YAA0B,EAC1B,UAAgD,EAChD,KAA2C;QAE3C,KAAK,CACH,YAAY,EACZ,qBAAS,CAAC,sBAAsB,EAChC,UAAU,EACV,KAAK,EACL,KAAK,CACN,CAAC;QACF,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,gBAAgB,CACnB,KAAK,CAAC,EAAE,EACR,IAAI,mCAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAC5C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACtC,CAAC;CACF;AAEQ,kEAA2B"}
|
|
@@ -8,6 +8,8 @@ const variable_1 = require("../variable");
|
|
|
8
8
|
const ScopeBase_1 = require("./ScopeBase");
|
|
9
9
|
const ScopeType_1 = require("./ScopeType");
|
|
10
10
|
class GlobalScope extends ScopeBase_1.ScopeBase {
|
|
11
|
+
// note this is accessed in used in the legacy eslint-scope tests, so it can't be true private
|
|
12
|
+
implicit;
|
|
11
13
|
constructor(scopeManager, block) {
|
|
12
14
|
super(scopeManager, ScopeType_1.ScopeType.global, null, block, false);
|
|
13
15
|
this.implicit = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,sCAAmC;AACnC,qGAAkG;AAIlG,0CAAkD;AAElD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,WAAY,SAAQ,qBAOzB;
|
|
1
|
+
{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,sCAAmC;AACnC,qGAAkG;AAIlG,0CAAkD;AAElD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,WAAY,SAAQ,qBAOzB;IACC,8FAA8F;IAC7E,QAAQ,CAQvB;IAEF,YAAY,YAA0B,EAAE,KAA2B;QACjE,KAAK,CAAC,YAAY,EAAE,qBAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,EAAE,IAAI,GAAG,EAAoB;YAChC,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC;IAEM,sBAAsB,CAC3B,IAAY,EACZ,OAAmC;QAEnC,IAAI,CAAC,cAAc,CACjB,IAAI,8BAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAC5C,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,SAAS,EACd,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAA0B;QACrC,IAAA,eAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClE,gEAAgE;gBAChE,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE,CAAC;oBAC5C,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CAAC,GAAG,EACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,IAAI,EACJ,IAAI,mEAAgC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF;AAEQ,kCAAW"}
|