///
////class A { }
////class B {/*B*/ }
////class C { /*C*/constructor(val: T) { } }
////class D { constructor(/*D*/val: T) { } }
////
////new /*Asig*/A();
////new /*Bsig*/B("");
////new /*Csig*/C("");
////new /*Dsig*/D();
var A = 'A';
var B = 'B';
var C = 'C';
var D = 'D'
goTo.marker(B);
edit.insert('constructor(val: T) { }');
goTo.marker('Asig');
verify.quickInfoIs("(constructor) A(): A");
goTo.marker('Bsig');
verify.quickInfoIs("(constructor) B(val: string): B");
goTo.marker('Csig');
verify.quickInfoIs("(constructor) C(val: string): C");
goTo.marker('Dsig');
verify.quickInfoIs("(constructor) D(val: T): D"); // Cannot resolve signature
goTo.marker(C);
edit.deleteAtCaret('constructor(val: T) { }'.length);
goTo.marker('Asig');
verify.quickInfoIs("(constructor) A(): A");
goTo.marker('Bsig');
verify.quickInfoIs("(constructor) B(val: string): B");
goTo.marker('Csig');
verify.quickInfoIs("(constructor) C(): C"); // Cannot resolve signature
goTo.marker('Dsig');
verify.quickInfoIs("(constructor) D(val: T): D"); // Cannot resolve signature
goTo.marker(D);
edit.deleteAtCaret("val: T".length);
goTo.marker('Asig');
verify.quickInfoIs("(constructor) A(): A");
goTo.marker('Bsig');
verify.quickInfoIs("(constructor) B(val: string): B");
goTo.marker('Csig');
verify.quickInfoIs("(constructor) C(): C"); // Cannot resolve signature
goTo.marker('Dsig');
verify.quickInfoIs("(constructor) D(): D");