@openrewrite/rewrite 8.67.0 → 8.68.0-20251120-160315
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-import.d.ts","sourceRoot":"","sources":["../../src/javascript/add-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"add-import.d.ts","sourceRoot":"","sources":["../../src/javascript/add-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAa,CAAC,EAAmD,MAAM,SAAS,CAAC;AACxF,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAI1B,oBAAY,WAAW;IACnB,QAAQ,IAAA,CAAO,6BAA6B;IAC5C,YAAY,IAAA,CAAG,8BAA8B;IAC7C,UAAU,IAAA,CAAK,yBAAyB;IACxC,QAAQ,IAAA;CACX;AAED,MAAM,WAAW,gBAAgB;IAC7B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;;;mDAO+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;mDAE+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;mDAC+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;2EACuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,kGAAkG;IAClG,KAAK,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAC1B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAC/B,OAAO,EAAE,gBAAgB,QAY5B;AAED,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;gBAEjB,OAAO,EAAE,gBAAgB;IAkCrC;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkH5B;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAiDzB,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAoGxG;;OAEG;YACW,0BAA0B;IAsFxC;;OAEG;YACW,iBAAiB;IAuB/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmFxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;OAEG;YACW,yBAAyB;IA4IvC;;OAEG;YACW,qBAAqB;IAwInC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgE7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,cAAc;CAUzB"}
|
|
@@ -379,11 +379,19 @@ class AddImport extends visitor_1.JavaScriptVisitor {
|
|
|
379
379
|
// Create the new specifier with a space prefix (since it's not the first element)
|
|
380
380
|
const newSpecifierBase = this.createImportSpecifier();
|
|
381
381
|
const newSpecifier = Object.assign(Object.assign({}, newSpecifierBase), { prefix: java_1.singleSpace });
|
|
382
|
+
// Transfer the right padding from the element before the insertion point to the new element
|
|
383
|
+
// Since we're appending, this is the last existing element
|
|
384
|
+
const existingElements = namedImports.elements.elements;
|
|
385
|
+
const elementBeforeInsertion = existingElements[existingElements.length - 1];
|
|
386
|
+
const paddingToTransfer = elementBeforeInsertion.after;
|
|
382
387
|
// Add the new specifier to the elements
|
|
383
388
|
const updatedNamedImports = yield this.produceJavaScript(namedImports, p, (namedDraft) => __awaiter(this, void 0, void 0, function* () {
|
|
389
|
+
// Update the element before insertion to have emptySpace as its right padding (before the comma)
|
|
390
|
+
const updatedExistingElements = existingElements.slice(0, -1).concat(Object.assign(Object.assign({}, elementBeforeInsertion), { after: java_1.emptySpace }));
|
|
384
391
|
namedDraft.elements = Object.assign(Object.assign({}, namedImports.elements), { elements: [
|
|
385
|
-
...
|
|
386
|
-
(
|
|
392
|
+
...updatedExistingElements,
|
|
393
|
+
// Transfer the padding to the new element (after the comma, before the closing brace)
|
|
394
|
+
(0, java_1.rightPadded)(newSpecifier, paddingToTransfer)
|
|
387
395
|
] });
|
|
388
396
|
}));
|
|
389
397
|
// Update the import with the new named imports
|
|
@@ -560,29 +568,91 @@ class AddImport extends visitor_1.JavaScriptVisitor {
|
|
|
560
568
|
*/
|
|
561
569
|
checkIdentifierReferenced(compilationUnit) {
|
|
562
570
|
return __awaiter(this, void 0, void 0, function* () {
|
|
563
|
-
|
|
564
|
-
//
|
|
565
|
-
|
|
566
|
-
//
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
571
|
+
var _a, _b, _c, _d, _e;
|
|
572
|
+
// For namespace imports, we cannot use type attribution to detect usage
|
|
573
|
+
// because the namespace itself is used as an identifier, not individual members.
|
|
574
|
+
// For simplicity, we skip the onlyIfReferenced check for namespace imports.
|
|
575
|
+
if (this.member === '*') {
|
|
576
|
+
// TODO: Implement proper namespace usage detection by checking if alias identifier is used
|
|
577
|
+
return true;
|
|
578
|
+
}
|
|
579
|
+
// Step 1: Find the expected declaring type by examining existing imports from the same module
|
|
580
|
+
let expectedDeclaringType;
|
|
581
|
+
for (const stmt of compilationUnit.statements) {
|
|
582
|
+
const statement = stmt.element;
|
|
583
|
+
if ((statement === null || statement === void 0 ? void 0 : statement.kind) === tree_1.JS.Kind.Import) {
|
|
584
|
+
const jsImport = statement;
|
|
585
|
+
const moduleSpecifier = (_a = jsImport.moduleSpecifier) === null || _a === void 0 ? void 0 : _a.element;
|
|
586
|
+
if (!moduleSpecifier) {
|
|
587
|
+
continue;
|
|
588
|
+
}
|
|
589
|
+
const moduleName = this.getModuleName(moduleSpecifier);
|
|
590
|
+
if (moduleName !== this.module) {
|
|
591
|
+
continue; // Not the module we're interested in
|
|
592
|
+
}
|
|
593
|
+
// Found an existing import from our target module
|
|
594
|
+
// Extract the declaring type from any imported member with type attribution
|
|
595
|
+
const importClause = jsImport.importClause;
|
|
596
|
+
if (((_b = importClause === null || importClause === void 0 ? void 0 : importClause.namedBindings) === null || _b === void 0 ? void 0 : _b.kind) === tree_1.JS.Kind.NamedImports) {
|
|
597
|
+
const namedImports = importClause.namedBindings;
|
|
598
|
+
for (const elem of namedImports.elements.elements) {
|
|
599
|
+
const specifier = elem.element;
|
|
600
|
+
if ((specifier === null || specifier === void 0 ? void 0 : specifier.kind) === tree_1.JS.Kind.ImportSpecifier) {
|
|
601
|
+
const importSpec = specifier;
|
|
602
|
+
let identifier;
|
|
603
|
+
if (((_c = importSpec.specifier) === null || _c === void 0 ? void 0 : _c.kind) === java_1.J.Kind.Identifier) {
|
|
604
|
+
identifier = importSpec.specifier;
|
|
605
|
+
}
|
|
606
|
+
else if (((_d = importSpec.specifier) === null || _d === void 0 ? void 0 : _d.kind) === tree_1.JS.Kind.Alias) {
|
|
607
|
+
const aliasSpec = importSpec.specifier;
|
|
608
|
+
if (((_e = aliasSpec.alias) === null || _e === void 0 ? void 0 : _e.kind) === java_1.J.Kind.Identifier) {
|
|
609
|
+
identifier = aliasSpec.alias;
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
if ((identifier === null || identifier === void 0 ? void 0 : identifier.type) && java_1.Type.isMethod(identifier.type)) {
|
|
613
|
+
const methodType = identifier.type;
|
|
614
|
+
expectedDeclaringType = java_1.Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
|
|
615
|
+
if (expectedDeclaringType) {
|
|
616
|
+
break; // Found it!
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
if (expectedDeclaringType) {
|
|
623
|
+
break; // No need to scan more imports
|
|
572
624
|
}
|
|
573
|
-
usedImports.get(moduleName).add(methodType.name);
|
|
574
625
|
}
|
|
575
|
-
}
|
|
576
|
-
//
|
|
626
|
+
}
|
|
627
|
+
// Step 2: Look for references that match
|
|
628
|
+
const targetName = this.alias || this.member;
|
|
629
|
+
let found = false;
|
|
630
|
+
// If no existing imports from this module, look for unresolved references
|
|
631
|
+
// If there ARE existing imports, look for references with the expected declaring type
|
|
577
632
|
const collector = new class extends visitor_1.JavaScriptVisitor {
|
|
578
633
|
visitIdentifier(identifier, p) {
|
|
579
634
|
const _super = Object.create(null, {
|
|
580
635
|
visitIdentifier: { get: () => super.visitIdentifier }
|
|
581
636
|
});
|
|
582
637
|
return __awaiter(this, void 0, void 0, function* () {
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
638
|
+
if (identifier.simpleName === targetName) {
|
|
639
|
+
const type = identifier.type;
|
|
640
|
+
if (expectedDeclaringType) {
|
|
641
|
+
// We have an expected declaring type - check for exact match
|
|
642
|
+
if (type && java_1.Type.isMethod(type)) {
|
|
643
|
+
const methodType = type;
|
|
644
|
+
const declaringTypeName = java_1.Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
|
|
645
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
646
|
+
found = true;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
else {
|
|
651
|
+
// No existing imports - look for unresolved references (no type)
|
|
652
|
+
if (!type) {
|
|
653
|
+
found = true;
|
|
654
|
+
}
|
|
655
|
+
}
|
|
586
656
|
}
|
|
587
657
|
return _super.visitIdentifier.call(this, identifier, p);
|
|
588
658
|
});
|
|
@@ -592,8 +662,13 @@ class AddImport extends visitor_1.JavaScriptVisitor {
|
|
|
592
662
|
visitMethodInvocation: { get: () => super.visitMethodInvocation }
|
|
593
663
|
});
|
|
594
664
|
return __awaiter(this, void 0, void 0, function* () {
|
|
595
|
-
if (methodInvocation.methodType) {
|
|
596
|
-
|
|
665
|
+
if (methodInvocation.methodType && methodInvocation.methodType.name === targetName) {
|
|
666
|
+
if (expectedDeclaringType) {
|
|
667
|
+
const declaringTypeName = java_1.Type.FullyQualified.getFullyQualifiedName(methodInvocation.methodType.declaringType);
|
|
668
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
669
|
+
found = true;
|
|
670
|
+
}
|
|
671
|
+
}
|
|
597
672
|
}
|
|
598
673
|
return _super.visitMethodInvocation.call(this, methodInvocation, p);
|
|
599
674
|
});
|
|
@@ -603,8 +678,13 @@ class AddImport extends visitor_1.JavaScriptVisitor {
|
|
|
603
678
|
visitFunctionCall: { get: () => super.visitFunctionCall }
|
|
604
679
|
});
|
|
605
680
|
return __awaiter(this, void 0, void 0, function* () {
|
|
606
|
-
if (functionCall.methodType) {
|
|
607
|
-
|
|
681
|
+
if (functionCall.methodType && functionCall.methodType.name === targetName) {
|
|
682
|
+
if (expectedDeclaringType) {
|
|
683
|
+
const declaringTypeName = java_1.Type.FullyQualified.getFullyQualifiedName(functionCall.methodType.declaringType);
|
|
684
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
685
|
+
found = true;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
608
688
|
}
|
|
609
689
|
return _super.visitFunctionCall.call(this, functionCall, p);
|
|
610
690
|
});
|
|
@@ -616,28 +696,22 @@ class AddImport extends visitor_1.JavaScriptVisitor {
|
|
|
616
696
|
return __awaiter(this, void 0, void 0, function* () {
|
|
617
697
|
const type = fieldAccess.type;
|
|
618
698
|
if (type && java_1.Type.isMethod(type)) {
|
|
619
|
-
|
|
699
|
+
const methodType = type;
|
|
700
|
+
if (methodType.name === targetName) {
|
|
701
|
+
if (expectedDeclaringType) {
|
|
702
|
+
const declaringTypeName = java_1.Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
|
|
703
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
704
|
+
found = true;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
620
708
|
}
|
|
621
709
|
return _super.visitFieldAccess.call(this, fieldAccess, p);
|
|
622
710
|
});
|
|
623
711
|
}
|
|
624
712
|
};
|
|
625
713
|
yield collector.visit(compilationUnit, undefined);
|
|
626
|
-
|
|
627
|
-
// because the namespace itself is used as an identifier, not individual members.
|
|
628
|
-
// We would need to traverse the AST looking for the alias identifier.
|
|
629
|
-
// For simplicity, we skip the onlyIfReferenced check for namespace imports.
|
|
630
|
-
if (this.member === '*') {
|
|
631
|
-
// TODO: Implement proper namespace usage detection by checking if alias identifier is used
|
|
632
|
-
return true;
|
|
633
|
-
}
|
|
634
|
-
// Check if our target import is used based on type attribution
|
|
635
|
-
const moduleMembers = usedImports.get(this.module);
|
|
636
|
-
if (!moduleMembers) {
|
|
637
|
-
return false;
|
|
638
|
-
}
|
|
639
|
-
// For specific members, check if that member is used; otherwise check if any member is used
|
|
640
|
-
return this.member ? moduleMembers.has(this.member) : moduleMembers.size > 0;
|
|
714
|
+
return found;
|
|
641
715
|
});
|
|
642
716
|
}
|
|
643
717
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-import.js","sourceRoot":"","sources":["../../src/javascript/add-import.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add-import.js","sourceRoot":"","sources":["../../src/javascript/add-import.ts"],"names":[],"mappings":"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"}
|
package/dist/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
8.
|
|
1
|
+
8.68.0-20251120-160315
|
package/package.json
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import {JavaScriptVisitor} from "./visitor";
|
|
2
|
-
import {
|
|
2
|
+
import {emptySpace, J, rightPadded, singleSpace, space, Statement, Type} from "../java";
|
|
3
3
|
import {JS} from "./tree";
|
|
4
4
|
import {randomId} from "../uuid";
|
|
5
5
|
import {emptyMarkers, markers} from "../markers";
|
|
6
|
-
import {ExecutionContext} from "../execution";
|
|
7
6
|
|
|
8
7
|
export enum ImportStyle {
|
|
9
8
|
ES6Named, // import { x } from 'module'
|
|
@@ -454,14 +453,27 @@ export class AddImport<P> extends JavaScriptVisitor<P> {
|
|
|
454
453
|
const newSpecifierBase = this.createImportSpecifier();
|
|
455
454
|
const newSpecifier = {...newSpecifierBase, prefix: singleSpace};
|
|
456
455
|
|
|
456
|
+
// Transfer the right padding from the element before the insertion point to the new element
|
|
457
|
+
// Since we're appending, this is the last existing element
|
|
458
|
+
const existingElements = namedImports.elements.elements;
|
|
459
|
+
const elementBeforeInsertion = existingElements[existingElements.length - 1];
|
|
460
|
+
const paddingToTransfer = elementBeforeInsertion.after;
|
|
461
|
+
|
|
457
462
|
// Add the new specifier to the elements
|
|
458
463
|
const updatedNamedImports: JS.NamedImports = await this.produceJavaScript<JS.NamedImports>(
|
|
459
464
|
namedImports, p, async namedDraft => {
|
|
465
|
+
// Update the element before insertion to have emptySpace as its right padding (before the comma)
|
|
466
|
+
const updatedExistingElements = existingElements.slice(0, -1).concat({
|
|
467
|
+
...elementBeforeInsertion,
|
|
468
|
+
after: emptySpace
|
|
469
|
+
});
|
|
470
|
+
|
|
460
471
|
namedDraft.elements = {
|
|
461
472
|
...namedImports.elements,
|
|
462
473
|
elements: [
|
|
463
|
-
...
|
|
464
|
-
|
|
474
|
+
...updatedExistingElements,
|
|
475
|
+
// Transfer the padding to the new element (after the comma, before the closing brace)
|
|
476
|
+
rightPadded(newSpecifier, paddingToTransfer)
|
|
465
477
|
]
|
|
466
478
|
};
|
|
467
479
|
}
|
|
@@ -660,41 +672,119 @@ export class AddImport<P> extends JavaScriptVisitor<P> {
|
|
|
660
672
|
* Check if the identifier is actually referenced in the file
|
|
661
673
|
*/
|
|
662
674
|
private async checkIdentifierReferenced(compilationUnit: JS.CompilationUnit): Promise<boolean> {
|
|
663
|
-
//
|
|
664
|
-
//
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
675
|
+
// For namespace imports, we cannot use type attribution to detect usage
|
|
676
|
+
// because the namespace itself is used as an identifier, not individual members.
|
|
677
|
+
// For simplicity, we skip the onlyIfReferenced check for namespace imports.
|
|
678
|
+
if (this.member === '*') {
|
|
679
|
+
// TODO: Implement proper namespace usage detection by checking if alias identifier is used
|
|
680
|
+
return true;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
// Step 1: Find the expected declaring type by examining existing imports from the same module
|
|
684
|
+
let expectedDeclaringType: string | undefined;
|
|
685
|
+
|
|
686
|
+
for (const stmt of compilationUnit.statements) {
|
|
687
|
+
const statement = stmt.element;
|
|
688
|
+
|
|
689
|
+
if (statement?.kind === JS.Kind.Import) {
|
|
690
|
+
const jsImport = statement as JS.Import;
|
|
691
|
+
const moduleSpecifier = jsImport.moduleSpecifier?.element;
|
|
692
|
+
|
|
693
|
+
if (!moduleSpecifier) {
|
|
694
|
+
continue;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
const moduleName = this.getModuleName(moduleSpecifier);
|
|
698
|
+
if (moduleName !== this.module) {
|
|
699
|
+
continue; // Not the module we're interested in
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
// Found an existing import from our target module
|
|
703
|
+
// Extract the declaring type from any imported member with type attribution
|
|
704
|
+
const importClause = jsImport.importClause;
|
|
705
|
+
if (importClause?.namedBindings?.kind === JS.Kind.NamedImports) {
|
|
706
|
+
const namedImports = importClause.namedBindings as JS.NamedImports;
|
|
707
|
+
for (const elem of namedImports.elements.elements) {
|
|
708
|
+
const specifier = elem.element;
|
|
709
|
+
if (specifier?.kind === JS.Kind.ImportSpecifier) {
|
|
710
|
+
const importSpec = specifier as JS.ImportSpecifier;
|
|
711
|
+
let identifier: J.Identifier | undefined;
|
|
712
|
+
if (importSpec.specifier?.kind === J.Kind.Identifier) {
|
|
713
|
+
identifier = importSpec.specifier as J.Identifier;
|
|
714
|
+
} else if (importSpec.specifier?.kind === JS.Kind.Alias) {
|
|
715
|
+
const aliasSpec = importSpec.specifier as JS.Alias;
|
|
716
|
+
if (aliasSpec.alias?.kind === J.Kind.Identifier) {
|
|
717
|
+
identifier = aliasSpec.alias as J.Identifier;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
if (identifier?.type && Type.isMethod(identifier.type)) {
|
|
722
|
+
const methodType = identifier.type as Type.Method;
|
|
723
|
+
expectedDeclaringType = Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
|
|
724
|
+
if (expectedDeclaringType) {
|
|
725
|
+
break; // Found it!
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
if (expectedDeclaringType) {
|
|
733
|
+
break; // No need to scan more imports
|
|
673
734
|
}
|
|
674
|
-
usedImports.get(moduleName)!.add(methodType.name);
|
|
675
735
|
}
|
|
676
|
-
}
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// Step 2: Look for references that match
|
|
739
|
+
const targetName = this.alias || this.member;
|
|
740
|
+
let found = false;
|
|
741
|
+
|
|
742
|
+
// If no existing imports from this module, look for unresolved references
|
|
743
|
+
// If there ARE existing imports, look for references with the expected declaring type
|
|
677
744
|
|
|
678
|
-
// Create a visitor to collect used identifiers with their type attribution
|
|
679
745
|
const collector = new class extends JavaScriptVisitor<void> {
|
|
680
746
|
override async visitIdentifier(identifier: J.Identifier, p: void): Promise<J | undefined> {
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
747
|
+
if (identifier.simpleName === targetName) {
|
|
748
|
+
const type = identifier.type;
|
|
749
|
+
if (expectedDeclaringType) {
|
|
750
|
+
// We have an expected declaring type - check for exact match
|
|
751
|
+
if (type && Type.isMethod(type)) {
|
|
752
|
+
const methodType = type as Type.Method;
|
|
753
|
+
const declaringTypeName = Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
|
|
754
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
755
|
+
found = true;
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
} else {
|
|
759
|
+
// No existing imports - look for unresolved references (no type)
|
|
760
|
+
if (!type) {
|
|
761
|
+
found = true;
|
|
762
|
+
}
|
|
763
|
+
}
|
|
684
764
|
}
|
|
685
765
|
return super.visitIdentifier(identifier, p);
|
|
686
766
|
}
|
|
687
767
|
|
|
688
768
|
override async visitMethodInvocation(methodInvocation: J.MethodInvocation, p: void): Promise<J | undefined> {
|
|
689
|
-
if (methodInvocation.methodType) {
|
|
690
|
-
|
|
769
|
+
if (methodInvocation.methodType && methodInvocation.methodType.name === targetName) {
|
|
770
|
+
if (expectedDeclaringType) {
|
|
771
|
+
const declaringTypeName = Type.FullyQualified.getFullyQualifiedName(methodInvocation.methodType.declaringType);
|
|
772
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
773
|
+
found = true;
|
|
774
|
+
}
|
|
775
|
+
}
|
|
691
776
|
}
|
|
692
777
|
return super.visitMethodInvocation(methodInvocation, p);
|
|
693
778
|
}
|
|
694
779
|
|
|
695
780
|
override async visitFunctionCall(functionCall: JS.FunctionCall, p: void): Promise<J | undefined> {
|
|
696
|
-
if (functionCall.methodType) {
|
|
697
|
-
|
|
781
|
+
if (functionCall.methodType && functionCall.methodType.name === targetName) {
|
|
782
|
+
if (expectedDeclaringType) {
|
|
783
|
+
const declaringTypeName = Type.FullyQualified.getFullyQualifiedName(functionCall.methodType.declaringType);
|
|
784
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
785
|
+
found = true;
|
|
786
|
+
}
|
|
787
|
+
}
|
|
698
788
|
}
|
|
699
789
|
return super.visitFunctionCall(functionCall, p);
|
|
700
790
|
}
|
|
@@ -702,7 +792,15 @@ export class AddImport<P> extends JavaScriptVisitor<P> {
|
|
|
702
792
|
override async visitFieldAccess(fieldAccess: J.FieldAccess, p: void): Promise<J | undefined> {
|
|
703
793
|
const type = fieldAccess.type;
|
|
704
794
|
if (type && Type.isMethod(type)) {
|
|
705
|
-
|
|
795
|
+
const methodType = type as Type.Method;
|
|
796
|
+
if (methodType.name === targetName) {
|
|
797
|
+
if (expectedDeclaringType) {
|
|
798
|
+
const declaringTypeName = Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
|
|
799
|
+
if (declaringTypeName === expectedDeclaringType) {
|
|
800
|
+
found = true;
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
}
|
|
706
804
|
}
|
|
707
805
|
return super.visitFieldAccess(fieldAccess, p);
|
|
708
806
|
}
|
|
@@ -710,23 +808,7 @@ export class AddImport<P> extends JavaScriptVisitor<P> {
|
|
|
710
808
|
|
|
711
809
|
await collector.visit(compilationUnit, undefined);
|
|
712
810
|
|
|
713
|
-
|
|
714
|
-
// because the namespace itself is used as an identifier, not individual members.
|
|
715
|
-
// We would need to traverse the AST looking for the alias identifier.
|
|
716
|
-
// For simplicity, we skip the onlyIfReferenced check for namespace imports.
|
|
717
|
-
if (this.member === '*') {
|
|
718
|
-
// TODO: Implement proper namespace usage detection by checking if alias identifier is used
|
|
719
|
-
return true;
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
// Check if our target import is used based on type attribution
|
|
723
|
-
const moduleMembers = usedImports.get(this.module);
|
|
724
|
-
if (!moduleMembers) {
|
|
725
|
-
return false;
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
// For specific members, check if that member is used; otherwise check if any member is used
|
|
729
|
-
return this.member ? moduleMembers.has(this.member) : moduleMembers.size > 0;
|
|
811
|
+
return found;
|
|
730
812
|
}
|
|
731
813
|
|
|
732
814
|
/**
|