@openrewrite/rewrite 8.67.0-20251111-082857 → 8.67.0-20251111-123004

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.
@@ -1195,6 +1195,58 @@ export declare class JavaScriptSemanticComparatorVisitor extends JavaScriptCompa
1195
1195
  * @param lenientTypeMatching If true, allows matching between nodes with and without type annotations
1196
1196
  */
1197
1197
  constructor(lenientTypeMatching?: boolean);
1198
+ /**
1199
+ * Unwraps parentheses from a tree node recursively.
1200
+ * This allows comparing expressions with and without redundant parentheses.
1201
+ *
1202
+ * @param tree The tree to unwrap
1203
+ * @returns The unwrapped tree
1204
+ */
1205
+ protected unwrap(tree: Tree | undefined): Tree | undefined;
1206
+ visit<R extends J>(j: Tree, p: J, parent?: Cursor): Promise<R | undefined>;
1207
+ /**
1208
+ * Override visitArrowFunction to allow semantic equivalence between expression body
1209
+ * and block with single return statement forms.
1210
+ *
1211
+ * Examples:
1212
+ * - `x => x + 1` matches `x => { return x + 1; }`
1213
+ * - `(x, y) => x + y` matches `(x, y) => { return x + y; }`
1214
+ */
1215
+ visitArrowFunction(arrowFunction: JS.ArrowFunction, other: J): Promise<J | undefined>;
1216
+ /**
1217
+ * Override visitLambdaParameters to allow semantic equivalence between
1218
+ * arrow functions with and without parentheses around single parameters.
1219
+ *
1220
+ * Examples:
1221
+ * - `x => x + 1` matches `(x) => x + 1`
1222
+ */
1223
+ visitLambdaParameters(parameters: J.Lambda.Parameters, other: J): Promise<J | undefined>;
1224
+ /**
1225
+ * Override visitPropertyAssignment to allow semantic equivalence between
1226
+ * object property shorthand and longhand forms.
1227
+ *
1228
+ * Examples:
1229
+ * - `{ x }` matches `{ x: x }`
1230
+ * - `{ x: x, y: y }` matches `{ x, y }`
1231
+ */
1232
+ visitPropertyAssignment(propertyAssignment: JS.PropertyAssignment, other: J): Promise<J | undefined>;
1233
+ /**
1234
+ * Extracts the property name from a PropertyAssignment.
1235
+ * Returns the simple name if the property is an identifier, undefined otherwise.
1236
+ */
1237
+ private getPropertyName;
1238
+ /**
1239
+ * Checks if an expression is an identifier with the given name.
1240
+ */
1241
+ private isIdentifierWithName;
1242
+ /**
1243
+ * Extracts the expression from an arrow function body.
1244
+ * Returns the expression if:
1245
+ * - body is already an Expression, OR
1246
+ * - body is a Block with exactly one Return statement
1247
+ * Otherwise returns undefined.
1248
+ */
1249
+ private extractExpression;
1198
1250
  /**
1199
1251
  * Override visitProperty to allow lenient type matching.
1200
1252
  * When lenientTypeMatching is enabled, null vs Type comparisons are allowed
@@ -1214,7 +1266,9 @@ export declare class JavaScriptSemanticComparatorVisitor extends JavaScriptCompa
1214
1266
  */
1215
1267
  visitMethodInvocation(method: J.MethodInvocation, other: J): Promise<J | undefined>;
1216
1268
  /**
1217
- * Override identifier comparison to include type checking for field access.
1269
+ * Override identifier comparison to include:
1270
+ * 1. Type checking for field access
1271
+ * 2. Semantic equivalence between `undefined` identifier and void expressions
1218
1272
  */
1219
1273
  visitIdentifier(identifier: J.Identifier, other: J): Promise<J | undefined>;
1220
1274
  /**
@@ -1229,5 +1283,27 @@ export declare class JavaScriptSemanticComparatorVisitor extends JavaScriptCompa
1229
1283
  * code with returnTypeExpression.
1230
1284
  */
1231
1285
  visitMethodDeclaration(methodDeclaration: J.MethodDeclaration, other: J): Promise<J | undefined>;
