Skip to content

Commit

Permalink
fix(61167): Incorrect "Import may be converted to a default import" a…
Browse files Browse the repository at this point in the history
…utofix for import export (#61171)
  • Loading branch information
a-tarasyuk authored Feb 21, 2025
1 parent 2bed7fe commit 1cd8e20
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
4 changes: 4 additions & 0 deletions src/services/suggestionDiagnostics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import {
getFunctionFlags,
hasInitializer,
hasPropertyAccessExpressionWithName,
hasSyntacticModifier,
Identifier,
importFromModuleSpecifier,
isAsyncFunction,
Expand All @@ -36,6 +37,7 @@ import {
isFunctionExpression,
isFunctionLike,
isIdentifier,
isImportEqualsDeclaration,
isPropertyAccessExpression,
isRequireCall,
isReturnStatement,
Expand All @@ -44,6 +46,7 @@ import {
isVariableDeclaration,
isVariableStatement,
MethodDeclaration,
ModifierFlags,
ModuleKind,
Node,
NodeFlags,
Expand Down Expand Up @@ -85,6 +88,7 @@ export function computeSuggestionDiagnostics(sourceFile: SourceFile, program: Pr
if (getAllowSyntheticDefaultImports(program.getCompilerOptions())) {
for (const moduleSpecifier of sourceFile.imports) {
const importNode = importFromModuleSpecifier(moduleSpecifier);
if (isImportEqualsDeclaration(importNode) && hasSyntacticModifier(importNode, ModifierFlags.Export)) continue;
const name = importNameForConvertToDefaultImport(importNode);
if (!name) continue;
const module = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)?.resolvedModule;
Expand Down
5 changes: 4 additions & 1 deletion tests/cases/fourslash/codeFixUseDefaultImport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
////import * as n from "./non-existant";
////n;

// @Filename: /f.ts
////export import [|foo|] = require("./a");

for (const file of ["/b.ts", "/c.ts"]) {
goTo.file(file);

Expand All @@ -38,7 +41,7 @@ a;`,
});
}

for (const file of ["/d.ts", "/e.ts"]) {
for (const file of ["/d.ts", "/e.ts", "/f.ts"]) {
goTo.file(file);
verify.getSuggestionDiagnostics([]);
}

0 comments on commit 1cd8e20

Please sign in to comment.