@openrewrite/rewrite 8.67.0-20251105-121415 → 8.67.0-20251105-160319
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/javascript/comparator.js +7 -7
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/templating/comparator.d.ts +3 -3
- package/dist/javascript/templating/comparator.d.ts.map +1 -1
- package/dist/javascript/templating/comparator.js +18 -42
- package/dist/javascript/templating/comparator.js.map +1 -1
- package/dist/javascript/templating/pattern.d.ts.map +1 -1
- package/dist/javascript/templating/pattern.js +135 -128
- package/dist/javascript/templating/pattern.js.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
- package/src/javascript/comparator.ts +7 -7
- package/src/javascript/templating/comparator.ts +22 -32
- package/src/javascript/templating/pattern.ts +116 -118
|
@@ -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
|
|
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: (
|
|
376
|
-
handleVariadicCapture: (
|
|
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
|
|
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(
|
|
410
|
+
handleCapture(capture, target, wrapper) {
|
|
409
411
|
var _a, _b;
|
|
410
|
-
const captureName =
|
|
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
|
|
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(
|
|
439
|
+
handleVariadicCapture(capture, targets, wrappers) {
|
|
438
440
|
var _a, _b;
|
|
439
|
-
const captureName =
|
|
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
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
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
|
-
|
|
627
|
-
|
|
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
|
-
|
|
646
|
-
|
|
647
|
-
|
|
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-
|
|
1
|
+
8.67.0-20251105-160319
|
package/package.json
CHANGED
|
@@ -1965,7 +1965,7 @@ export class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVis
|
|
|
1965
1965
|
}
|
|
1966
1966
|
|
|
1967
1967
|
if (method.select && otherMethod.select) {
|
|
1968
|
-
await this.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
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 {
|
|
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: (
|
|
31
|
-
handleVariadicCapture: (
|
|
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
|
|
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
|
|
74
|
-
|
|
75
|
-
|
|
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(
|
|
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.
|
|
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
|
|
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
|
-
|
|
265
|
-
const
|
|
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
|
|
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]
|
|
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]
|
|
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.
|
|
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(
|
|
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.
|
|
402
|
+
await this.visitRightPadded(patternWrapper, targetWrapper as any);
|
|
413
403
|
|
|
414
404
|
if (!this.match) {
|
|
415
405
|
// Restore state on match failure
|