=== tests/cases/compiler/declFileTypeAnnotationTypeReference.ts === class c { >c : c } module m { >m : typeof m export class c { >c : c } export class g { >g : g >T : T } } class g { >g : g >T : T } // Just the name function foo(): c { >foo : () => c >c : c return new c(); >new c() : c >c : typeof c } function foo2() { >foo2 : () => c return new c(); >new c() : c >c : typeof c } // Qualified name function foo3(): m.c { >foo3 : () => m.c >m : any >c : m.c return new m.c(); >new m.c() : m.c >m.c : typeof m.c >m : typeof m >c : typeof m.c } function foo4() { >foo4 : () => m.c return new m.c(); >new m.c() : m.c >m.c : typeof m.c >m : typeof m >c : typeof m.c } // Just the name with type arguments function foo5(): g { >foo5 : () => g >g : g return new g(); >new g() : g >g : typeof g } function foo6() { >foo6 : () => g return new g(); >new g() : g >g : typeof g } // Qualified name with type arguments function foo7(): m.g { >foo7 : () => m.g >m : any >g : m.g return new m.g(); >new m.g() : m.g >m.g : typeof m.g >m : typeof m >g : typeof m.g } function foo8() { >foo8 : () => m.g return new m.g(); >new m.g() : m.g >m.g : typeof m.g >m : typeof m >g : typeof m.g }