///
/////*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);");