1286
+ /**
1287
+ * Override visitVoid to allow semantic equivalence with undefined identifier.
1288
+ * This handles the reverse case where the pattern is a void expression
1289
+ * and the source is the undefined identifier.
1290
+ *
1291
+ * Examples:
1292
+ * - `void 0` matches `undefined`
1293
+ * - `void(0)` matches `undefined`
1294
+ * - `void 1` matches `undefined`
1295
+ */
1296
+ visitVoid(voidExpr: JS.Void, other: J): Promise<J | undefined>;
1297
+ /**
1298
+ * Override visitLiteral to allow semantic equivalence between
1299
+ * different numeric literal formats.
1300
+ *
1301
+ * Examples:
1302
+ * - `255` matches `0xFF`
1303
+ * - `255` matches `0o377`
1304
+ * - `255` matches `0b11111111`
1305
+ * - `1000` matches `1e3`
1306
+ */
1307
+ visitLiteral(literal: J.Literal, other: J): Promise<J | undefined>;
1232
1308
  }
1233
1309
  //# sourceMappingURL=comparator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../src/javascript/comparator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../src/javascript/comparator.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,8 @@ exports.JavaScriptSemanticComparatorVisitor = exports.JavaScriptComparatorVisito
27
27
  */
28
28
  const visitor_1 = require("./visitor");
29
29
  const java_1 = require("../java");
