diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 119b60f71cf..28a22a00c8c 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1587,7 +1587,6 @@ module ts { case SyntaxKind.IndexSignature: case SyntaxKind.Parameter: case SyntaxKind.ModuleBlock: - case SyntaxKind.TypeParameter: case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: case SyntaxKind.TypeLiteral: @@ -1597,7 +1596,9 @@ module ts { case SyntaxKind.UnionType: case SyntaxKind.ParenthesizedType: return isDeclarationVisible(node.parent); - + + // Type parameters are always visible + case SyntaxKind.TypeParameter: // Source file is always visible case SyntaxKind.SourceFile: return true; diff --git a/tests/baselines/reference/visibilityOfTypeParameters.js b/tests/baselines/reference/visibilityOfTypeParameters.js new file mode 100644 index 00000000000..2cb006737b2 --- /dev/null +++ b/tests/baselines/reference/visibilityOfTypeParameters.js @@ -0,0 +1,24 @@ +//// [visibilityOfTypeParameters.ts] + +export class MyClass { + protected myMethod(val: T): T { + return val; + } +} + +//// [visibilityOfTypeParameters.js] +var MyClass = (function () { + function MyClass() { + } + MyClass.prototype.myMethod = function (val) { + return val; + }; + return MyClass; +})(); +exports.MyClass = MyClass; + + +//// [visibilityOfTypeParameters.d.ts] +export declare class MyClass { + protected myMethod(val: T): T; +} diff --git a/tests/baselines/reference/visibilityOfTypeParameters.types b/tests/baselines/reference/visibilityOfTypeParameters.types new file mode 100644 index 00000000000..60a9330eb7e --- /dev/null +++ b/tests/baselines/reference/visibilityOfTypeParameters.types @@ -0,0 +1,16 @@ +=== tests/cases/compiler/visibilityOfTypeParameters.ts === + +export class MyClass { +>MyClass : MyClass + + protected myMethod(val: T): T { +>myMethod : (val: T) => T +>T : T +>val : T +>T : T +>T : T + + return val; +>val : T + } +} diff --git a/tests/cases/compiler/visibilityOfTypeParameters.ts b/tests/cases/compiler/visibilityOfTypeParameters.ts new file mode 100644 index 00000000000..386d0bb9cb4 --- /dev/null +++ b/tests/cases/compiler/visibilityOfTypeParameters.ts @@ -0,0 +1,8 @@ +// @module:commonjs +//@declaration: true + +export class MyClass { + protected myMethod(val: T): T { + return val; + } +} \ No newline at end of file