diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index def08e81758..25b38277991 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -5831,7 +5831,6 @@ namespace ts { if (!name) { parseErrorAtPosition(pos, 0, Diagnostics.Identifier_expected); - return undefined; } let preName: Identifier, postName: Identifier; diff --git a/src/services/services.ts b/src/services/services.ts index 954183907bf..26f64928098 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2989,7 +2989,8 @@ namespace ts { switch (tag.kind) { case SyntaxKind.JSDocTypeTag: case SyntaxKind.JSDocParameterTag: - let tagWithExpression = tag; + case SyntaxKind.JSDocReturnTag: + let tagWithExpression = tag; if (tagWithExpression.typeExpression) { insideJsDocTagExpression = tagWithExpression.typeExpression.pos < position && position < tagWithExpression.typeExpression.end; } diff --git a/tests/cases/fourslash/completionInJsDoc.ts b/tests/cases/fourslash/completionInJsDoc.ts index 493e63ec1b2..5424c8e79fa 100644 --- a/tests/cases/fourslash/completionInJsDoc.ts +++ b/tests/cases/fourslash/completionInJsDoc.ts @@ -22,6 +22,12 @@ //// ////// @pa/*7*/ ////var v7; +//// +/////** @param { n/*8*/ } */ +////var v8; +//// +/////** @return { n/*9*/ } */ +////var v9; goTo.marker('1'); verify.completionListContains("constructor"); @@ -48,3 +54,9 @@ verify.completionListIsEmpty(); goTo.marker('7'); verify.completionListIsEmpty(); +goTo.marker('8'); +verify.completionListContains('number'); + +goTo.marker('9'); +verify.completionListContains('number'); +