30
- const tree_1 = require("../tree");
30
+ const tree_1 = require("./tree");
31
+ const tree_2 = require("../tree");
31
32
  /**
32
33
  * A visitor that compares two AST trees in lock step.
33
34
  * It takes another `J` instance as context and visits both trees simultaneously.
@@ -56,7 +57,7 @@ class JavaScriptComparatorVisitor extends visitor_1.JavaScriptVisitor {
56
57
  // Initialize targetCursor with parent if provided, otherwise undefined (will be set by visit())
57
58
  this.targetCursor = parentCursor2;
58
59
  // Initialize this.cursor (pattern cursor) with parent if provided
59
- this.cursor = parentCursor1 || new tree_1.Cursor(undefined, undefined);
60
+ this.cursor = parentCursor1 || new tree_2.Cursor(undefined, undefined);
60
61
  yield this.visit(tree1, tree2);
61
62
  return this.match;
62
63
  });
@@ -190,7 +191,7 @@ class JavaScriptComparatorVisitor extends visitor_1.JavaScriptVisitor {
190
191
  // Update targetCursor to track the target node in parallel with the pattern cursor
191
192
  // (Can be overridden by subclasses if they need cursor access before calling super)
192
193
  const savedTargetCursor = this.targetCursor;
193
- this.targetCursor = new tree_1.Cursor(p, this.targetCursor);
194
+ this.targetCursor = new tree_2.Cursor(p, this.targetCursor);
194
195
  try {
195
196
  // Continue with normal visitation, passing the other node as context
196
197
  return yield _super.visit.call(this, j, p);
@@ -218,8 +219,8 @@ class JavaScriptComparatorVisitor extends visitor_1.JavaScriptVisitor {
218
219
  // Push wrappers onto both cursors, then compare only the elements, not markers or spacing
219
220
  const savedCursor = this.cursor;
220
221
  const savedTargetCursor = this.targetCursor;
221
- this.cursor = new tree_1.Cursor(right, this.cursor);
222
- this.targetCursor = otherWrapper ? new tree_1.Cursor(otherWrapper, this.targetCursor) : this.targetCursor;
222
+ this.cursor = new tree_2.Cursor(right, this.cursor);
223
+ this.targetCursor = otherWrapper ? new tree_2.Cursor(otherWrapper, this.targetCursor) : this.targetCursor;
223
224
  try {
224
225
  yield this.visitProperty(right.element, otherElement);
225
226
  }
@@ -248,8 +249,8 @@ class JavaScriptComparatorVisitor extends visitor_1.JavaScriptVisitor {
248
249
  // Push wrappers onto both cursors, then compare only the elements, not markers or spacing
249
250
  const savedCursor = this.cursor;
250
251
  const savedTargetCursor = this.targetCursor;
251
- this.cursor = new tree_1.Cursor(left, this.cursor);
252
- this.targetCursor = otherWrapper ? new tree_1.Cursor(otherWrapper, this.targetCursor) : this.targetCursor;
252
+ this.cursor = new tree_2.Cursor(left, this.cursor);
253
+ this.targetCursor = otherWrapper ? new tree_2.Cursor(otherWrapper, this.targetCursor) : this.targetCursor;
253
254
  try {
254
255
  yield this.visitProperty(left.element, otherElement);
255
256
  }
@@ -282,8 +283,8 @@ class JavaScriptComparatorVisitor extends visitor_1.JavaScriptVisitor {
282
283
  // Push wrappers onto both cursors, then compare each element
283
284
  const savedCursor = this.cursor;
284
285
  const savedTargetCursor = this.targetCursor;
285
- this.cursor = new tree_1.Cursor(container, this.cursor);
286
- this.targetCursor = otherContainer ? new tree_1.Cursor(otherContainer, this.targetCursor) : this.targetCursor;
286
+ this.cursor = new tree_2.Cursor(container, this.cursor);
287
+ this.targetCursor = otherContainer ? new tree_2.Cursor(otherContainer, this.targetCursor) : this.targetCursor;
287
288
  try {
288
289
  for (let i = 0; i < container.elements.length; i++) {
289
290
  yield this.visitProperty(container.elements[i], otherElements[i]);
@@ -1961,6 +1962,253 @@ class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVisitor {
1961
1962
  super();
1962
1963
  this.lenientTypeMatching = lenientTypeMatching;
1963
1964
  }
1965
+ /**
1966
+ * Unwraps parentheses from a tree node recursively.
1967
+ * This allows comparing expressions with and without redundant parentheses.
1968
+ *
1969
+ * @param tree The tree to unwrap
1970
+ * @returns The unwrapped tree
1971
+ */
1972
+ unwrap(tree) {
1973
+ if (!tree) {
1974
+ return tree;
1975
+ }
1976
+ // Unwrap J.Parentheses nodes recursively
1977
+ if (tree.kind === java_1.J.Kind.Parentheses) {
1978
+ const parens = tree;
1979
+ return this.unwrap(parens.tree.element);
1980
+ }
1981
+ // Unwrap J.ControlParentheses nodes recursively
1982
+ if (tree.kind === java_1.J.Kind.ControlParentheses) {
1983
+ const controlParens = tree;
1984
+ return this.unwrap(controlParens.tree.element);
1985
+ }
1986
+ return tree;
1987
+ }
1988
+ visit(j, p, parent) {
1989
+ return __awaiter(this, void 0, void 0, function* () {
1990
+ // If we've already found a mismatch, abort further processing
1991
+ if (!this.match) {
1992
+ return j;
1993
+ }
1994
+ // Unwrap parentheses from both trees before comparing
1995
+ const unwrappedJ = this.unwrap(j) || j;
1996
+ const unwrappedP = this.unwrap(p) || p;
1997
+ // Skip the kind check that the base class does - semantic matching allows different kinds
1998
+ // (e.g., undefined identifier matching void expression)
1999
+ // Update targetCursor to track the target node in parallel with the pattern cursor
2000
+ const savedTargetCursor = this.targetCursor;
2001
+ this.targetCursor = new tree_2.Cursor(unwrappedP, this.targetCursor);
2002
+ try {
2003
+ // Call the grandparent's visit to do actual visitation without the kind check
2004
+ return yield visitor_1.JavaScriptVisitor.prototype.visit.call(this, unwrappedJ, unwrappedP);
2005
+ }
2006
+ finally {
2007
+ this.targetCursor = savedTargetCursor;
2008
+ }
2009
+ });
2010
+ }
2011
+ /**
2012
+ * Override visitArrowFunction to allow semantic equivalence between expression body
2013
+ * and block with single return statement forms.
2014
+ *
2015
+ * Examples:
2016
+ * - `x => x + 1` matches `x => { return x + 1; }`
2017
+ * - `(x, y) => x + y` matches `(x, y) => { return x + y; }`
2018
+ */
2019
+ visitArrowFunction(arrowFunction, other) {
2020
+ return __awaiter(this, void 0, void 0, function* () {
2021
+ if (!this.match) {
2022
+ return arrowFunction;
2023
+ }
2024
+ if (other.kind !== tree_1.JS.Kind.ArrowFunction) {
2025
+ return this.abort(arrowFunction);
2026
+ }
2027
+ const otherArrow = other;
2028
+ // Compare all properties reflectively except lambda (handled specially below)
2029
+ for (const key of Object.keys(arrowFunction)) {
2030
+ if (key.startsWith('_') || key === 'id' || key === 'markers' || key === 'lambda') {
2031
+ continue;
2032
+ }
2033
+ const jValue = arrowFunction[key];
2034
+ const otherValue = otherArrow[key];
2035
+ // Handle arrays
2036
+ if (Array.isArray(jValue)) {
2037
+ if (!Array.isArray(otherValue) || jValue.length !== otherValue.length) {
2038
+ return this.abort(arrowFunction);
2039
+ }
2040
+ for (let i = 0; i < jValue.length; i++) {
2041
+ yield this.visitProperty(jValue[i], otherValue[i]);
2042
+ if (!this.match)
2043
+ return arrowFunction;
2044
+ }
2045
+ }
2046
+ else {
2047
+ yield this.visitProperty(jValue, otherValue);
2048
+ if (!this.match)
2049
+ return arrowFunction;
2050
+ }
2051
+ }
2052
+ // Compare lambda parameters
2053
+ const params1 = arrowFunction.lambda.parameters.parameters;
2054
+ const params2 = otherArrow.lambda.parameters.parameters;
2055
+ if (params1.length !== params2.length) {
2056
+ return this.abort(arrowFunction);
2057
+ }
2058
+ for (let i = 0; i < params1.length; i++) {
2059
+ yield this.visitProperty(params1[i], params2[i]);
2060
+ if (!this.match)
2061
+ return arrowFunction;
2062
+ }
2063
+ // Handle semantic equivalence for lambda bodies
2064
+ const body1 = arrowFunction.lambda.body;
2065
+ const body2 = otherArrow.lambda.body;
2066
+ // Try to extract the expression from each body
2067
+ const expr1 = this.extractExpression(body1);
2068
+ const expr2 = this.extractExpression(body2);
2069
+ if (expr1 && expr2) {
2070
+ // Both have extractable expressions - compare them
2071
+ yield this.visit(expr1, expr2);
2072
+ }
2073
+ else {
2074
+ // At least one is not a simple expression or block-with-return
2075
+ // Fall back to exact comparison
2076
+ yield this.visit(body1, body2);
2077
+ }
2078
+ return arrowFunction;
2079
+ });
2080
+ }
2081
+ /**
2082
+ * Override visitLambdaParameters to allow semantic equivalence between
2083
+ * arrow functions with and without parentheses around single parameters.
2084
+ *
2085
+ * Examples:
2086
+ * - `x => x + 1` matches `(x) => x + 1`
2087
+ */
2088
+ visitLambdaParameters(parameters, other) {
2089
+ return __awaiter(this, void 0, void 0, function* () {
2090
+ if (!this.match) {
2091
+ return parameters;
2092
+ }
2093
+ if (other.kind !== java_1.J.Kind.LambdaParameters) {
2094
+ return this.abort(parameters);
2095
+ }
2096
+ const otherParams = other;
2097
+ // Compare all properties except 'parenthesized' using reflection
2098
+ for (const key of Object.keys(parameters)) {
2099
+ if (key.startsWith('_') || key === 'id' || key === 'markers' || key === 'parenthesized') {
2100
+ continue;
2101
+ }
2102
+ const jValue = parameters[key];
2103
+ const otherValue = otherParams[key];
2104
+ // Handle arrays
2105
+ if (Array.isArray(jValue)) {
2106
+ if (!Array.isArray(otherValue) || jValue.length !== otherValue.length) {
2107
+ return this.abort(parameters);
2108
+ }
2109
+ for (let i = 0; i < jValue.length; i++) {
2110
+ yield this.visitProperty(jValue[i], otherValue[i]);
2111
+ if (!this.match)
2112
+ return parameters;
2113
+ }
2114
+ }
2115
+ else {
2116
+ yield this.visitProperty(jValue, otherValue);
2117
+ if (!this.match)
2118
+ return parameters;
2119
+ }
2120
+ }
2121
+ return parameters;
2122
+ });
2123
+ }
2124
+ /**
2125
+ * Override visitPropertyAssignment to allow semantic equivalence between
2126
+ * object property shorthand and longhand forms.
2127
+ *
2128
+ * Examples:
2129
+ * - `{ x }` matches `{ x: x }`
2130
+ * - `{ x: x, y: y }` matches `{ x, y }`
2131
+ */
2132
+ visitPropertyAssignment(propertyAssignment, other) {
2133
+ const _super = Object.create(null, {
2134
+ visitPropertyAssignment: { get: () => super.visitPropertyAssignment }
2135
+ });
2136
+ return __awaiter(this, void 0, void 0, function* () {
2137
+ if (!this.match) {
2138
+ return propertyAssignment;
2139
+ }
2140
+ if (other.kind !== tree_1.JS.Kind.PropertyAssignment) {
2141
+ return this.abort(propertyAssignment);
2142
+ }
2143
+ const otherProp = other;
2144
+ // Extract property names for semantic comparison
2145
+ const propName = this.getPropertyName(propertyAssignment);
2146
+ const otherPropName = this.getPropertyName(otherProp);
2147
+ // Names must match
2148
+ if (!propName || !otherPropName || propName !== otherPropName) {
2149
+ // Can't do semantic comparison without identifiers, fall back to exact comparison
2150
+ return yield _super.visitPropertyAssignment.call(this, propertyAssignment, other);
2151
+ }
2152
+ // Detect shorthand (no initializer) vs longhand (has initializer)
2153
+ const isShorthand1 = !propertyAssignment.initializer;
2154
+ const isShorthand2 = !otherProp.initializer;
2155
+ if (isShorthand1 === isShorthand2) {
2156
+ // Both shorthand or both longhand - use base comparison
2157
+ return yield _super.visitPropertyAssignment.call(this, propertyAssignment, other);
2158
+ }
2159
+ // One is shorthand, one is longhand - check semantic equivalence
2160
+ const longhandProp = isShorthand1 ? otherProp : propertyAssignment;
2161
+ // Check if the longhand's initializer is an identifier with the same name as the property
2162
+ if (this.isIdentifierWithName(longhandProp.initializer, propName)) {
2163
+ // Semantically equivalent!
2164
+ return propertyAssignment;
2165
+ }
2166
+ else {
2167
+ // Not equivalent (e.g., { x: y })
2168
+ return this.abort(propertyAssignment);
2169
+ }
2170
+ });
2171
+ }
2172
+ /**
2173
+ * Extracts the property name from a PropertyAssignment.
2174
+ * Returns the simple name if the property is an identifier, undefined otherwise.
2175
+ */
2176
+ getPropertyName(prop) {
2177
+ const nameExpr = prop.name.element;
2178
+ return (0, java_1.isIdentifier)(nameExpr) ? nameExpr.simpleName : undefined;
2179
+ }
2180
+ /**
2181
+ * Checks if an expression is an identifier with the given name.
2182
+ */
2183
+ isIdentifierWithName(expr, name) {
2184
+ return expr && (0, java_1.isIdentifier)(expr) && expr.simpleName === name;
2185
+ }
2186
+ /**
2187
+ * Extracts the expression from an arrow function body.
2188
+ * Returns the expression if:
2189
+ * - body is already an Expression, OR
2190
+ * - body is a Block with exactly one Return statement
2191
+ * Otherwise returns undefined.
2192
+ */
2193
+ extractExpression(body) {
2194
+ // If it's already an expression, return it
2195
+ if (body.kind !== java_1.J.Kind.Block) {
2196
+ return body;
2197
+ }
2198
+ // It's a block - check if it contains exactly one return statement
2199
+ const block = body;
2200
+ if (block.statements.length !== 1) {
2201
+ return undefined;
2202
+ }
2203
+ // Unwrap the RightPadded wrapper from the statement
2204
+ const stmtWrapper = block.statements[0];
2205
+ const stmt = stmtWrapper.element;
2206
+ if (stmt.kind !== java_1.J.Kind.Return) {
2207
+ return undefined;
2208
+ }
2209
+ const returnStmt = stmt;
2210
+ return returnStmt.expression;
2211
+ }
1964
2212
  /**
1965
2213
  * Override visitProperty to allow lenient type matching.
1966
2214
  * When lenientTypeMatching is enabled, null vs Type comparisons are allowed
@@ -2178,13 +2426,20 @@ class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVisitor {
2178
2426
  });
2179
2427
  }
2180
2428
  /**
2181
- * Override identifier comparison to include type checking for field access.
2429
+ * Override identifier comparison to include:
2430
+ * 1. Type checking for field access
2431
+ * 2. Semantic equivalence between `undefined` identifier and void expressions
2182
2432
  */
