/// /////*inClassDeclaration*/class Foo < T1 , T2 > { /////*inMethodDeclaration*/ public method < T3, T4 > ( a: T1, b: Array < T4 > ): Map < T1 , T2, Array < T3 > > { //// } ////} /////*typeArguments*/var foo = new Foo < number, Array < number > > ( ); //// ////interface IFoo { /////*inNewSignature*/new < T > ( a: T); /////*inOptionalMethodSignature*/op?< T , M > (a: T, b : M ); ////} //// ////foo()(); ////(a + b)(); format.document(); goTo.marker("inClassDeclaration"); verify.currentLineContentIs("class Foo {"); goTo.marker("inMethodDeclaration"); verify.currentLineContentIs(" public method(a: T1, b: Array): Map> {"); goTo.marker("typeArguments"); verify.currentLineContentIs("var foo = new Foo>();"); goTo.marker("inNewSignature"); verify.currentLineContentIs(" new (a: T);"); goTo.marker("inOptionalMethodSignature"); verify.currentLineContentIs(" op? (a: T, b: M);");