@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.
Files changed (124) hide show
  1. package/dist/execution.d.ts +8 -0
  2. package/dist/execution.d.ts.map +1 -1
  3. package/dist/execution.js +31 -0
  4. package/dist/execution.js.map +1 -1
  5. package/dist/javascript/add-import.d.ts +64 -9
  6. package/dist/javascript/add-import.d.ts.map +1 -1
  7. package/dist/javascript/add-import.js +398 -71
  8. package/dist/javascript/add-import.js.map +1 -1
  9. package/dist/javascript/amd.d.ts +11 -1
  10. package/dist/javascript/amd.d.ts.map +1 -1
  11. package/dist/javascript/amd.js +43 -9
  12. package/dist/javascript/amd.js.map +1 -1
  13. package/dist/javascript/binding.d.ts +10 -2
  14. package/dist/javascript/binding.d.ts.map +1 -1
  15. package/dist/javascript/binding.js +44 -71
  16. package/dist/javascript/binding.js.map +1 -1
  17. package/dist/javascript/comparator.d.ts +2 -0
  18. package/dist/javascript/comparator.d.ts.map +1 -1
  19. package/dist/javascript/comparator.js +5 -1
  20. package/dist/javascript/comparator.js.map +1 -1
  21. package/dist/javascript/format/format.d.ts +5 -2
  22. package/dist/javascript/format/format.d.ts.map +1 -1
  23. package/dist/javascript/format/format.js +51 -11
  24. package/dist/javascript/format/format.js.map +1 -1
  25. package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts +19 -0
  26. package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts.map +1 -1
  27. package/dist/javascript/format/minimum-viable-spacing-visitor.js +180 -7
  28. package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -1
  29. package/dist/javascript/format/prettier-format.d.ts +2 -1
  30. package/dist/javascript/format/prettier-format.d.ts.map +1 -1
  31. package/dist/javascript/format/prettier-format.js +33 -23
  32. package/dist/javascript/format/prettier-format.js.map +1 -1
  33. package/dist/javascript/index.d.ts +3 -3
  34. package/dist/javascript/index.d.ts.map +1 -1
  35. package/dist/javascript/index.js +21 -1
  36. package/dist/javascript/index.js.map +1 -1
  37. package/dist/javascript/parser-utils.d.ts.map +1 -1
  38. package/dist/javascript/parser-utils.js +5 -9
  39. package/dist/javascript/parser-utils.js.map +1 -1
  40. package/dist/javascript/parser.d.ts.map +1 -1
  41. package/dist/javascript/parser.js +48 -3
  42. package/dist/javascript/parser.js.map +1 -1
  43. package/dist/javascript/print.d.ts +1 -0
  44. package/dist/javascript/print.d.ts.map +1 -1
  45. package/dist/javascript/print.js +9 -0
  46. package/dist/javascript/print.js.map +1 -1
  47. package/dist/javascript/recipes/change-import.d.ts +6 -3
  48. package/dist/javascript/recipes/change-import.d.ts.map +1 -1
  49. package/dist/javascript/recipes/change-import.js +17 -277
  50. package/dist/javascript/recipes/change-import.js.map +1 -1
  51. package/dist/javascript/rpc.js +2 -0
  52. package/dist/javascript/rpc.js.map +1 -1
  53. package/dist/javascript/scope.d.ts +40 -7
  54. package/dist/javascript/scope.d.ts.map +1 -1
  55. package/dist/javascript/scope.js +182 -30
  56. package/dist/javascript/scope.js.map +1 -1
  57. package/dist/javascript/templating/bindings.js +2 -20
  58. package/dist/javascript/templating/bindings.js.map +1 -1
  59. package/dist/javascript/templating/comparator.d.ts +2 -0
  60. package/dist/javascript/templating/comparator.d.ts.map +1 -1
  61. package/dist/javascript/templating/comparator.js +25 -0
  62. package/dist/javascript/templating/comparator.js.map +1 -1
  63. package/dist/javascript/templating/engine.d.ts +5 -0
  64. package/dist/javascript/templating/engine.d.ts.map +1 -1
  65. package/dist/javascript/templating/engine.js +30 -12
  66. package/dist/javascript/templating/engine.js.map +1 -1
  67. package/dist/javascript/templating/template.d.ts.map +1 -1
  68. package/dist/javascript/templating/template.js +6 -0
  69. package/dist/javascript/templating/template.js.map +1 -1
  70. package/dist/javascript/templating/types.d.ts +5 -0
  71. package/dist/javascript/templating/types.d.ts.map +1 -1
  72. package/dist/javascript/tree.d.ts +1 -0
  73. package/dist/javascript/tree.d.ts.map +1 -1
  74. package/dist/javascript/tree.js.map +1 -1
  75. package/dist/javascript/type-mapping.d.ts.map +1 -1
  76. package/dist/javascript/type-mapping.js +14 -0
  77. package/dist/javascript/type-mapping.js.map +1 -1
  78. package/dist/javascript/visitor.d.ts.map +1 -1
  79. package/dist/javascript/visitor.js +1 -0
  80. package/dist/javascript/visitor.js.map +1 -1
  81. package/dist/parser.d.ts +6 -0
  82. package/dist/parser.d.ts.map +1 -1
  83. package/dist/parser.js +23 -1
  84. package/dist/parser.js.map +1 -1
  85. package/dist/print.d.ts.map +1 -1
  86. package/dist/print.js +5 -2
  87. package/dist/print.js.map +1 -1
  88. package/dist/rewrite-javascript-version.txt +1 -1
  89. package/dist/rpc/request/parse-project.d.ts +11 -1
  90. package/dist/rpc/request/parse-project.d.ts.map +1 -1
  91. package/dist/rpc/request/parse-project.js +7 -2
  92. package/dist/rpc/request/parse-project.js.map +1 -1
  93. package/dist/rpc/request/parse.d.ts +13 -1
  94. package/dist/rpc/request/parse.d.ts.map +1 -1
  95. package/dist/rpc/request/parse.js +8 -2
  96. package/dist/rpc/request/parse.js.map +1 -1
  97. package/package.json +1 -1
  98. package/src/execution.ts +23 -0
  99. package/src/javascript/add-import.ts +449 -78
  100. package/src/javascript/amd.ts +49 -10
  101. package/src/javascript/binding.ts +60 -74
  102. package/src/javascript/comparator.ts +6 -1
  103. package/src/javascript/format/format.ts +56 -12
  104. package/src/javascript/format/minimum-viable-spacing-visitor.ts +196 -7
  105. package/src/javascript/format/prettier-format.ts +35 -25
  106. package/src/javascript/index.ts +10 -3
  107. package/src/javascript/parser-utils.ts +5 -11
  108. package/src/javascript/parser.ts +65 -6
  109. package/src/javascript/print.ts +10 -0
  110. package/src/javascript/recipes/change-import.ts +19 -349
  111. package/src/javascript/rpc.ts +2 -0
  112. package/src/javascript/scope.ts +210 -31
  113. package/src/javascript/templating/bindings.ts +2 -25
  114. package/src/javascript/templating/comparator.ts +29 -2
  115. package/src/javascript/templating/engine.ts +41 -14
  116. package/src/javascript/templating/template.ts +6 -0
  117. package/src/javascript/templating/types.ts +6 -0
  118. package/src/javascript/tree.ts +1 -0
  119. package/src/javascript/type-mapping.ts +15 -0
  120. package/src/javascript/visitor.ts +1 -0
  121. package/src/parser.ts +24 -1
  122. package/src/print.ts +5 -2
  123. package/src/rpc/request/parse-project.ts +6 -2
  124. package/src/rpc/request/parse.ts +7 -2
