@openrewrite/rewrite 8.67.0 → 8.68.0-20251120-111402

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,EAAC,CAAC,EAA+D,MAAM,SAAS,CAAC;AACxF,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAK1B,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;IAyExC;;OAEG;YACW,iBAAiB;IAuB/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmFxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;OAEG;YACW,yBAAyB;IAsEvC;;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"}
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
- ...namedImports.elements.elements,
386
- (0, java_1.rightPadded)(newSpecifier, java_1.emptySpace)
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
- // Use type attribution to detect if the identifier is referenced
564
- // Map of module name -> Set of member names used from that module
565
- const usedImports = new Map();
566
- // Helper to record usage of a method from a module
567
- const recordMethodUsage = (methodType) => {
568
- const moduleName = java_1.Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
569
- if (moduleName) {
570
- if (!usedImports.has(moduleName)) {
571
- usedImports.set(moduleName, new Set());
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
- // Create a visitor to collect used identifiers with their type attribution
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
- const type = identifier.type;
584
- if (type && java_1.Type.isMethod(type)) {
585
- recordMethodUsage(type);
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
- recordMethodUsage(methodInvocation.methodType);
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
- recordMethodUsage(functionCall.methodType);
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
- recordMethodUsage(type);
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
- // For namespace imports (member === '*'), we cannot use type attribution to detect usage
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.67.0
1
+ 8.68.0-20251120-111402
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.67.0",
3
+ "version": "8.68.0-20251120-111402",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -1,9 +1,8 @@
1
1
  import {JavaScriptVisitor} from "./visitor";
2
- import {J, emptySpace, rightPadded, space, Statement, singleSpace, Type} from "../java";
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
- ...namedImports.elements.elements,
464
- rightPadded(newSpecifier, emptySpace)
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
- // Use type attribution to detect if the identifier is referenced
664
- // Map of module name -> Set of member names used from that module
665
- const usedImports = new Map<string, Set<string>>();
666
-
667
- // Helper to record usage of a method from a module
668
- const recordMethodUsage = (methodType: Type.Method) => {
669
- const moduleName = Type.FullyQualified.getFullyQualifiedName(methodType.declaringType);
670
- if (moduleName) {
671
- if (!usedImports.has(moduleName)) {
672
- usedImports.set(moduleName, new Set());
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
- const type = identifier.type;
682
- if (type && Type.isMethod(type)) {
683
- recordMethodUsage(type as Type.Method);
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
- recordMethodUsage(methodInvocation.methodType);
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
- recordMethodUsage(functionCall.methodType);
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
- recordMethodUsage(type as Type.Method);
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
- // For namespace imports (member === '*'), we cannot use type attribution to detect usage
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
  /**