@openrewrite/rewrite 8.67.0-20251105-121415 → 8.67.0-20251105-154016

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.
@@ -26,13 +26,15 @@ exports.pattern = pattern;
26
26
  * See the License for the specific language governing permissions and
27
27
  * limitations under the License.
28
28
  */
29
- const immer_1 = require("immer");
30
29
  const java_1 = require("../../java");
31
30
  const index_1 = require("../index");
32
- const uuid_1 = require("../../uuid");
31
+ const visitor_1 = require("../visitor");
32
+ const visitor_2 = require("../../visitor");
33
+ const util_1 = require("../../util");
33
34
  const capture_1 = require("./capture");
34
35
  const comparator_1 = require("./comparator");
35
36
  const utils_1 = require("./utils");
37
+ const tree_1 = require("../../tree");
36
38
  /**
37
39
  * Builder for creating patterns programmatically.
38
40
  * Use when pattern structure is not known at compile time.
@@ -362,7 +364,7 @@ class Matcher {
362
364
  var _a;
363
365
  // Check if pattern is a capture placeholder
364
366
  if (utils_1.PlaceholderUtils.isCapture(pattern)) {
365
- return this.handleCapture(pattern, target);
367
+ return this.handleCapture(utils_1.PlaceholderUtils.getCaptureMarker(pattern), target);
366
368
  }
367
369
  // Check if nodes have the same kind
368
370
  if (pattern.kind !== target.kind) {
@@ -372,8 +374,8 @@ class Matcher {
372
374
  // Default to true for backward compatibility with existing patterns
373
375
  const lenientTypeMatching = (_a = this.pattern.options.lenientTypeMatching) !== null && _a !== void 0 ? _a : true;
374
376
  const comparator = new comparator_1.PatternMatchingComparator({
375
- handleCapture: (p, t, w) => this.handleCapture(p, t, w),
376
- handleVariadicCapture: (p, ts, ws) => this.handleVariadicCapture(p, ts, ws),
377
+ handleCapture: (capture, t, w) => this.handleCapture(capture, t, w),
378
+ handleVariadicCapture: (capture, ts, ws) => this.handleVariadicCapture(capture, ts, ws),
377
379
  saveState: () => this.saveState(),
378
380
  restoreState: (state) => this.restoreState(state)
379
381
  }, lenientTypeMatching);
@@ -400,14 +402,14 @@ class Matcher {
400
402
  /**
401
403
  * Handles a capture placeholder.
402
404
  *
403
- * @param pattern The pattern node
405
+ * @param capture The pattern node capture
404
406
  * @param target The target node
405
407
  * @param wrapper Optional wrapper containing the target (for preserving markers)
406
408
  * @returns true if the capture is successful, false otherwise
407
409
  */