2183
2433
  visitIdentifier(identifier, other) {
2184
2434
  const _super = Object.create(null, {
2185
2435
  visitIdentifier: { get: () => super.visitIdentifier }
2186
2436
  });
2187
2437
  return __awaiter(this, void 0, void 0, function* () {
2438
+ // Check if this identifier is "undefined" and the other is a void expression
2439
+ if (identifier.simpleName === 'undefined' && other.kind === tree_1.JS.Kind.Void) {
2440
+ // Both evaluate to undefined, so they match
2441
+ return identifier;
2442
+ }
2188
2443
  if (other.kind !== java_1.J.Kind.Identifier) {
2189
2444
  return this.abort(identifier);
2190
2445
  }
@@ -2354,6 +2609,68 @@ class JavaScriptSemanticComparatorVisitor extends JavaScriptComparatorVisitor {
2354
2609
  return methodDeclaration;
2355
2610
  });
2356
2611
  }
2612
+ /**
2613
+ * Override visitVoid to allow semantic equivalence with undefined identifier.
2614
+ * This handles the reverse case where the pattern is a void expression
2615
+ * and the source is the undefined identifier.
2616
+ *
2617
+ * Examples:
2618
+ * - `void 0` matches `undefined`
2619
+ * - `void(0)` matches `undefined`
2620
+ * - `void 1` matches `undefined`
2621
+ */
2622
+ visitVoid(voidExpr, other) {
2623
+ const _super = Object.create(null, {
2624
+ visitVoid: { get: () => super.visitVoid }
2625
+ });
2626
+ return __awaiter(this, void 0, void 0, function* () {
2627
+ if (!this.match) {
2628
+ return voidExpr;
2629
+ }
2630
+ // Check if the other is an undefined identifier
2631
+ if (other.kind === java_1.J.Kind.Identifier) {
2632
+ const identifier = other;
2633
+ if (identifier.simpleName === 'undefined') {
2634
+ // Both evaluate to undefined, so they match
2635
+ return voidExpr;
2636
+ }
2637
+ }
2638
+ // Otherwise delegate to parent
2639
+ return _super.visitVoid.call(this, voidExpr, other);
2640
+ });
2641
+ }
2642
+ /**
2643
+ * Override visitLiteral to allow semantic equivalence between
2644
+ * different numeric literal formats.
2645
+ *
2646
+ * Examples:
2647
+ * - `255` matches `0xFF`
2648
+ * - `255` matches `0o377`
2649
+ * - `255` matches `0b11111111`
2650
+ * - `1000` matches `1e3`
2651
+ */
2652
+ visitLiteral(literal, other) {
2653
+ const _super = Object.create(null, {
2654
+ visitLiteral: { get: () => super.visitLiteral }
2655
+ });
2656
+ return __awaiter(this, void 0, void 0, function* () {
2657
+ if (!this.match) {
2658
+ return literal;
2659
+ }
2660
+ if (other.kind !== java_1.J.Kind.Literal) {
2661
+ return yield _super.visitLiteral.call(this, literal, other);
2662
+ }
2663
+ const otherLiteral = other;
2664
+ // Only compare value and type, ignoring valueSource (text representation) and unicodeEscapes
2665
+ yield this.visitProperty(literal.value, otherLiteral.value);
2666
+ if (!this.match)
2667
+ return literal;
2668
+ yield this.visitProperty(literal.type, otherLiteral.type);
2669
+ if (!this.match)
2670
+ return literal;
2671
+ return literal;
2672
+ });
2673
+ }
2357
2674
  }
2358
2675
  exports.JavaScriptSemanticComparatorVisitor = JavaScriptSemanticComparatorVisitor;
2359
2676
  //# sourceMappingURL=comparator.js.map