diff --git a/src/services/completions.ts b/src/services/completions.ts index 989aff628bd..88cee321e10 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -1464,7 +1464,7 @@ namespace ts.Completions { function filterGlobalCompletion(symbols: Symbol[]): void { const isTypeOnly = isTypeOnlyCompletion(); if (isTypeOnly) { - keywordFilters = isTypeAssertion() + keywordFilters = contextToken && isAssertionExpression(contextToken.parent) ? KeywordCompletionFilters.TypeAssertionKeywords : KeywordCompletionFilters.TypeKeywords; } @@ -1494,10 +1494,6 @@ namespace ts.Completions { }); } - function isTypeAssertion(): boolean { - return isAssertionExpression(contextToken.parent); - } - function isTypeOnlyCompletion(): boolean { return insideJsDocTagTypeExpression || !isContextTokenValueLocation(contextToken) && diff --git a/tests/cases/fourslash/completionJSDocNamePath.ts b/tests/cases/fourslash/completionJSDocNamePath.ts new file mode 100644 index 00000000000..e15f70eaa47 --- /dev/null +++ b/tests/cases/fourslash/completionJSDocNamePath.ts @@ -0,0 +1,15 @@ +// @noLib: true + +/// + +// fix crash from #38407 + +//// /** +//// * @returns {modu/*1*/le:ControlFlow} +//// */ +//// export function cargo() { +//// } + +goTo.marker('1'); +verify.completions({ marker: "1", excludes: ["module", "ControlFlow"] }); +