408
- handleCapture(pattern, target, wrapper) {
410
+ handleCapture(capture, target, wrapper) {
409
411
  var _a, _b;
410
- const captureName = utils_1.PlaceholderUtils.getCaptureName(pattern);
412
+ const captureName = capture.captureName;
411
413
  if (!captureName) {
412
414
  return false;
413
415
  }
@@ -429,14 +431,14 @@ class Matcher {
429
431
  /**
430
432
  * Handles a variadic capture placeholder.
431
433
  *
432
- * @param pattern The pattern node (the variadic capture)
434
+ * @param capture The pattern node capture (the variadic capture)
433
435
  * @param targets The target nodes that were matched
434
436
  * @param wrappers Optional wrappers to preserve markers
435
437
  * @returns true if the capture is successful, false otherwise
436
438
  */
437
- handleVariadicCapture(pattern, targets, wrappers) {
439
+ handleVariadicCapture(capture, targets, wrappers) {
438
440
  var _a, _b;
439
- const captureName = utils_1.PlaceholderUtils.getCaptureName(pattern);
441
+ const captureName = capture.captureName;
440
442
  if (!captureName) {
441
443
  return false;
442
444
  }
@@ -461,6 +463,96 @@ class Matcher {
461
463
  return true;
462
464
  }
463
465
  }
466
+ /**
467
+ * Visitor that attaches CaptureMarkers to capture identifiers in the AST.
468
+ * Markers are attached to Identifiers, then moved up to wrappers (RightPadded, ExpressionStatement).
469
+ * Uses JavaScriptVisitor to properly handle AST traversal and avoid cycles in Type objects.
470
+ */
471
+ class MarkerAttachmentVisitor extends visitor_1.JavaScriptVisitor {
472
+ constructor(captures) {
473
+ super();
474
+ this.captures = captures;
475
+ }
476
+ /**
477
+ * Attaches CaptureMarker to capture identifiers.
478
+ */
479
+ visitIdentifier(ident, p) {
480
+ const _super = Object.create(null, {
481
+ visitIdentifier: { get: () => super.visitIdentifier }
482
+ });
483
+ return __awaiter(this, void 0, void 0, function* () {
484
+ var _a;
485
+ // First call parent to handle standard visitation
486
+ const visited = yield _super.visitIdentifier.call(this, ident, p);
487
+ if (!visited || visited.kind !== java_1.J.Kind.Identifier) {
488
+ return visited;
489
+ }
490
+ ident = visited;
491
+ // Check if this is a capture placeholder
492
+ if ((_a = ident.simpleName) === null || _a === void 0 ? void 0 : _a.startsWith(utils_1.PlaceholderUtils.CAPTURE_PREFIX)) {
493
+ const captureInfo = utils_1.PlaceholderUtils.parseCapture(ident.simpleName);
494
+ if (captureInfo) {
495
+ // Find the original capture object to get variadic options
496
+ const captureObj = this.captures.find(c => c.getName() === captureInfo.name);
497
+ const variadicOptions = captureObj === null || captureObj === void 0 ? void 0 : captureObj.getVariadicOptions();
498
+ // Add CaptureMarker to the Identifier
499
+ const marker = new utils_1.CaptureMarker(captureInfo.name, variadicOptions);
500
+ return (0, util_1.updateIfChanged)(ident, {
501
+ markers: Object.assign(Object.assign({}, ident.markers), { markers: [...ident.markers.markers, marker] })
502
+ });
503
+ }
504
+ }
505
+ return ident;
506
+ });
507
+ }
508
+ /**
509
+ * Propagates markers from element to RightPadded wrapper.
510
+ */
511
+ visitRightPadded(right, p) {
512
+ return __awaiter(this, void 0, void 0, function* () {
513
+ if (!(0, tree_1.isTree)(right.element)) {
514
+ return right;
515
+ }
516
+ const visitedElement = yield this.visit(right.element, p);
517
+ if (visitedElement && visitedElement !== right.element) {
518
+ return (0, visitor_2.produceAsync)(right, (draft) => __awaiter(this, void 0, void 0, function* () {
519
+ // Visit element first
520
+ if (right.element && right.element.kind) {
521
+ // Check if element has a CaptureMarker
522
+ const elementMarker = utils_1.PlaceholderUtils.getCaptureMarker(visitedElement);
523
+ if (elementMarker) {
524
+ draft.markers.markers.push(elementMarker);
525
+ }
526
+ else {
527
+ draft.element = visitedElement;
528
+ }
529
+ }
530
+ }));
531
+ }
532
+ return right;
533
+ });
534
+ }
535
+ /**
536
+ * Propagates markers from expression to ExpressionStatement.
537
+ */
538
+ visitExpressionStatement(expressionStatement, p) {
539
+ return __awaiter(this, void 0, void 0, function* () {
540
+ // Visit the expression
541
+ const visitedExpression = yield this.visit(expressionStatement.expression, p);
542
+ // Check if expression has a CaptureMarker
543
+ const expressionMarker = utils_1.PlaceholderUtils.getCaptureMarker(visitedExpression);
544
+ if (expressionMarker) {
545
+ return (0, util_1.updateIfChanged)(expressionStatement, {
546
+ markers: Object.assign(Object.assign({}, expressionStatement.markers), { markers: [...expressionStatement.markers.markers, expressionMarker] }),
547
+ });
548
+ }
549
+ // No marker to move, just update with visited expression
550
+ return (0, util_1.updateIfChanged)(expressionStatement, {
551
+ expression: visitedExpression
552
+ });
553
+ });
554
+ }
555
+ }
464
556
  /**
465
557
  * Processor for template strings.
466
558
  * Converts a template string with captures into an AST pattern.
@@ -499,7 +591,7 @@ class TemplateProcessor {
499
591
  const cu = yield utils_1.templateCache.getOrParse(templateString, this.captures, contextWithPreamble, this.dependencies);
500
592
  // Extract the relevant part of the AST
501
593
  // The pattern code is always the last statement (after context + preamble)
502
- return this.extractPatternFromAst(cu);
594
+ return yield this.extractPatternFromAst(cu);
503
595
  });
504
596
  }
505
597
  /**
@@ -604,137 +696,52 @@ class TemplateProcessor {
604
696
  * @returns The extracted pattern
605
697
  */
606
698
  extractPatternFromAst(cu) {
607
- var _a;
608
- // Check if we have any statements
609
- if (!cu.statements || cu.statements.length === 0) {
610
- throw new Error(`No statements found in compilation unit`);
611
- }
612
- // The pattern code is always the last statement
613
- const lastStatement = cu.statements[cu.statements.length - 1].element;
614
- let extracted;
615
- // Check if this is our wrapper function for block patterns
616
- if (lastStatement.kind === java_1.J.Kind.MethodDeclaration) {
617
- const method = lastStatement;
618
- if (((_a = method.name) === null || _a === void 0 ? void 0 : _a.simpleName) === '__PATTERN__' && method.body) {
619
- // Extract the block from the wrapper function
620
- extracted = method.body;
699
+ return __awaiter(this, void 0, void 0, function* () {
700
+ var _a;
701
+ // Check if we have any statements
702
+ if (!cu.statements || cu.statements.length === 0) {
703
+ throw new Error(`No statements found in compilation unit`);
704
+ }
705
+ // The pattern code is always the last statement
706
+ const lastStatement = cu.statements[cu.statements.length - 1].element;
707
+ let extracted;
708
+ // Check if this is our wrapper function for block patterns
709
+ if (lastStatement.kind === java_1.J.Kind.MethodDeclaration) {
710
+ const method = lastStatement;
711
+ if (((_a = method.name) === null || _a === void 0 ? void 0 : _a.simpleName) === '__PATTERN__' && method.body) {
712
+ // Extract the block from the wrapper function
713
+ extracted = method.body;
714
+ }
715
+ else {
716
+ extracted = lastStatement;
717
+ }
718
+ }
719
+ else if (lastStatement.kind === index_1.JS.Kind.ExpressionStatement) {
720
+ // If the statement is an expression statement, extract the expression
721
+ extracted = lastStatement.expression;
621
722
  }
622
723
  else {
724
+ // Otherwise, return the statement itself
623
725
  extracted = lastStatement;
624
726
  }
625
- }
626
- else if (lastStatement.kind === index_1.JS.Kind.ExpressionStatement) {
627
- // If the statement is an expression statement, extract the expression
628
- extracted = lastStatement.expression;
629
- }
630
- else {
631
- // Otherwise, return the statement itself
632
- extracted = lastStatement;
633
- }
634
- // Attach CaptureMarkers to capture identifiers
635
- return this.attachCaptureMarkers(extracted);
727
+ // Attach CaptureMarkers to capture identifiers
728
+ return yield this.attachCaptureMarkers(extracted);
729
+ });
636
730
  }
637
731
  /**
638
732
  * Attaches CaptureMarkers to capture identifiers in the AST.
639
733
  * This allows efficient capture detection without string parsing.
734
+ * Uses JavaScriptVisitor to properly handle AST traversal and avoid cycles in Type objects.
640
735
  *
641
736
  * @param ast The AST to process
642
737
  * @returns The AST with CaptureMarkers attached
643
738
  */
644
739
  attachCaptureMarkers(ast) {
645
- const visited = new Set();
646
- return (0, immer_1.produce)(ast, draft => {
647
- this.visitAndAttachMarkers(draft, visited);
740
+ return __awaiter(this, void 0, void 0, function* () {
741
+ const visitor = new MarkerAttachmentVisitor(this.captures);
742
+ return (yield visitor.visit(ast, undefined));
648
743
  });
649
744
  }
650
- /**
651
- * Recursively visits AST nodes and attaches CaptureMarkers to capture identifiers.
652
- * For statement-level captures (identifiers in ExpressionStatement), the marker
653
- * is attached to the ExpressionStatement itself rather than the nested identifier.
654
- *
655
- * @param node The node to visit
656
- * @param visited Set of already visited nodes to avoid cycles
657
- */
658
- visitAndAttachMarkers(node, visited) {
659
- var _a, _b, _c, _d, _e;
660
- if (!node || typeof node !== 'object' || visited.has(node)) {
661
- return;
662
- }
663
- // Mark as visited to avoid cycles
664
- visited.add(node);
665
- // Check if this is a RightPadded containing a capture identifier
666
- // Attach marker to the wrapper to preserve markers (like semicolons) during capture
667
- if (node.kind === java_1.J.Kind.RightPadded &&
668
- ((_a = node.element) === null || _a === void 0 ? void 0 : _a.kind) === java_1.J.Kind.Identifier &&
669
- ((_b = node.element.simpleName) === null || _b === void 0 ? void 0 : _b.startsWith(utils_1.PlaceholderUtils.CAPTURE_PREFIX))) {
670
- const captureInfo = utils_1.PlaceholderUtils.parseCapture(node.element.simpleName);
671
- if (captureInfo) {
672
- // Initialize markers on the RightPadded
673
- if (!node.markers) {
674
- node.markers = { kind: 'org.openrewrite.marker.Markers', id: (0, uuid_1.randomId)(), markers: [] };
675
- }
676
- if (!node.markers.markers) {
677
- node.markers.markers = [];
678
- }
679
- // Find the original capture object to get variadic options
680
- const captureObj = this.captures.find(c => c.getName() === captureInfo.name);
681
- const variadicOptions = captureObj === null || captureObj === void 0 ? void 0 : captureObj.getVariadicOptions();
682
- // Add CaptureMarker to the RightPadded
683
- node.markers.markers.push(new utils_1.CaptureMarker(captureInfo.name, variadicOptions));
684
- }
685
- }
686
- // Check if this is an ExpressionStatement containing a capture identifier
687
- // For statement-level captures, we attach the marker to the ExpressionStatement itself
688
- else if (node.kind === index_1.JS.Kind.ExpressionStatement &&
689
- ((_c = node.expression) === null || _c === void 0 ? void 0 : _c.kind) === java_1.J.Kind.Identifier &&
690
- ((_d = node.expression.simpleName) === null || _d === void 0 ? void 0 : _d.startsWith(utils_1.PlaceholderUtils.CAPTURE_PREFIX))) {
691
- const captureInfo = utils_1.PlaceholderUtils.parseCapture(node.expression.simpleName);
692
- if (captureInfo) {
693
- // Initialize markers on the ExpressionStatement
694
- if (!node.markers) {
695
- node.markers = { kind: 'org.openrewrite.marker.Markers', id: (0, uuid_1.randomId)(), markers: [] };
696
- }
697
- if (!node.markers.markers) {
698
- node.markers.markers = [];
699
- }
700
- // Find the original capture object to get variadic options
701
- const captureObj = this.captures.find(c => c.getName() === captureInfo.name);
702
- const variadicOptions = captureObj === null || captureObj === void 0 ? void 0 : captureObj.getVariadicOptions();
703
- // Add CaptureMarker to the ExpressionStatement
704
- node.markers.markers.push(new utils_1.CaptureMarker(captureInfo.name, variadicOptions));
705
- }
706
- }
707
- // For non-statement, non-wrapped captures (expressions), attach marker to the identifier
708
- else if (node.kind === java_1.J.Kind.Identifier && ((_e = node.simpleName) === null || _e === void 0 ? void 0 : _e.startsWith(utils_1.PlaceholderUtils.CAPTURE_PREFIX))) {
709
- const captureInfo = utils_1.PlaceholderUtils.parseCapture(node.simpleName);
710
- if (captureInfo) {
711
- // Initialize markers if needed
712
- if (!node.markers) {
713
- node.markers = { kind: 'org.openrewrite.marker.Markers', id: (0, uuid_1.randomId)(), markers: [] };
714
- }
715
- if (!node.markers.markers) {
716
- node.markers.markers = [];
717
- }
718
- // Find the original capture object to get variadic options
719
- const captureObj = this.captures.find(c => c.getName() === captureInfo.name);
720
- const variadicOptions = captureObj === null || captureObj === void 0 ? void 0 : captureObj.getVariadicOptions();
721
- // Add CaptureMarker with variadic options if available
722
- node.markers.markers.push(new utils_1.CaptureMarker(captureInfo.name, variadicOptions));
723
- }
724
- }
725
- // Recursively visit all properties
726
- for (const key in node) {
727
- if (node.hasOwnProperty(key)) {
728
- const value = node[key];
729
- if (Array.isArray(value)) {
730
- value.forEach(item => this.visitAndAttachMarkers(item, visited));
731
- }
732
- else if (typeof value === 'object' && value !== null) {
733
- this.visitAndAttachMarkers(value, visited);
734
- }
735
- }
736
- }
737
- }
738
745
  }
739
746
  /**
740
747
  * Tagged template function for creating patterns.
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.67.0-20251105-121415
1
+ 8.67.0-20251105-154016
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.67.0-20251105-121415",
3
+ "version": "8.67.0-20251105-154016",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -1965,7 +1965,7 @@ export class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVis
1965
1965
  }
1966
1966
 
1967
1967
  if (method.select && otherMethod.select) {
1968
- await this.visit(method.select.element, otherMethod.select.element);
1968
+ await this.visitRightPadded(method.select, otherMethod.select as any);
1969
1969
  }
1970
1970
  }
1971
1971
 
@@ -1979,7 +1979,7 @@ export class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVis
1979
1979
  return this.abort(method);
1980
1980
  }
1981
1981
  for (let i = 0; i < method.typeParameters.elements.length; i++) {
1982
- await this.visit(method.typeParameters.elements[i].element, otherMethod.typeParameters.elements[i].element);
1982
+ await this.visitRightPadded(method.typeParameters.elements[i], otherMethod.typeParameters.elements[i] as any);
1983
1983
  if (!this.match) {
1984
1984
  return this.abort(method);
1985
1985
  }
@@ -1992,9 +1992,9 @@ export class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVis
1992
1992
  return this.abort(method);
1993
1993
  }
1994
1994
 
1995
- // Compare arguments
1995
+ // Compare arguments (visit RightPadded to check for markers)
1996
1996
  for (let i = 0; i < method.arguments.elements.length; i++) {
1997
- await this.visit(method.arguments.elements[i].element, otherMethod.arguments.elements[i].element);
1997
+ await this.visitRightPadded(method.arguments.elements[i], otherMethod.arguments.elements[i] as any);
1998
1998
  if (!this.match) {
1999
1999
  return this.abort(method);
2000
2000
  }
@@ -2086,7 +2086,7 @@ export class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVis
2086
2086
 
2087
2087
  // Visit each variable in lock step
2088
2088
  for (let i = 0; i < variableDeclarations.variables.length; i++) {
2089
- await this.visit(variableDeclarations.variables[i].element, otherVariableDeclarations.variables[i].element);
2089
+ await this.visitRightPadded(variableDeclarations.variables[i], otherVariableDeclarations.variables[i] as any);
2090
2090
  if (!this.match) return variableDeclarations;
2091
2091
  }
2092
2092
 
@@ -2154,7 +2154,7 @@ export class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVis
2154
2154
 
2155
2155
  // Visit each parameter in lock step
2156
2156
  for (let i = 0; i < methodDeclaration.parameters.elements.length; i++) {
2157
- await this.visit(methodDeclaration.parameters.elements[i].element, otherMethodDeclaration.parameters.elements[i].element);
2157
+ await this.visitRightPadded(methodDeclaration.parameters.elements[i], otherMethodDeclaration.parameters.elements[i] as any);
2158
2158
  if (!this.match) return methodDeclaration;
2159
2159
  }
2160
2160
 
@@ -2170,7 +2170,7 @@ export class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVis
2170
2170
  }
2171
2171
 
2172
2172
  for (let i = 0; i < methodDeclaration.throws.elements.length; i++) {
2173
- await this.visit(methodDeclaration.throws.elements[i].element, otherMethodDeclaration.throws.elements[i].element);
2173
+ await this.visitRightPadded(methodDeclaration.throws.elements[i], otherMethodDeclaration.throws.elements[i] as any);
2174
2174
  if (!this.match) return methodDeclaration;
2175
2175
  }
2176
2176
  }
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import {Cursor, isTree, Tree} from '../..';
16
+ import {Cursor, Tree} from '../..';
17
17
  import {J} from '../../java';
18
18
  import {JS} from '../index';
19
19
  import {JavaScriptSemanticComparatorVisitor} from '../comparator';
20
- import {PlaceholderUtils, CaptureStorageValue} from './utils';
20
+ import {CaptureMarker, CaptureStorageValue, PlaceholderUtils} from './utils';
21
21
 
22
22
  /**
23
23
  * A comparator for pattern matching that is lenient about optional properties.
@@ -27,8 +27,8 @@ import {PlaceholderUtils, CaptureStorageValue} from './utils';
27
27
  export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisitor {
28
28
  constructor(
29
29
  private readonly matcher: {
30
- handleCapture: (pattern: J, target: J, wrapper?: J.RightPadded<J>) => boolean;
31
- handleVariadicCapture: (pattern: J, targets: J[], wrappers?: J.RightPadded<J>[]) => boolean;
30
+ handleCapture: (capture: CaptureMarker, target: J, wrapper?: J.RightPadded<J>) => boolean;
31
+ handleVariadicCapture: (capture: CaptureMarker, targets: J[], wrappers?: J.RightPadded<J>[]) => boolean;
32
32
  saveState: () => Map<string, CaptureStorageValue>;
33
33
  restoreState: (state: Map<string, CaptureStorageValue>) => void;
34
34
  },
@@ -42,7 +42,7 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
42
42
  // Check if the pattern node is a capture - this handles unwrapped captures
43
43
  // (Wrapped captures in J.RightPadded are handled by visitRightPadded override)
44
44
  if (PlaceholderUtils.isCapture(j as J)) {
45
- const success = this.matcher.handleCapture(j as J, p, undefined);
45
+ const success = this.matcher.handleCapture(PlaceholderUtils.getCaptureMarker(j)!, p, undefined);
46
46
  if (!success) {
47
47
  return this.abort(j) as R;
48
48
  }
@@ -70,19 +70,9 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
70
70
  return right;
71
71
  }
72
72
 
73
- // Check if this RightPadded or its element has a CaptureMarker (attached during pattern construction)
74
- const element = right.element;
75
- let captureMarker = undefined;
76
-
77
- // Check RightPadded itself
78
- if (right.markers) {
79
- captureMarker = PlaceholderUtils.getCaptureMarker(right);
80
- }
81
-
82
- // Check element if it's a J node
83
- if (!captureMarker && isTree(element)) {
84
- captureMarker = PlaceholderUtils.getCaptureMarker(element);
85
- }
73
+ // Check if this RightPadded has a CaptureMarker (attached during pattern construction)
74
+ // Note: Markers are now only at the wrapper level, not at the element level
75
+ const captureMarker = PlaceholderUtils.getCaptureMarker(right);
86
76
  if (captureMarker) {
87
77
  // Extract the target wrapper if it's also a RightPadded
88
78
  const isRightPadded = (p as any).kind === J.Kind.RightPadded;
@@ -90,7 +80,7 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
90
80
  const targetElement = isRightPadded ? targetWrapper!.element : p;
91
81
 
92
82
  // Handle the capture with the wrapper - use the element for pattern matching
93
- const success = this.matcher.handleCapture(element as J, targetElement as J, targetWrapper as J.RightPadded<J> | undefined);
83
+ const success = this.matcher.handleCapture(captureMarker, targetElement as J, targetWrapper as J.RightPadded<J> | undefined);
94
84
  if (!success) {
95
85
  return this.abort(right);
96
86
  }
@@ -141,9 +131,9 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
141
131
  return this.abort(methodInvocation);
142
132
  }
143
133
 
144
- // Visit each type parameter in lock step
134
+ // Visit each type parameter in lock step (visit RightPadded to check for markers)
145
135
  for (let i = 0; i < methodInvocation.typeParameters.elements.length; i++) {
146
- await this.visit(methodInvocation.typeParameters.elements[i].element, otherMethodInvocation.typeParameters.elements[i].element);
136
+ await this.visitRightPadded(methodInvocation.typeParameters.elements[i], otherMethodInvocation.typeParameters.elements[i] as any);
147
137
  if (!this.match) return methodInvocation;
148
138
  }
149
139
  }
@@ -163,7 +153,7 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
163
153
  override async visitBlock(block: J.Block, other: J): Promise<J | undefined> {
164
154
  // Check if any statements have CaptureMarker indicating they're variadic
165
155
  const hasVariadicCapture = block.statements.some(stmt => {
166
- const captureMarker = PlaceholderUtils.getCaptureMarker(stmt.element);
156
+ const captureMarker = PlaceholderUtils.getCaptureMarker(stmt);
167
157
  return captureMarker?.variadicOptions !== undefined;
168
158
  });
169
159
 
@@ -261,8 +251,9 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
261
251
  return targetIdx >= targetElements.length; // Success if all targets consumed
262
252
  }
263
253
 
264
- const patternElement = patternElements[patternIdx].element;
265
- const captureMarker = PlaceholderUtils.getCaptureMarker(patternElement);
254
+ // Check for markers at wrapper level only (markers are now only at the outermost level)
255
+ const patternWrapper = patternElements[patternIdx];
256
+ const captureMarker = PlaceholderUtils.getCaptureMarker(patternWrapper);
266
257
  const isVariadic = captureMarker?.variadicOptions !== undefined;
267
258
 
268
259
  if (isVariadic) {
@@ -274,8 +265,7 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
274
265
  // Calculate maximum possible consumption
275
266
  let nonVariadicRemainingPatterns = 0;
276
267
  for (let i = patternIdx + 1; i < patternElements.length; i++) {
277
- const nextPatternElement = patternElements[i].element;
278
- const nextCaptureMarker = PlaceholderUtils.getCaptureMarker(nextPatternElement);
268
+ const nextCaptureMarker = PlaceholderUtils.getCaptureMarker(patternElements[i]);
279
269
  const nextIsVariadic = nextCaptureMarker?.variadicOptions !== undefined;
280
270
  if (!nextIsVariadic) {
281
271
  nonVariadicRemainingPatterns++;
@@ -290,16 +280,16 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
290
280
  let pivotAt = -1;
291
281
 
292
282
  if (patternIdx + 1 < patternElements.length && min <= maxPossible) {
293
- const nextPattern = patternElements[patternIdx + 1].element;
283
+ const nextPattern = patternElements[patternIdx + 1];
294
284
 
295
285
  // Scan through possible consumption amounts starting from min
296
286
  for (let tryConsume = min; tryConsume <= maxPossible; tryConsume++) {
297
287
  // Check if element after our consumption would match next pattern
298
288
  if (targetIdx + tryConsume < targetElements.length) {
299
- const candidateElement = targetElements[targetIdx + tryConsume].element;
289
+ const candidateElement = targetElements[targetIdx + tryConsume];
300
290
 
301
291
  // Skip J.Empty for arguments
302
- if (filterEmpty && candidateElement.kind === J.Kind.Empty) {
292
+ if (filterEmpty && candidateElement.element.kind === J.Kind.Empty) {
303
293
  continue;
304
294
  }
305
295
 
@@ -307,7 +297,7 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
307
297
  const savedMatch = this.match;
308
298
  const savedState = this.matcher.saveState();
309
299
 
310
- await this.visit(nextPattern, candidateElement);
300
+ await this.visitRightPadded(nextPattern, candidateElement as any);
311
301
  const matchesNext = this.match;
312
302
 
313
303
  this.match = savedMatch;
@@ -366,7 +356,7 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
366
356
  const savedState = this.matcher.saveState();
367
357
 
368
358
  // Handle the variadic capture
369
- const success = this.matcher.handleVariadicCapture(patternElement, capturedElements, capturedWrappers);
359
+ const success = this.matcher.handleVariadicCapture(captureMarker, capturedElements, capturedWrappers);
370
360
  if (!success) {
371
361
  // Restore state and try next amount
372
362
  this.matcher.restoreState(savedState);
@@ -409,7 +399,7 @@ export class PatternMatchingComparator extends JavaScriptSemanticComparatorVisit
409
399
  const savedMatch = this.match;
410
400
  const savedState = this.matcher.saveState();
411
401
 
412
- await this.visit(patternElement, targetElement);
402
+ await this.visitRightPadded(patternWrapper, targetWrapper as any);
413
403
 
414
404
  if (!this.match) {
415
405
  // Restore state on match failure