Skip to content

Commit 1cd8e20

Browse files
authored
fix(61167): Incorrect "Import may be converted to a default import" autofix for import export (#61171)
1 parent 2bed7fe commit 1cd8e20

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/services/suggestionDiagnostics.ts

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {
2525
getFunctionFlags,
2626
hasInitializer,
2727
hasPropertyAccessExpressionWithName,
28+
hasSyntacticModifier,
2829
Identifier,
2930
importFromModuleSpecifier,
3031
isAsyncFunction,
@@ -36,6 +37,7 @@ import {
3637
isFunctionExpression,
3738
isFunctionLike,
3839
isIdentifier,
40+
isImportEqualsDeclaration,
3941
isPropertyAccessExpression,
4042
isRequireCall,
4143
isReturnStatement,
@@ -44,6 +46,7 @@ import {
4446
isVariableDeclaration,
4547
isVariableStatement,
4648
MethodDeclaration,
49+
ModifierFlags,
4750
ModuleKind,
4851
Node,
4952
NodeFlags,
@@ -85,6 +88,7 @@ export function computeSuggestionDiagnostics(sourceFile: SourceFile, program: Pr
8588
if (getAllowSyntheticDefaultImports(program.getCompilerOptions())) {
8689
for (const moduleSpecifier of sourceFile.imports) {
8790
const importNode = importFromModuleSpecifier(moduleSpecifier);
91+
if (isImportEqualsDeclaration(importNode) && hasSyntacticModifier(importNode, ModifierFlags.Export)) continue;
8892
const name = importNameForConvertToDefaultImport(importNode);
8993
if (!name) continue;
9094
const module = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)?.resolvedModule;

tests/cases/fourslash/codeFixUseDefaultImport.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
////import * as n from "./non-existant";
2222
////n;
2323

24+
// @Filename: /f.ts
25+
////export import [|foo|] = require("./a");
26+
2427
for (const file of ["/b.ts", "/c.ts"]) {
2528
goTo.file(file);
2629

@@ -38,7 +41,7 @@ a;`,
3841
});
3942
}
4043

41-
for (const file of ["/d.ts", "/e.ts"]) {
44+
for (const file of ["/d.ts", "/e.ts", "/f.ts"]) {
4245
goTo.file(file);
4346
verify.getSuggestionDiagnostics([]);
4447
}

0 commit comments

Comments
 (0)