@@ -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
- * What the code at `cursor` can name: what every enclosing scope binds, plus the declarations that
32
- * hoist into those scopes from blocks that do not enclose it. Where a declaration's shape leaves its
33
- * reach unreadable the answer counts it rather than miss it, so a name reported here may not truly
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
- let resolved;
38
- const names = () => resolved !== null && resolved !== void 0 ? resolved : (resolved = namesInScope(cursor));
39
- return { declares: name => names().has(name), names };
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.statements, 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 namesInScope(cursor) {
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
- for (const name of frameBindings(c.value, (_a = c.parent) === null || _a === void 0 ? void 0 : _a.value)) {
117
- names.add(name);
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 names;
180
+ return undefined;
121
181
  }
122
- /** What one node on the cursor path binds, `parent` being the node it hangs from. */
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
- switch (node === null || node === void 0 ? void 0 : node.kind) {
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
- // A class body holds members, which are reached through an instance rather than by name.
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
- // A function expression is the only function whose own name its body reaches: a
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, and every
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 (!((_a = node.modifiers) !== null && _a !== void 0 ? _a : []).some(m => blockScoped.has(m.keyword))) {
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
- /** Visits every LST node under `node`, leaving a subtree unvisited where `visit` returns false. */
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":"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"}
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
- : !namesItsParent(this.cursor, identifier);
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":"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"}
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,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,UAAU,CAAC;AAC5B,OAAO,EAAC,mCAAmC,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAmB,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAU,wBAAwB,EAAc,aAAa,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAGvG;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACzG,cAAc,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjH,cAAc,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACnD,kBAAkB,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACL;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAC1F,qBAAqB,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC;IACxG,SAAS,EAAE,MAAM,YAAY,CAAC;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAG5C,KAAK,CAAC,EAAE,cAAc,CAAC;CAC1B;AAwBD,qEAAqE;AACrE,UAAU,SAAS;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC;CACb;AAOD;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,mCAAmC;IAE1E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB;gBAAzB,OAAO,EAAE,gBAAgB,EAC5C,mBAAmB,GAAE,OAAc;IAMvC;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB;IAQ1E,+FAA+F;IAC/F,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS;IAKzD,2HAA2H;IAC3H,OAAO,CAAC,wBAAwB;IAkBjB,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA8CzF,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO;IAK9C;;OAEG;IAEH,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKlE,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM;IAK7C;;;OAGG;IACY,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA6CjG,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAoDpG;;;;;;;;OAQG;cACa,qBAAqB,CAAC,CAAC,SAAS,CAAC,EAC7C,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EACzB,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAKJ,qBAAqB,CAAC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAoF7F,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAmD5D,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAkD5G;;;OAGG;YACW,cAAc;IAI5B;;;;;;;;;;;OAWG;cACa,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9I;;;;;;;;;;;OAWG;cACa,sBAAsB,CAClC,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EACnC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAClC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,CAAC;IAuLnB;;;;;;;;OAQG;cACa,oBAAoB,CAChC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAChC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;CAgBtB;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,yBAAyB;IACzE,OAAO,KAAK,KAAK,GAEhB;IAED;;;OAGG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoBnB;;;;OAIG;cACgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC;IAwB1G;;OAEG;cAEgB,YAAY;cAOZ,kBAAkB,CAAC,YAAY,EAAE,MAAM;cAQvC,mBAAmB,CAAC,YAAY,EAAE,MAAM;cAUxC,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG;IA4DrE,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cAkChE,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAwD/D,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAyCjG,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAiDpG;;OAEG;cACsB,sBAAsB,CAAC,CAAC,SAAS,CAAC,EACvD,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACzB,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAgB1B;;OAEG;cACsB,wBAAwB,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,EACnE,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAC7B,gBAAgB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAe5B;;OAEG;cACsB,uBAAuB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAC9F,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAC3B,eAAe,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;cAgBF,qBAAqB,CAAC,CAAC,SAAS,CAAC,EACtD,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EACzB,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;cAKM,kBAAkB,CAAC,CAAC,EACzC,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,EACX,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC;cA6BS,aAAa,CAClC,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EACnC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAClC,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,CAAC;cAyBM,oBAAoB,CACzC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAChC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;cA4BM,sBAAsB,CAC3C,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EACnC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAClC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,OAAO,CAAC;CAqKtB"}
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