=== tests/cases/conformance/statements/throwStatements/throwStatements.ts === // all legal interface I { >I : Symbol(I, Decl(throwStatements.ts, 0, 0)) id: number; >id : Symbol(id, Decl(throwStatements.ts, 2, 13)) } class C implements I { >C : Symbol(C, Decl(throwStatements.ts, 4, 1)) >I : Symbol(I, Decl(throwStatements.ts, 0, 0)) id: number; >id : Symbol(id, Decl(throwStatements.ts, 6, 22)) } class D{ >D : Symbol(D, Decl(throwStatements.ts, 8, 1)) >T : Symbol(T, Decl(throwStatements.ts, 10, 8)) source: T; >source : Symbol(source, Decl(throwStatements.ts, 10, 11)) >T : Symbol(T, Decl(throwStatements.ts, 10, 8)) recurse: D; >recurse : Symbol(recurse, Decl(throwStatements.ts, 11, 14)) >D : Symbol(D, Decl(throwStatements.ts, 8, 1)) >T : Symbol(T, Decl(throwStatements.ts, 10, 8)) wrapped: D> >wrapped : Symbol(wrapped, Decl(throwStatements.ts, 12, 18)) >D : Symbol(D, Decl(throwStatements.ts, 8, 1)) >D : Symbol(D, Decl(throwStatements.ts, 8, 1)) >T : Symbol(T, Decl(throwStatements.ts, 10, 8)) } function F(x: string): number { return 42; } >F : Symbol(F, Decl(throwStatements.ts, 14, 1)) >x : Symbol(x, Decl(throwStatements.ts, 16, 11)) module M { >M : Symbol(M, Decl(throwStatements.ts, 16, 44)) export class A { >A : Symbol(A, Decl(throwStatements.ts, 18, 10)) name: string; >name : Symbol(name, Decl(throwStatements.ts, 19, 20)) } export function F2(x: number): string { return x.toString(); } >F2 : Symbol(F2, Decl(throwStatements.ts, 21, 5)) >x : Symbol(x, Decl(throwStatements.ts, 23, 23)) >x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) >x : Symbol(x, Decl(throwStatements.ts, 23, 23)) >toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) } var aNumber = 9.9; >aNumber : Symbol(aNumber, Decl(throwStatements.ts, 26, 3)) throw aNumber; >aNumber : Symbol(aNumber, Decl(throwStatements.ts, 26, 3)) var aString = 'this is a string'; >aString : Symbol(aString, Decl(throwStatements.ts, 28, 3)) throw aString; >aString : Symbol(aString, Decl(throwStatements.ts, 28, 3)) var aDate = new Date(12); >aDate : Symbol(aDate, Decl(throwStatements.ts, 30, 3)) >Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) throw aDate; >aDate : Symbol(aDate, Decl(throwStatements.ts, 30, 3)) var anObject = new Object(); >anObject : Symbol(anObject, Decl(throwStatements.ts, 32, 3)) >Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) throw anObject; >anObject : Symbol(anObject, Decl(throwStatements.ts, 32, 3)) var anAny = null; >anAny : Symbol(anAny, Decl(throwStatements.ts, 35, 3)) throw anAny; >anAny : Symbol(anAny, Decl(throwStatements.ts, 35, 3)) var anOtherAny = new C(); >anOtherAny : Symbol(anOtherAny, Decl(throwStatements.ts, 37, 3)) >C : Symbol(C, Decl(throwStatements.ts, 4, 1)) throw anOtherAny; >anOtherAny : Symbol(anOtherAny, Decl(throwStatements.ts, 37, 3)) var anUndefined = undefined; >anUndefined : Symbol(anUndefined, Decl(throwStatements.ts, 39, 3)) >undefined : Symbol(undefined) throw anUndefined; >anUndefined : Symbol(anUndefined, Decl(throwStatements.ts, 39, 3)) var aClass = new C(); >aClass : Symbol(aClass, Decl(throwStatements.ts, 42, 3)) >C : Symbol(C, Decl(throwStatements.ts, 4, 1)) throw aClass; >aClass : Symbol(aClass, Decl(throwStatements.ts, 42, 3)) var aGenericClass = new D(); >aGenericClass : Symbol(aGenericClass, Decl(throwStatements.ts, 44, 3)) >D : Symbol(D, Decl(throwStatements.ts, 8, 1)) throw aGenericClass; >aGenericClass : Symbol(aGenericClass, Decl(throwStatements.ts, 44, 3)) var anObjectLiteral = { id: 12 }; >anObjectLiteral : Symbol(anObjectLiteral, Decl(throwStatements.ts, 46, 3)) >id : Symbol(id, Decl(throwStatements.ts, 46, 23)) throw anObjectLiteral; >anObjectLiteral : Symbol(anObjectLiteral, Decl(throwStatements.ts, 46, 3)) var aFunction = F; >aFunction : Symbol(aFunction, Decl(throwStatements.ts, 49, 3)) >F : Symbol(F, Decl(throwStatements.ts, 14, 1)) throw aFunction; >aFunction : Symbol(aFunction, Decl(throwStatements.ts, 49, 3)) throw aFunction(''); >aFunction : Symbol(aFunction, Decl(throwStatements.ts, 49, 3)) var aLambda = (x) => 2; >aLambda : Symbol(aLambda, Decl(throwStatements.ts, 52, 3)) >x : Symbol(x, Decl(throwStatements.ts, 52, 15)) throw aLambda; >aLambda : Symbol(aLambda, Decl(throwStatements.ts, 52, 3)) throw aLambda(1); >aLambda : Symbol(aLambda, Decl(throwStatements.ts, 52, 3)) var aModule = M; >aModule : Symbol(aModule, Decl(throwStatements.ts, 56, 3)) >M : Symbol(M, Decl(throwStatements.ts, 16, 44)) throw aModule; >aModule : Symbol(aModule, Decl(throwStatements.ts, 56, 3)) throw typeof M; >M : Symbol(M, Decl(throwStatements.ts, 16, 44)) var aClassInModule = new M.A(); >aClassInModule : Symbol(aClassInModule, Decl(throwStatements.ts, 59, 3)) >M.A : Symbol(M.A, Decl(throwStatements.ts, 18, 10)) >M : Symbol(M, Decl(throwStatements.ts, 16, 44)) >A : Symbol(M.A, Decl(throwStatements.ts, 18, 10)) throw aClassInModule; >aClassInModule : Symbol(aClassInModule, Decl(throwStatements.ts, 59, 3)) var aFunctionInModule = M.F2; >aFunctionInModule : Symbol(aFunctionInModule, Decl(throwStatements.ts, 61, 3)) >M.F2 : Symbol(M.F2, Decl(throwStatements.ts, 21, 5)) >M : Symbol(M, Decl(throwStatements.ts, 16, 44)) >F2 : Symbol(M.F2, Decl(throwStatements.ts, 21, 5)) throw aFunctionInModule; >aFunctionInModule : Symbol(aFunctionInModule, Decl(throwStatements.ts, 61, 3)) // no initializer or annotation, so this is an 'any' var x; >x : Symbol(x, Decl(throwStatements.ts, 65, 3)) throw x; >x : Symbol(x, Decl(throwStatements.ts, 65, 3)) // literals throw 0.0; throw false; throw null; throw undefined; >undefined : Symbol(undefined) throw 'a string'; throw function () { return 'a string' }; throw (x:T) => 42; >T : Symbol(T, Decl(throwStatements.ts, 75, 7)) >x : Symbol(x, Decl(throwStatements.ts, 75, 10)) >T : Symbol(T, Decl(throwStatements.ts, 75, 7)) throw { x: 12, y: 13 }; >x : Symbol(x, Decl(throwStatements.ts, 76, 7)) >y : Symbol(y, Decl(throwStatements.ts, 76, 14)) throw []; throw ['a', ['b']]; throw /[a-z]/; throw new Date(); >Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) throw new C(); >C : Symbol(C, Decl(throwStatements.ts, 4, 1)) throw new Object(); >Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) throw new D(); >D : Symbol(D, Decl(throwStatements.ts, 8, 1))