diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6fe27e9dca9..5ca786dcd79 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2033,7 +2033,7 @@ namespace ts { ts.forEach(symbolFromSymbolTable.declarations, isExternalModuleImportEqualsDeclaration)) { const resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); - if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) { + if (isAccessible(symbolFromSymbolTable, resolvedImportedSymbol)) { return [symbolFromSymbolTable]; } @@ -3093,8 +3093,8 @@ namespace ts { // Write type arguments of instantiated class/interface here if (flags & SymbolFormatFlags.WriteTypeParametersOrArguments) { if (getCheckFlags(symbol) & CheckFlags.Instantiated) { - buildDisplayForTypeArgumentsAndDelimiters(getTypeParametersOfClassOrInterface(parentSymbol), - (symbol).mapper, writer, enclosingDeclaration); + const params = getTypeParametersOfClassOrInterface(parentSymbol.flags & SymbolFlags.Alias ? resolveAlias(parentSymbol) : parentSymbol); + buildDisplayForTypeArgumentsAndDelimiters(params, (symbol).mapper, writer, enclosingDeclaration); } else { buildTypeParameterDisplayFromSymbol(parentSymbol, writer, enclosingDeclaration); diff --git a/tests/cases/fourslash/quickInfoOnMethodOfImportEquals.ts b/tests/cases/fourslash/quickInfoOnMethodOfImportEquals.ts new file mode 100644 index 00000000000..d4078020add --- /dev/null +++ b/tests/cases/fourslash/quickInfoOnMethodOfImportEquals.ts @@ -0,0 +1,16 @@ +/// + +// Test for https://github.com/Microsoft/TypeScript/issues/15931 + +// @Filename: /a.d.ts +////declare class C { +//// m(): void; +////} +////export = C; + +// @Filename: /b.ts +////import C = require("./a"); +////declare var x: C; +////x./**/m; + +verify.quickInfoAt("", "(method) C.m(): void", undefined);