@openrewrite/rewrite 8.91.2 → 8.91.3
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/execution.d.ts +8 -0
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +31 -0
- package/dist/execution.js.map +1 -1
- package/dist/javascript/add-import.d.ts +64 -9
- package/dist/javascript/add-import.d.ts.map +1 -1
- package/dist/javascript/add-import.js +398 -71
- package/dist/javascript/add-import.js.map +1 -1
- package/dist/javascript/amd.d.ts +11 -1
- package/dist/javascript/amd.d.ts.map +1 -1
- package/dist/javascript/amd.js +43 -9
- package/dist/javascript/amd.js.map +1 -1
- package/dist/javascript/binding.d.ts +10 -2
- package/dist/javascript/binding.d.ts.map +1 -1
- package/dist/javascript/binding.js +44 -71
- package/dist/javascript/binding.js.map +1 -1
- package/dist/javascript/comparator.d.ts +2 -0
- package/dist/javascript/comparator.d.ts.map +1 -1
- package/dist/javascript/comparator.js +5 -1
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/format/format.d.ts +5 -2
- package/dist/javascript/format/format.d.ts.map +1 -1
- package/dist/javascript/format/format.js +51 -11
- package/dist/javascript/format/format.js.map +1 -1
- package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts +19 -0
- package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts.map +1 -1
- package/dist/javascript/format/minimum-viable-spacing-visitor.js +180 -7
- package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -1
- package/dist/javascript/format/prettier-format.d.ts +2 -1
- package/dist/javascript/format/prettier-format.d.ts.map +1 -1
- package/dist/javascript/format/prettier-format.js +33 -23
- package/dist/javascript/format/prettier-format.js.map +1 -1
- package/dist/javascript/index.d.ts +3 -3
- package/dist/javascript/index.d.ts.map +1 -1
- package/dist/javascript/index.js +21 -1
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/parser-utils.d.ts.map +1 -1
- package/dist/javascript/parser-utils.js +5 -9
- package/dist/javascript/parser-utils.js.map +1 -1
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +48 -3
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/print.d.ts +1 -0
- package/dist/javascript/print.d.ts.map +1 -1
- package/dist/javascript/print.js +9 -0
- package/dist/javascript/print.js.map +1 -1
- package/dist/javascript/recipes/change-import.d.ts +6 -3
- package/dist/javascript/recipes/change-import.d.ts.map +1 -1
- package/dist/javascript/recipes/change-import.js +17 -277
- package/dist/javascript/recipes/change-import.js.map +1 -1
- package/dist/javascript/rpc.js +2 -0
- package/dist/javascript/rpc.js.map +1 -1
- package/dist/javascript/scope.d.ts +40 -7
- package/dist/javascript/scope.d.ts.map +1 -1
- package/dist/javascript/scope.js +182 -30
- package/dist/javascript/scope.js.map +1 -1
- package/dist/javascript/templating/bindings.js +2 -20
- package/dist/javascript/templating/bindings.js.map +1 -1
- package/dist/javascript/templating/comparator.d.ts +2 -0
- package/dist/javascript/templating/comparator.d.ts.map +1 -1
- package/dist/javascript/templating/comparator.js +25 -0
- package/dist/javascript/templating/comparator.js.map +1 -1
- package/dist/javascript/templating/engine.d.ts +5 -0
- package/dist/javascript/templating/engine.d.ts.map +1 -1
- package/dist/javascript/templating/engine.js +30 -12
- package/dist/javascript/templating/engine.js.map +1 -1
- package/dist/javascript/templating/template.d.ts.map +1 -1
- package/dist/javascript/templating/template.js +6 -0
- package/dist/javascript/templating/template.js.map +1 -1
- package/dist/javascript/templating/types.d.ts +5 -0
- package/dist/javascript/templating/types.d.ts.map +1 -1
- package/dist/javascript/tree.d.ts +1 -0
- package/dist/javascript/tree.d.ts.map +1 -1
- package/dist/javascript/tree.js.map +1 -1
- package/dist/javascript/type-mapping.d.ts.map +1 -1
- package/dist/javascript/type-mapping.js +14 -0
- package/dist/javascript/type-mapping.js.map +1 -1
- package/dist/javascript/visitor.d.ts.map +1 -1
- package/dist/javascript/visitor.js +1 -0
- package/dist/javascript/visitor.js.map +1 -1
- package/dist/parser.d.ts +6 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +23 -1
- package/dist/parser.js.map +1 -1
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +5 -2
- package/dist/print.js.map +1 -1
- package/dist/rewrite-javascript-version.txt +1 -1
- package/dist/rpc/request/parse-project.d.ts +11 -1
- package/dist/rpc/request/parse-project.d.ts.map +1 -1
- package/dist/rpc/request/parse-project.js +7 -2
- package/dist/rpc/request/parse-project.js.map +1 -1
- package/dist/rpc/request/parse.d.ts +13 -1
- package/dist/rpc/request/parse.d.ts.map +1 -1
- package/dist/rpc/request/parse.js +8 -2
- package/dist/rpc/request/parse.js.map +1 -1
- package/package.json +1 -1
- package/src/execution.ts +23 -0
- package/src/javascript/add-import.ts +449 -78
- package/src/javascript/amd.ts +49 -10
- package/src/javascript/binding.ts +60 -74
- package/src/javascript/comparator.ts +6 -1
- package/src/javascript/format/format.ts +56 -12
- package/src/javascript/format/minimum-viable-spacing-visitor.ts +196 -7
- package/src/javascript/format/prettier-format.ts +35 -25
- package/src/javascript/index.ts +10 -3
- package/src/javascript/parser-utils.ts +5 -11
- package/src/javascript/parser.ts +65 -6
- package/src/javascript/print.ts +10 -0
- package/src/javascript/recipes/change-import.ts +19 -349
- package/src/javascript/rpc.ts +2 -0
- package/src/javascript/scope.ts +210 -31
- package/src/javascript/templating/bindings.ts +2 -25
- package/src/javascript/templating/comparator.ts +29 -2
- package/src/javascript/templating/engine.ts +41 -14
- package/src/javascript/templating/template.ts +6 -0
- package/src/javascript/templating/types.ts +6 -0
- package/src/javascript/tree.ts +1 -0
- package/src/javascript/type-mapping.ts +15 -0
- package/src/javascript/visitor.ts +1 -0
- package/src/parser.ts +24 -1
- package/src/print.ts +5 -2
- package/src/rpc/request/parse-project.ts +6 -2
- package/src/rpc/request/parse.ts +7 -2
package/dist/javascript/scope.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.scopeOf = scopeOf;
|
|
4
4
|
exports.namesDeclaredIn = namesDeclaredIn;
|
|
5
|
+
exports.namesUsedIn = namesUsedIn;
|
|
6
|
+
exports.namesUsedWithin = namesUsedWithin;
|
|
5
7
|
exports.namesDeclaredWithin = namesDeclaredWithin;
|
|
6
8
|
exports.bindingNames = bindingNames;
|
|
7
9
|
exports.walk = walk;
|
|
@@ -9,6 +11,7 @@ exports.cursorOf = cursorOf;
|
|
|
9
11
|
exports.compilationUnitOf = compilationUnitOf;
|
|
10
12
|
exports.deconflict = deconflict;
|
|
11
13
|
exports.declarationsOf = declarationsOf;
|
|
14
|
+
exports.isValueReference = isValueReference;
|
|
12
15
|
/*
|
|
13
16
|
* Copyright 2025 the original author or authors.
|
|
14
17
|
* <p>
|
|
@@ -27,27 +30,83 @@ exports.declarationsOf = declarationsOf;
|
|
|
27
30
|
const tree_1 = require("../tree");
|
|
28
31
|
const java_1 = require("../java");
|
|
29
32
|
const tree_2 = require("./tree");
|
|
33
|
+
const noNames = new Set();
|
|
30
34
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* reach the cursor.
|
|
35
|
+
* The innermost scope holding `cursor`, which a visitor's own cursor rarely is: it stands on
|
|
36
|
+
* whatever node it is visiting. Where a declaration's shape leaves its reach unreadable the answer
|
|
37
|
+
* counts it rather than miss it, so a name reported here may not truly reach the cursor.
|
|
35
38
|
*/
|
|
36
39
|
function scopeOf(cursor) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
var _a;
|
|
41
|
+
return scopeAt((_a = enclosingScopeCursor(cursor)) !== null && _a !== void 0 ? _a : cursor);
|
|
42
|
+
}
|
|
43
|
+
function scopeAt(cursor) {
|
|
44
|
+
return {
|
|
45
|
+
names: () => { var _a; return frameBindings(cursor.value, (_a = cursor.parent) === null || _a === void 0 ? void 0 : _a.value); },
|
|
46
|
+
walk: visit => {
|
|
47
|
+
for (let c = cursor; c; c = enclosingScopeCursor(c.parent)) {
|
|
48
|
+
if (!visit(scopeAt(c))) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
declares: name => declaringScopeOf(cursor, name) !== undefined,
|
|
54
|
+
declaringScope: name => declaringScopeOf(cursor, name)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function enclosingScopeCursor(from) {
|
|
58
|
+
var _a;
|
|
59
|
+
for (let c = from; c; c = c.parent) {
|
|
60
|
+
if (scopeKinds.has((_a = c.value) === null || _a === void 0 ? void 0 : _a.kind)) {
|
|
61
|
+
return c;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return undefined;
|
|
40
65
|
}
|
|
66
|
+
/** The nodes {@link readBindings} answers for; everything else binds nothing and is not a scope. */
|
|
67
|
+
const scopeKinds = new Set([
|
|
68
|
+
tree_2.JS.Kind.CompilationUnit, java_1.J.Kind.Block, java_1.J.Kind.MethodDeclaration, java_1.J.Kind.Lambda,
|
|
69
|
+
java_1.J.Kind.ClassDeclaration, java_1.J.Kind.TryCatch, java_1.J.Kind.ForLoop, java_1.J.Kind.ForEachLoop, tree_2.JS.Kind.ForInLoop
|
|
70
|
+
]);
|
|
41
71
|
/**
|
|
42
72
|
* Every name the file declares, wherever it sits. A binding the whole file shares is referenced from
|
|
43
73
|
* sites that are not known when it is named, so it has to steer clear of every name that could
|
|
44
74
|
* shadow it at one of them.
|
|
45
75
|
*/
|
|
46
76
|
function namesDeclaredIn(cu) {
|
|
47
|
-
return namesDeclaredWithin(cu
|
|
77
|
+
return namesDeclaredWithin(cu);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Every name the file spells, declared or not — what a name has to be absent from to be free. An
|
|
81
|
+
* ambient global is spelled and declared nowhere, and binding over one would capture its uses.
|
|
82
|
+
*/
|
|
83
|
+
function namesUsedIn(cu) {
|
|
84
|
+
return namesUsedWithin(cu);
|
|
85
|
+
}
|
|
86
|
+
/** As {@link namesUsedIn}, over one subtree, for a name that only has to be free across that much. */
|
|
87
|
+
function namesUsedWithin(node, cacheKey = node) {
|
|
88
|
+
if (cacheKey === null || typeof cacheKey !== 'object') {
|
|
89
|
+
return noNames;
|
|
90
|
+
}
|
|
91
|
+
const cached = used.get(cacheKey);
|
|
92
|
+
if (cached) {
|
|
93
|
+
return cached;
|
|
94
|
+
}
|
|
95
|
+
const names = new Set();
|
|
96
|
+
walk(node, node => {
|
|
97
|
+
if (node.kind === java_1.J.Kind.Identifier) {
|
|
98
|
+
names.add(node.simpleName);
|
|
99
|
+
}
|
|
100
|
+
return true;
|
|
101
|
+
});
|
|
102
|
+
used.set(cacheKey, names);
|
|
103
|
+
return names;
|
|
48
104
|
}
|
|
49
105
|
/** As {@link namesDeclaredIn}, over one subtree, for a binding shared across only that much of a file. */
|
|
50
106
|
function namesDeclaredWithin(node, cacheKey = node) {
|
|
107
|
+
if (cacheKey === null || typeof cacheKey !== 'object') {
|
|
108
|
+
return noNames;
|
|
109
|
+
}
|
|
51
110
|
const cached = declared.get(cacheKey);
|
|
52
111
|
if (cached) {
|
|
53
112
|
return cached;
|
|
@@ -59,6 +118,8 @@ function namesDeclaredWithin(node, cacheKey = node) {
|
|
|
59
118
|
if (node.kind !== java_1.J.Kind.ClassDeclaration) {
|
|
60
119
|
return true;
|
|
61
120
|
}
|
|
121
|
+
// The walk ends at this branch, so the class's own type parameters are read here.
|
|
122
|
+
typeParameterNames(node).forEach(name => names.add(name));
|
|
62
123
|
// A member's name is not one the file binds, though the code inside one still declares names.
|
|
63
124
|
for (const member of (_b = (_a = node.body) === null || _a === void 0 ? void 0 : _a.statements) !== null && _b !== void 0 ? _b : []) {
|
|
64
125
|
const element = unwrap(member);
|
|
@@ -109,36 +170,53 @@ function bindingNames(pattern) {
|
|
|
109
170
|
function unnamedMembers(bound) {
|
|
110
171
|
return bound.map(({ name }) => ({ name }));
|
|
111
172
|
}
|
|
112
|
-
function
|
|
173
|
+
function declaringScopeOf(cursor, name) {
|
|
113
174
|
var _a;
|
|
114
|
-
const names = new Set();
|
|
115
175
|
for (let c = cursor; c; c = c.parent) {
|
|
116
|
-
|
|
117
|
-
|
|
176
|
+
if (frameBindings(c.value, (_a = c.parent) === null || _a === void 0 ? void 0 : _a.value).has(name)) {
|
|
177
|
+
return c.value;
|
|
118
178
|
}
|
|
119
179
|
}
|
|
120
|
-
return
|
|
180
|
+
return undefined;
|
|
121
181
|
}
|
|
122
|
-
/**
|
|
182
|
+
/**
|
|
183
|
+
* What one node on the cursor path binds, `parent` being the node it hangs from. Only these two
|
|
184
|
+
* answers turn on the parent; a node alone settles the rest, which is what makes them cacheable.
|
|
185
|
+
*/
|
|
123
186
|
function frameBindings(node, parent) {
|
|
124
|
-
|
|
187
|
+
// A class body holds members, which are reached through an instance rather than by name.
|
|
188
|
+
if ((node === null || node === void 0 ? void 0 : node.kind) === java_1.J.Kind.Block && (parent === null || parent === void 0 ? void 0 : parent.kind) === java_1.J.Kind.ClassDeclaration) {
|
|
189
|
+
return noNames;
|
|
190
|
+
}
|
|
191
|
+
// A function expression is the only function whose own name its body reaches: a declaration's
|
|
192
|
+
// name belongs to the enclosing block, a method's to an instance.
|
|
193
|
+
if ((node === null || node === void 0 ? void 0 : node.kind) === java_1.J.Kind.MethodDeclaration && (parent === null || parent === void 0 ? void 0 : parent.kind) === tree_2.JS.Kind.StatementExpression) {
|
|
194
|
+
const self = bindingNames(node.name).map(bound => bound.name);
|
|
195
|
+
return new Set([...self, ...ownBindings(node)]);
|
|
196
|
+
}
|
|
197
|
+
return ownBindings(node);
|
|
198
|
+
}
|
|
199
|
+
function ownBindings(node) {
|
|
200
|
+
if (typeof node !== 'object' || node === null) {
|
|
201
|
+
return noNames;
|
|
202
|
+
}
|
|
203
|
+
let names = frames.get(node);
|
|
204
|
+
if (!names) {
|
|
205
|
+
frames.set(node, names = new Set(readBindings(node)));
|
|
206
|
+
}
|
|
207
|
+
return names;
|
|
208
|
+
}
|
|
209
|
+
function readBindings(node) {
|
|
210
|
+
switch (node.kind) {
|
|
125
211
|
case tree_2.JS.Kind.CompilationUnit: {
|
|
126
212
|
const statements = node.statements;
|
|
127
213
|
return [...declaredNames(statements), ...hoistedNames(statements)];
|
|
128
214
|
}
|
|
129
215
|
case java_1.J.Kind.Block:
|
|
130
|
-
|
|
131
|
-
return (parent === null || parent === void 0 ? void 0 : parent.kind) === java_1.J.Kind.ClassDeclaration ? [] : declaredNames(node.statements);
|
|
216
|
+
return blockScopedNames(node.statements);
|
|
132
217
|
case java_1.J.Kind.MethodDeclaration: {
|
|
133
218
|
const method = node;
|
|
134
|
-
|
|
135
|
-
// declaration's name belongs to the enclosing block, a method's to an instance.
|
|
136
|
-
const self = (parent === null || parent === void 0 ? void 0 : parent.kind) === tree_2.JS.Kind.StatementExpression ? bindingNames(method.name) : [];
|
|
137
|
-
return [
|
|
138
|
-
...self.map(bound => bound.name),
|
|
139
|
-
...declaredNames(method.parameters.elements),
|
|
140
|
-
...hoistedNames(method.body)
|
|
141
|
-
];
|
|
219
|
+
return [...declaredNames(method.parameters.elements), ...hoistedNames(method.body)];
|
|
142
220
|
}
|
|
143
221
|
case java_1.J.Kind.Lambda: {
|
|
144
222
|
const lambda = node;
|
|
@@ -158,6 +236,30 @@ function frameBindings(node, parent) {
|
|
|
158
236
|
return [];
|
|
159
237
|
}
|
|
160
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* The names statements bind in the block holding them — the complement of what
|
|
241
|
+
* {@link hoistedNames} claims, so `function (x) { var x = 1; }` reads as one binding, not two.
|
|
242
|
+
*/
|
|
243
|
+
function blockScopedNames(statements) {
|
|
244
|
+
return statements.flatMap(statement => {
|
|
245
|
+
const element = unwrap(statement);
|
|
246
|
+
switch (element === null || element === void 0 ? void 0 : element.kind) {
|
|
247
|
+
case java_1.J.Kind.MethodDeclaration:
|
|
248
|
+
return [];
|
|
249
|
+
case java_1.J.Kind.VariableDeclarations:
|
|
250
|
+
case tree_2.JS.Kind.ScopedVariableDeclarations:
|
|
251
|
+
return isBlockScoped(element) ? declarationNames(element) : [];
|
|
252
|
+
case java_1.J.Kind.Case:
|
|
253
|
+
return blockScopedNames(element.statements.elements);
|
|
254
|
+
default:
|
|
255
|
+
return declarationNames(element);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
function isBlockScoped(declaration) {
|
|
260
|
+
var _a;
|
|
261
|
+
return ((_a = declaration.modifiers) !== null && _a !== void 0 ? _a : []).some(m => blockScoped.has(m.keyword));
|
|
262
|
+
}
|
|
161
263
|
/** The names statements declare directly in the scope holding them. */
|
|
162
264
|
function declaredNames(statements) {
|
|
163
265
|
return statements.flatMap(statement => declarationNames(unwrap(statement)));
|
|
@@ -180,6 +282,10 @@ function declarationNames(statement) {
|
|
|
180
282
|
return bindingNames(unwrap(statement.name)).map(bound => bound.name);
|
|
181
283
|
case tree_2.JS.Kind.TypeDeclaration:
|
|
182
284
|
return bindingNames(unwrap(statement.name)).map(bound => bound.name);
|
|
285
|
+
case java_1.J.Kind.TypeParameter:
|
|
286
|
+
// Reached by namesDeclaredWithin's walk, never through a statement list: a type
|
|
287
|
+
// parameter binds across the declaration carrying it, not in the scope that one sits in.
|
|
288
|
+
return bindingNames(statement.name).map(bound => bound.name);
|
|
183
289
|
case java_1.J.Kind.Case:
|
|
184
290
|
// The cases of a switch share the block it opens, so each one's declarations bind in all.
|
|
185
291
|
return declaredNames(statement.statements.elements);
|
|
@@ -187,6 +293,17 @@ function declarationNames(statement) {
|
|
|
187
293
|
return [];
|
|
188
294
|
}
|
|
189
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* The names a declaration's type parameters bind. A class keeps them in a container and everything
|
|
298
|
+
* else in a `J.TypeParameters`, and both hold the same right-padded list.
|
|
299
|
+
*/
|
|
300
|
+
function typeParameterNames(node) {
|
|
301
|
+
const held = node === null || node === void 0 ? void 0 : node.typeParameters;
|
|
302
|
+
const parameters = (held === null || held === void 0 ? void 0 : held.kind) === java_1.J.Kind.TypeParameters
|
|
303
|
+
? held.typeParameters
|
|
304
|
+
: held === null || held === void 0 ? void 0 : held.elements;
|
|
305
|
+
return (parameters !== null && parameters !== void 0 ? parameters : []).flatMap(parameter => declarationNames(unwrap(parameter)));
|
|
306
|
+
}
|
|
190
307
|
/** The names an import binds, which for an aliased or namespace specifier is the alias. */
|
|
191
308
|
function importNames(jsImport) {
|
|
192
309
|
const importClause = jsImport.importClause;
|
|
@@ -214,10 +331,13 @@ function aliasedName(specifier) {
|
|
|
214
331
|
}
|
|
215
332
|
const blockScoped = new Set(['let', 'const', 'using']);
|
|
216
333
|
// A walk of an immutable subtree has one answer, so it runs once. Keyed on the subtree itself, a
|
|
217
|
-
// replaced one is walked afresh: every call site in a function asks what that body hoists,
|
|
218
|
-
// import added to a file asks what that file declares
|
|
334
|
+
// replaced one is walked afresh: every call site in a function asks what that body hoists, every
|
|
335
|
+
// import added to a file asks what that file declares, and every scope is asked what it binds by
|
|
336
|
+
// each of the call sites it encloses.
|
|
219
337
|
const hoisted = new WeakMap();
|
|
220
338
|
const declared = new WeakMap();
|
|
339
|
+
const used = new WeakMap();
|
|
340
|
+
const frames = new WeakMap();
|
|
221
341
|
/**
|
|
222
342
|
* The names blocks under `scope` hoist out to it. A `var` or function declaration reaches the whole
|
|
223
343
|
* function it sits in, so one nested in a block is in scope outside that block; only a `let`, `const`
|
|
@@ -233,14 +353,13 @@ function hoistedNames(scope) {
|
|
|
233
353
|
}
|
|
234
354
|
const names = [];
|
|
235
355
|
const collect = (node) => {
|
|
236
|
-
var _a;
|
|
237
356
|
switch (node.kind) {
|
|
238
357
|
case java_1.J.Kind.MethodDeclaration:
|
|
239
358
|
names.push(...declarationNames(node));
|
|
240
359
|
return false;
|
|
241
360
|
case java_1.J.Kind.VariableDeclarations:
|
|
242
361
|
case tree_2.JS.Kind.ScopedVariableDeclarations:
|
|
243
|
-
if (!(
|
|
362
|
+
if (!isBlockScoped(node)) {
|
|
244
363
|
names.push(...declarationNames(node));
|
|
245
364
|
}
|
|
246
365
|
return false;
|
|
@@ -262,7 +381,12 @@ function hoistedNames(scope) {
|
|
|
262
381
|
hoisted.set(scope, names);
|
|
263
382
|
return names;
|
|
264
383
|
}
|
|
265
|
-
/**
|
|
384
|
+
/**
|
|
385
|
+
* Visits every LST node under `node`, leaving a subtree unvisited where `visit` returns false.
|
|
386
|
+
* `visit` sees nodes, never the padding holding them. Only what `isTree` accepts is descended
|
|
387
|
+
* into, which a `JavaType` is not, so the walk stays in the tree the source spells rather than
|
|
388
|
+
* entering the type graph — cyclic and shared, where it would not terminate.
|
|
389
|
+
*/
|
|
266
390
|
function walk(node, visit) {
|
|
267
391
|
if (Array.isArray(node)) {
|
|
268
392
|
node.forEach(child => walk(child, visit));
|
|
@@ -321,4 +445,32 @@ function declarationsOf(statement) {
|
|
|
321
445
|
}
|
|
322
446
|
return [];
|
|
323
447
|
}
|
|
448
|
+
/**
|
|
449
|
+
* Whether the identifier references a binding rather than naming one, which is what tells a rename
|
|
450
|
+
* which occurrences to follow. A name its parent introduces does not — a property, a method, a
|
|
451
|
+
* variable, a type parameter — nor one drawn from a namespace of its own: a statement label,
|
|
452
|
+
* declaring (`x:`) or referencing (`break x`), and a JSX attribute's prop. Position is all this
|
|
453
|
+
* reads: an import specifier's own name answers true, and a type position reads alike to a value.
|
|
454
|
+
*/
|
|
455
|
+
function isValueReference(cursor, identifier) {
|
|
456
|
+
var _a;
|
|
457
|
+
let c = cursor.parent;
|
|
458
|
+
while (c && isPadding(c.value)) {
|
|
459
|
+
c = c.parent;
|
|
460
|
+
}
|
|
461
|
+
const parent = c === null || c === void 0 ? void 0 : c.value;
|
|
462
|
+
// A call names a member of whatever it selects from. With nothing selected there is no member,
|
|
463
|
+
// and its `name` is a reference to the function being called.
|
|
464
|
+
if ((parent === null || parent === void 0 ? void 0 : parent.kind) === java_1.J.Kind.MethodInvocation && !parent.select) {
|
|
465
|
+
return true;
|
|
466
|
+
}
|
|
467
|
+
// A JSX attribute keeps its prop name on `key`; the three label-bearing nodes keep theirs on
|
|
468
|
+
// `label`. Every other kind that names rather than references keeps it on `name`.
|
|
469
|
+
const named = (parent === null || parent === void 0 ? void 0 : parent.kind) === tree_2.JS.Kind.JsxAttribute ? parent.key : ((_a = parent === null || parent === void 0 ? void 0 : parent.name) !== null && _a !== void 0 ? _a : parent === null || parent === void 0 ? void 0 : parent.label);
|
|
470
|
+
return named !== identifier && (named === null || named === void 0 ? void 0 : named.element) !== identifier;
|
|
471
|
+
}
|
|
472
|
+
function isPadding(value) {
|
|
473
|
+
const kind = value === null || value === void 0 ? void 0 : value.kind;
|
|
474
|
+
return kind === java_1.J.Kind.RightPadded || kind === java_1.J.Kind.LeftPadded || kind === java_1.J.Kind.Container;
|
|
475
|
+
}
|
|
324
476
|
//# sourceMappingURL=scope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/javascript/scope.ts"],"names":[],"mappings":";;AAmCA,0BAIC;AAOD,0CAEC;AAGD,kDAuBC;AAOD,oCA6BC;AAuKD,oBAcC;AAQD,4BAEC;AAGD,8CAGC;AAGD,gCAUC;AAOD,wCAUC;AAjVD;;;;;;;;;;;;;;GAcG;AACH,kCAAuC;AACvC,kCAA0B;AAC1B,iCAA0B;AAY1B;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,MAAc;IAClC,IAAI,QAAiC,CAAC;IACtC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,IAAR,QAAQ,GAAK,YAAY,CAAC,MAAM,CAAC,CAAA,CAAC;IACtD,OAAO,EAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,EAAsB;IAClD,OAAO,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,0GAA0G;AAC1G,SAAgB,mBAAmB,CAAC,IAAa,EAAE,WAAmB,IAAc;IAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,IAAS,EAAW,EAAE;;QACnC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,8FAA8F;QAC9F,KAAK,MAAM,MAAM,IAAI,MAAA,MAAC,IAA2B,CAAC,IAAI,0CAAE,UAAU,mCAAI,EAAE,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEpB,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,OAAsB;;IAC/C,QAAQ,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;QACpB,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACrB,MAAM,UAAU,GAAI,OAAwB,CAAC,UAAU,CAAC;YACxD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,CAAC;QACD,KAAK,SAAE,CAAC,IAAI,CAAC,MAAM;YACf,OAAO,YAAY,CAAE,OAAqB,CAAC,UAAU,CAAC,CAAC;QAC3D,KAAK,SAAE,CAAC,IAAI,CAAC,mBAAmB;YAC5B,OAAO,cAAc,CAAE,OAAkC,CAAC,QAAQ,CAAC,QAAQ;iBACtE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,KAAK,SAAE,CAAC,IAAI,CAAC,oBAAoB;YAC7B,OAAQ,OAAmC,CAAC,QAAQ,CAAC,QAAQ;iBACxD,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,SAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,OAA4B,CAAC;YAC7C,IAAI,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3C,OAAO,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,IAAS,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,GAAI,OAAO,CAAC,IAAqB,CAAC,UAAU,CAAC;YACvD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAClD,OAAO,CAAC;oBACJ,IAAI;oBACJ,MAAM,EAAE,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,YAA6B,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;iBACtG,CAAC,CAAC;QACP,CAAC;QACD;YACI,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;;IAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,IAAI,CAAC,GAAuB,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,MAAA,CAAC,CAAC,MAAM,0CAAE,KAAK,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,qFAAqF;AACrF,SAAS,aAAa,CAAC,IAAS,EAAE,MAAW;IACzC,QAAQ,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;QACjB,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAI,IAA2B,CAAC,UAAU,CAAC;YAC3D,OAAO,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,KAAK,QAAC,CAAC,IAAI,CAAC,KAAK;YACb,yFAAyF;YACzF,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAE,IAAgB,CAAC,UAAU,CAAC,CAAC;QACvG,KAAK,QAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,IAA2B,CAAC;YAC3C,gFAAgF;YAChF,gFAAgF;YAChF,MAAM,IAAI,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,OAAO;gBACH,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;gBAChC,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC5C,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;aAC/B,CAAC;QACN,CAAC;QACD,KAAK,QAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,IAAgB,CAAC;YAChC,OAAO,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,KAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB;YACxB,OAAO,YAAY,CAAE,IAA2B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpF,KAAK,QAAC,CAAC,IAAI,CAAC,QAAQ;YAChB,OAAO,aAAa,CAAC,CAAE,IAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;YACf,OAAO,aAAa,CAAE,IAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,KAAK,QAAC,CAAC,IAAI,CAAC,WAAW;YACnB,OAAO,aAAa,CAAC,CAAE,IAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,KAAK,SAAE,CAAC,IAAI,CAAC,SAAS;YAClB,OAAO,aAAa,CAAC,CAAE,IAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE;YACI,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,SAAS,aAAa,CAAC,UAAiB;IACpC,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAc;IACpC,QAAQ,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,EAAE,CAAC;QACtB,KAAK,SAAE,CAAC,IAAI,CAAC,MAAM;YACf,OAAO,WAAW,CAAC,SAAsB,CAAC,CAAC;QAC/C,KAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB;YAC5B,OAAQ,SAAoC,CAAC,SAAS;iBACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAC,OAAA,YAAY,CAAC,MAAA,MAAM,CAAC,QAAQ,CAAC,0CAAE,IAAI,CAAC,CAAA,EAAA,CAAC;iBACzD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,SAAE,CAAC,IAAI,CAAC,0BAA0B;YACnC,OAAO,aAAa,CAAE,SAA2C,CAAC,SAAS,CAAC,CAAC;QACjF,KAAK,QAAC,CAAC,IAAI,CAAC,iBAAiB;YACzB,OAAO,YAAY,CAAE,SAAiC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1F,KAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB;YACxB,OAAO,YAAY,CAAE,SAAgC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzF,KAAK,SAAE,CAAC,IAAI,CAAC,oBAAoB;YAC7B,OAAO,YAAY,CAAC,MAAM,CAAE,SAAqC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtG,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe;YACxB,OAAO,YAAY,CAAC,MAAM,CAAE,SAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjG,KAAK,QAAC,CAAC,IAAI,CAAC,IAAI;YACZ,0FAA0F;YAC1F,OAAO,aAAa,CAAE,SAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpE;YACI,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC;AAED,2FAA2F;AAC3F,SAAS,WAAW,CAAC,QAAmB;IACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,KAAK,MAAM,OAAO,IAAK,aAAiC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAE,SAAgC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,SAAwB;IACzC,MAAM,IAAI,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,SAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvD,iGAAiG;AACjG,qGAAqG;AACrG,uDAAuD;AACvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAoB,CAAC;AAChD,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA+B,CAAC;AAE5D;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAU;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,IAAS,EAAW,EAAE;;QACnC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,QAAC,CAAC,IAAI,CAAC,iBAAiB;gBACzB,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;YACjB,KAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;YACjC,KAAK,SAAE,CAAC,IAAI,CAAC,0BAA0B;gBACnC,IAAI,CAAE,CAAC,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAQ,CAAC,CAAC,EAAE,CAAC;oBACnF,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,KAAK,QAAC,CAAC,IAAI,CAAC,QAAQ;gBAChB,mFAAmF;gBACnF,IAAI,CAAE,IAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACjB,KAAK,SAAE,CAAC,IAAI,CAAC,mBAAmB;gBAC5B,iFAAiF;gBACjF,OAAO,KAAK,CAAC;YACjB,KAAK,QAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YACnB,KAAK,QAAC,CAAC,IAAI,CAAC,gBAAgB;gBACxB,OAAO,KAAK,CAAC;YACjB;gBACI,OAAO,IAAI,CAAC;QACpB,CAAC;IACL,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,mGAAmG;AACnG,SAAgB,IAAI,CAAC,IAAa,EAAE,KAA6B;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1C,OAAO;IACX,CAAC;IACD,MAAM,IAAI,GAAI,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAU,IAAI,CAAC;IACjC,IAAI,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,IAAI,CAAE,IAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAE,IAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,uEAAuE;QACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5F,CAAC;AACL,CAAC;AAED,+DAA+D;AAC/D,SAAS,MAAM,CAAC,IAAS;IACrB,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/G,CAAC;AAED,6GAA6G;AAC7G,SAAgB,QAAQ,CAAC,OAA+B;IACpD,OAAQ,OAAwC,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED,8FAA8F;AAC9F,SAAgB,iBAAiB,CAAC,IAAqC;IACnE,MAAM,MAAM,GAAG,IAAI,YAAY,aAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvG,CAAC;AAED,gHAAgH;AAChH,SAAgB,UAAU,CAAC,SAAiB,EAAE,OAAkC;IAC5E,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,KAAK,IAAI,MAAM,GAAG,CAAC,GAAI,MAAM,EAAE,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,SAAwB;IACnD,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClD,OAAO,CAAC,SAAmC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACzD,OAAQ,SAA2C,CAAC,SAAS;aACxD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACnB,MAAM,CAAC,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/javascript/scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ exports.renameBindings = renameBindings;
|
|
|
18
18
|
*/
|
|
19
19
|
const java_1 = require("../../java");
|
|
20
20
|
const visitor_1 = require("../visitor");
|
|
21
|
+
const scope_1 = require("../scope");
|
|
21
22
|
/**
|
|
22
23
|
* Renames the identifiers a template uses for its declared bindings to the names the file
|
|
23
24
|
* actually binds. Runs before parameter substitution, so only the template's own code is in
|
|
@@ -42,29 +43,10 @@ class RenameBindingsVisitor extends visitor_1.JavaScriptVisitor {
|
|
|
42
43
|
const resolved = resolvedModule(identifier);
|
|
43
44
|
const refersToBinding = resolved !== undefined
|
|
44
45
|
? resolved === this.modules[identifier.simpleName]
|
|
45
|
-
:
|
|
46
|
+
: (0, scope_1.isValueReference)(this.cursor, identifier);
|
|
46
47
|
return refersToBinding ? Object.assign(Object.assign({}, identifier), { simpleName: renamed }) : identifier;
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
|
-
/** Whether the parent is naming this identifier — as a property, a method, a declaration — rather than referencing it. */
|
|
50
|
-
function namesItsParent(cursor, identifier) {
|
|
51
|
-
let c = cursor.parent;
|
|
52
|
-
while (c && isPadding(c.value)) {
|
|
53
|
-
c = c.parent;
|
|
54
|
-
}
|
|
55
|
-
const parent = c === null || c === void 0 ? void 0 : c.value;
|
|
56
|
-
// A call names a member of whatever it selects from. With nothing selected there is no member,
|
|
57
|
-
// and its `name` is a reference to the function being called.
|
|
58
|
-
if ((parent === null || parent === void 0 ? void 0 : parent.kind) === java_1.J.Kind.MethodInvocation && !parent.select) {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
const name = parent === null || parent === void 0 ? void 0 : parent.name;
|
|
62
|
-
return name === identifier || (name === null || name === void 0 ? void 0 : name.element) === identifier;
|
|
63
|
-
}
|
|
64
|
-
function isPadding(value) {
|
|
65
|
-
const kind = value === null || value === void 0 ? void 0 : value.kind;
|
|
66
|
-
return kind === java_1.J.Kind.RightPadded || kind === java_1.J.Kind.LeftPadded || kind === java_1.J.Kind.Container;
|
|
67
|
-
}
|
|
68
50
|
/** The module an identifier's attribution traces back to, following the owning-class chain to its root. */
|
|
69
51
|
function resolvedModule(identifier) {
|
|
70
52
|
const fieldType = identifier.fieldType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/javascript/templating/bindings.ts"],"names":[],"mappings":";;AAwBA,wCAEC;AA1BD;;;;;;;;;;;;;;GAcG;AACH,qCAAmC;AACnC,wCAA6C;
|
|
1
|
+
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/javascript/templating/bindings.ts"],"names":[],"mappings":";;AAwBA,wCAEC;AA1BD;;;;;;;;;;;;;;GAcG;AACH,qCAAmC;AACnC,wCAA6C;AAC7C,oCAA0C;AAE1C;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAc,IAAO,EAAE,OAA+B,EAAE,OAA+B;IACvH,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAe,CAAC;AAC5F,CAAC;AAED,MAAM,qBAAsB,SAAQ,2BAA4B;IAC5D,YAA6B,OAA+B,EAC/B,OAA+B;QACxD,KAAK,EAAE,CAAC;QAFiB,YAAO,GAAP,OAAO,CAAwB;QAC/B,YAAO,GAAP,OAAO,CAAwB;IAE5D,CAAC;IAEQ,KAAK,CAAC,eAAe,CAAC,UAAwB,EAAE,CAAY;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7D,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,0FAA0F;QAC1F,wEAAwE;QACxE,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,QAAQ,KAAK,SAAS;YAC1C,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;YAClD,CAAC,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEhD,OAAO,eAAe,CAAC,CAAC,CAAC,gCAAI,UAAU,KAAE,UAAU,EAAE,OAAO,GAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/F,CAAC;CACJ;AAED,2GAA2G;AAC3G,SAAS,cAAc,CAAC,UAAwB;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,KAAK,GAAI,SAA2B,CAAC,KAAK,CAAC;QACjD,OAAO,KAAK,IAAI,WAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,IAAI,IAAI,IAAI,WAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAI,IAAoB,CAAC,aAAa,CAAC;QACtD,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IACD,IAAI,IAAI,IAAI,WAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,IAAkB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,SAAqB;IACnC,IAAI,OAAO,GAAe,SAAS,CAAC;IACpC,OAAO,OAAO,CAAC,WAAW,IAAI,WAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,OAAO,CAAC,WAAyB,CAAC;IAChD,CAAC;IACD,OAAO,WAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -65,6 +65,8 @@ export declare class PatternMatchingComparator extends JavaScriptSemanticCompara
|
|
|
65
65
|
/** The marker `attachCaptureMarkers` moved onto a parenthesized capture's `J.RightPadded`, which `unwrap()` skips past. */
|
|
66
66
|
private captureBehindParentheses;
|
|
67
67
|
visit<R extends J>(j: Tree, p: J, parent?: Cursor): Promise<R | undefined>;
|
|
68
|
+
/** A capture in the receiver has to bind, so a matching `methodType` cannot stand in for it. */
|
|
69
|
+
protected selectMustBeVisited(method: J.MethodInvocation): boolean;
|
|
68
70
|
protected hasSameKind(j: J, other: J): boolean;
|
|
69
71
|
/**
|
|
70
72
|
* Additional specialized abort methods for pattern matching scenarios.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/comparator.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/comparator.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,6 +133,10 @@ class PatternMatchingComparator extends comparator_1.JavaScriptSemanticComparato
|
|
|
133
133
|
// Continue with parent's visit which will push targetCursor and traverse
|
|
134
134
|
return await super.visit(j, p, parent);
|
|
135
135
|
}
|
|
136
|
+
/** A capture in the receiver has to bind, so a matching `methodType` cannot stand in for it. */
|
|
137
|
+
selectMustBeVisited(method) {
|
|
138
|
+
return method.select !== undefined && containsCapture(method.select);
|
|
139
|
+
}
|
|
136
140
|
hasSameKind(j, other) {
|
|
137
141
|
return super.hasSameKind(j, other) ||
|
|
138
142
|
(j.kind == java_1.J.Kind.Identifier && utils_1.PlaceholderUtils.isCapture(j));
|
|
@@ -1196,4 +1200,25 @@ class DebugPatternMatchingComparator extends PatternMatchingComparator {
|
|
|
1196
1200
|
}
|
|
1197
1201
|
}
|
|
1198
1202
|
exports.DebugPatternMatchingComparator = DebugPatternMatchingComparator;
|
|
1203
|
+
/** Whether anything under `node`, the padding wrappers a marker moves onto included, is a capture. */
|
|
1204
|
+
function containsCapture(node) {
|
|
1205
|
+
if (node === null || typeof node !== 'object') {
|
|
1206
|
+
return false;
|
|
1207
|
+
}
|
|
1208
|
+
if (Array.isArray(node)) {
|
|
1209
|
+
return node.some(containsCapture);
|
|
1210
|
+
}
|
|
1211
|
+
const record = node;
|
|
1212
|
+
if (typeof record.kind !== 'string') {
|
|
1213
|
+
return false;
|
|
1214
|
+
}
|
|
1215
|
+
// Attribution is a cyclic graph, and a capture is never reachable through one
|
|
1216
|
+
if (java_1.Type.isType(node)) {
|
|
1217
|
+
return false;
|
|
1218
|
+
}
|
|
1219
|
+
if (record.markers && utils_1.PlaceholderUtils.getCaptureMarker(node)) {
|
|
1220
|
+
return true;
|
|
1221
|
+
}
|
|
1222
|
+
return Object.entries(record).some(([key, value]) => key !== 'markers' && containsCapture(value));
|
|
1223
|
+
}
|
|
1199
1224
|
//# sourceMappingURL=comparator.js.map
|