Skip to content

Commit 4369d54

Browse files
authored
Use external aliases in quickinfo and signature help return types (#24391) (#24395)
* Dont include import types in quick info type names * Add UseAliasDefinedOutsideCurrentScope flag to LS operations which were missing it
1 parent 30415cd commit 4369d54

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

src/compiler/checker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2980,7 +2980,7 @@ namespace ts {
29802980
}
29812981
}
29822982

2983-
function typeToString(type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.AllowUniqueESSymbolType, writer: EmitTextWriter = createTextWriter("")): string {
2983+
function typeToString(type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.AllowUniqueESSymbolType | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer: EmitTextWriter = createTextWriter("")): string {
29842984
const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors, writer);
29852985
Debug.assert(typeNode !== undefined, "should always get typenode");
29862986
const options = { removeComments: true };
@@ -3927,7 +3927,7 @@ namespace ts {
39273927
}
39283928
}
39293929

3930-
function typePredicateToString(typePredicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags, writer?: EmitTextWriter): string {
3930+
function typePredicateToString(typePredicate: TypePredicate, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer?: EmitTextWriter): string {
39313931
return writer ? typePredicateToStringWorker(writer).getText() : usingSingleLineStringWriter(typePredicateToStringWorker);
39323932

39333933
function typePredicateToStringWorker(writer: EmitTextWriter) {

src/services/utilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1461,7 +1461,7 @@ namespace ts {
14611461

14621462
export function typeToDisplayParts(typechecker: TypeChecker, type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): SymbolDisplayPart[] {
14631463
return mapToDisplayParts(writer => {
1464-
typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals, writer);
1464+
typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer);
14651465
});
14661466
}
14671467

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @Filename: b.ts
4+
////export interface B {}
5+
////export function foob(): {
6+
//// x: B,
7+
//// y: B
8+
////} {
9+
//// return null as any;
10+
////}
11+
// @Filename: a.ts
12+
////import { foob } from "./b";
13+
////const thing/*1*/ = foob(/*2*/);
14+
15+
verify.quickInfoAt("1", "const thing: {\n x: B;\n y: B;\n}");
16+
verify.signatureHelp({
17+
marker: "2",
18+
text: "foob(): { x: B; y: B; }"
19+
});

0 commit comments

Comments
 (0)