From 514352352d417ba85508a474f50982d37fa28803 Mon Sep 17 00:00:00 2001 From: Isabel Duan Date: Tue, 2 Sep 2025 11:12:34 -0700 Subject: [PATCH 1/3] fix crash --- internal/ls/autoimports.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/ls/autoimports.go b/internal/ls/autoimports.go index 49128a1895..33964592a6 100644 --- a/internal/ls/autoimports.go +++ b/internal/ls/autoimports.go @@ -859,13 +859,13 @@ func tryUseExistingNamespaceImport(existingImports []*FixAddToExistingImportInfo declaration := existingImport.declaration switch declaration.Kind { case ast.KindVariableDeclaration, ast.KindImportEqualsDeclaration: - if declaration.Kind == ast.KindVariableDeclaration && declaration.Name().Kind != ast.KindIdentifier { + if declaration.Kind == ast.KindVariableDeclaration && (declaration.Name() == nil || declaration.Name().Kind != ast.KindIdentifier) { continue } namespacePrefix = declaration.Name().Text() case ast.KindJSDocImportTag, ast.KindImportDeclaration: importClause := ast.GetImportClauseOfDeclaration(declaration) - if importClause == nil || importClause.NamedBindings.Kind != ast.KindNamespaceImport { + if importClause == nil || importClause.NamedBindings == nil || importClause.NamedBindings.Kind != ast.KindNamespaceImport { continue } namespacePrefix = importClause.NamedBindings.Name().Text() From dd4f2e4e5bba633b5e9da2531edf8b78e41dedd8 Mon Sep 17 00:00:00 2001 From: Isabel Duan Date: Tue, 2 Sep 2025 11:21:36 -0700 Subject: [PATCH 2/3] Update internal/ls/autoimports.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- internal/ls/autoimports.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/ls/autoimports.go b/internal/ls/autoimports.go index 33964592a6..3b38e0d637 100644 --- a/internal/ls/autoimports.go +++ b/internal/ls/autoimports.go @@ -859,10 +859,11 @@ func tryUseExistingNamespaceImport(existingImports []*FixAddToExistingImportInfo declaration := existingImport.declaration switch declaration.Kind { case ast.KindVariableDeclaration, ast.KindImportEqualsDeclaration: - if declaration.Kind == ast.KindVariableDeclaration && (declaration.Name() == nil || declaration.Name().Kind != ast.KindIdentifier) { + name := declaration.Name() + if declaration.Kind == ast.KindVariableDeclaration && (name == nil || name.Kind != ast.KindIdentifier) { continue } - namespacePrefix = declaration.Name().Text() + namespacePrefix = name.Text() case ast.KindJSDocImportTag, ast.KindImportDeclaration: importClause := ast.GetImportClauseOfDeclaration(declaration) if importClause == nil || importClause.NamedBindings == nil || importClause.NamedBindings.Kind != ast.KindNamespaceImport { From f826b63763835d5a10757003cab916cf8d900f44 Mon Sep 17 00:00:00 2001 From: Isabel Duan Date: Tue, 2 Sep 2025 11:26:27 -0700 Subject: [PATCH 3/3] updatefailing --- internal/fourslash/_scripts/failingTests.txt | 1 - .../tests/gen/exportEqualNamespaceClassESModuleInterop_test.go | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/fourslash/_scripts/failingTests.txt b/internal/fourslash/_scripts/failingTests.txt index 54854f47e3..d20990edbd 100644 --- a/internal/fourslash/_scripts/failingTests.txt +++ b/internal/fourslash/_scripts/failingTests.txt @@ -167,7 +167,6 @@ TestDoubleUnderscoreCompletions TestEditJsdocType TestExportDefaultClass TestExportDefaultFunction -TestExportEqualNamespaceClassESModuleInterop TestFindAllReferencesDynamicImport1 TestFindAllReferencesTripleSlash TestFindAllReferencesUmdModuleAsGlobalConst diff --git a/internal/fourslash/tests/gen/exportEqualNamespaceClassESModuleInterop_test.go b/internal/fourslash/tests/gen/exportEqualNamespaceClassESModuleInterop_test.go index 1c3669c741..32f1db0ff0 100644 --- a/internal/fourslash/tests/gen/exportEqualNamespaceClassESModuleInterop_test.go +++ b/internal/fourslash/tests/gen/exportEqualNamespaceClassESModuleInterop_test.go @@ -10,7 +10,7 @@ import ( func TestExportEqualNamespaceClassESModuleInterop(t *testing.T) { t.Parallel() - t.Skip() + defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `// @esModuleInterop: true // @moduleResolution: node