@@ -525,6 +525,7 @@ namespace ts.Completions {
525525 symbolToOriginInfoMap : SymbolOriginInfoMap ;
526526 previousToken : Node | undefined ;
527527 readonly isJsxInitializer : IsJsxInitializer ;
528+ readonly isTypeOnlyLocation : boolean ;
528529 }
529530 function getSymbolCompletionFromEntryId (
530531 program : Program ,
@@ -543,7 +544,7 @@ namespace ts.Completions {
543544 return { type : "request" , request : completionData } ;
544545 }
545546
546- const { symbols, literals, location, completionKind, symbolToOriginInfoMap, previousToken, isJsxInitializer } = completionData ;
547+ const { symbols, literals, location, completionKind, symbolToOriginInfoMap, previousToken, isJsxInitializer, isTypeOnlyLocation } = completionData ;
547548
548549 const literal = find ( literals , l => completionNameForLiteral ( l ) === entryId . name ) ;
549550 if ( literal !== undefined ) return { type : "literal" , literal } ;
@@ -556,7 +557,7 @@ namespace ts.Completions {
556557 const origin = symbolToOriginInfoMap [ getSymbolId ( symbol ) ] ;
557558 const info = getCompletionEntryDisplayNameForSymbol ( symbol , compilerOptions . target ! , origin , completionKind ) ;
558559 return info && info . name === entryId . name && getSourceFromOrigin ( origin ) === entryId . source
559- ? { type : "symbol" as const , symbol, location, symbolToOriginInfoMap, previousToken, isJsxInitializer }
560+ ? { type : "symbol" as const , symbol, location, symbolToOriginInfoMap, previousToken, isJsxInitializer, isTypeOnlyLocation }
560561 : undefined ;
561562 } ) || { type : "none" } ;
562563 }
@@ -714,6 +715,7 @@ namespace ts.Completions {
714715 readonly isJsxInitializer : IsJsxInitializer ;
715716 readonly insideJsDocTagTypeExpression : boolean ;
716717 readonly symbolToSortTextMap : SymbolSortTextMap ;
718+ readonly isTypeOnlyLocation : boolean ;
717719 }
718720 type Request = { readonly kind : CompletionDataKind . JsDocTagName | CompletionDataKind . JsDocTag } | { readonly kind : CompletionDataKind . JsDocParameterName , tag : JSDocParameterTag } ;
719721
@@ -1012,6 +1014,7 @@ namespace ts.Completions {
10121014 const symbolToOriginInfoMap : SymbolOriginInfoMap = [ ] ;
10131015 const symbolToSortTextMap : SymbolSortTextMap = [ ] ;
10141016 const importSuggestionsCache = host . getImportSuggestionsCache && host . getImportSuggestionsCache ( ) ;
1017+ const isTypeOnly = isTypeOnlyCompletion ( ) ;
10151018
10161019 if ( isRightOfDot || isRightOfQuestionDot ) {
10171020 getTypeScriptMemberSymbols ( ) ;
@@ -1061,7 +1064,8 @@ namespace ts.Completions {
10611064 previousToken,
10621065 isJsxInitializer,
10631066 insideJsDocTagTypeExpression,
1064- symbolToSortTextMap
1067+ symbolToSortTextMap,
1068+ isTypeOnlyLocation : isTypeOnly
10651069 } ;
10661070
10671071 type JSDocTagWithTypeExpression = JSDocParameterTag | JSDocPropertyTag | JSDocReturnTag | JSDocTypeTag | JSDocTypedefTag ;
@@ -1329,7 +1333,6 @@ namespace ts.Completions {
13291333 const scopeNode = getScopeNode ( contextToken , adjustedPosition , sourceFile ) || sourceFile ;
13301334 isInSnippetScope = isSnippetScope ( scopeNode ) ;
13311335
1332- const isTypeOnly = isTypeOnlyCompletion ( ) ;
13331336 const symbolMeanings = ( isTypeOnly ? SymbolFlags . None : SymbolFlags . Value ) | SymbolFlags . Type | SymbolFlags . Namespace | SymbolFlags . Alias ;
13341337
13351338 symbols = Debug . assertEachDefined ( typeChecker . getSymbolsInScope ( scopeNode , symbolMeanings ) , "getSymbolsInScope() should all be defined" ) ;
0 commit comments