From 1102f29c5e6929efef3f1d4d4fc7465f77daff7f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 31 Aug 2026 15:48:34 +0000 Subject: [PATCH 1/2] Initial plan From 97542cca257d25492406997fcff9b83dcfb982e5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 31 Aug 2026 15:55:50 +0000 Subject: [PATCH 2/2] Fix auto-import barrel prefix ranking Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@users.noreply.github.com> --- .../autoImportIndexReExportPrefix_test.go | 26 +++++++++++++++++++ tsc/internal/ls/autoimport/fix.go | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 tsc/internal/fourslash/tests/autoImportIndexReExportPrefix_test.go diff --git a/tsc/internal/fourslash/tests/autoImportIndexReExportPrefix_test.go b/tsc/internal/fourslash/tests/autoImportIndexReExportPrefix_test.go new file mode 100644 index 0000000000000..c0934f80dc42d --- /dev/null +++ b/tsc/internal/fourslash/tests/autoImportIndexReExportPrefix_test.go @@ -0,0 +1,26 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/TypeScript/tsc/internal/fourslash" + "github.com/microsoft/TypeScript/tsc/internal/ls/lsutil" + "github.com/microsoft/TypeScript/tsc/internal/testutil" +) + +func TestAutoImportIndexReExportPrefix(t *testing.T) { + t.Parallel() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `// @module: nodenext +// @Filename: /package.json +{ "type": "module" } +// @Filename: /utils/sum/index.ts +export { sum } from "./sum.js"; +// @Filename: /utils/sum/sum.ts +export const sum = 0; +// @Filename: /utils/sumAB.ts +sum/**/` + f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) + defer done() + f.VerifyImportFixModuleSpecifiers(t, "", []string{"./sum/index.js", "./sum/sum.js"}, &lsutil.UserPreferences{ImportModuleSpecifierEnding: "js"}) +} diff --git a/tsc/internal/ls/autoimport/fix.go b/tsc/internal/ls/autoimport/fix.go index a035f305eaf1d..c8315b2fe3511 100644 --- a/tsc/internal/ls/autoimport/fix.go +++ b/tsc/internal/ls/autoimport/fix.go @@ -1097,7 +1097,7 @@ func (v *View) compareNodeCoreModuleSpecifiers(a, b string, importingFile *ast.S func isFixPossiblyReExportingImportingFile(fix *Fix, importingFileName string) bool { if fix.IsReExport && isIndexFileName(fix.ModuleFileName) { reExportDir := tspath.GetDirectoryPath(fix.ModuleFileName) - return strings.HasPrefix(importingFileName, reExportDir) + return strings.HasPrefix(importingFileName, tspath.EnsureTrailingDirectorySeparator(reExportDir)) } return false }