2016-08-22 22:57:40 +02:00
|
|
|
/// <reference path='fourslash.ts'/>
|
|
|
|
|
|
|
|
// Should not return implementations in classes with a shared parent that implements the interface
|
|
|
|
|
|
|
|
//// interface Foo {
|
|
|
|
//// hello (): void;
|
|
|
|
//// }
|
|
|
|
////
|
|
|
|
//// class SuperBar implements Foo {
|
2018-05-31 22:32:02 +02:00
|
|
|
//// [|hello|]() {}
|
2016-08-22 22:57:40 +02:00
|
|
|
//// }
|
|
|
|
////
|
|
|
|
//// class Bar extends SuperBar {
|
|
|
|
//// hello2() {}
|
|
|
|
//// }
|
|
|
|
////
|
|
|
|
//// class OtherBar extends SuperBar {
|
2016-08-30 00:46:26 +02:00
|
|
|
//// hello() {}
|
2016-08-22 22:57:40 +02:00
|
|
|
//// hello2() {}
|
|
|
|
//// hello3() {}
|
|
|
|
//// }
|
|
|
|
////
|
|
|
|
//// class NotRelatedToBar {
|
|
|
|
//// hello() {} // Equivalent to last case, but shares no common ancestors with Bar and so is not returned
|
|
|
|
//// hello2() {}
|
|
|
|
//// hello3() {}
|
|
|
|
//// }
|
|
|
|
////
|
|
|
|
//// class NotBar extends SuperBar {
|
|
|
|
//// hello() {} // Should not be returned because it is not structurally equivalent to Bar
|
|
|
|
//// }
|
|
|
|
////
|
|
|
|
//// function whatever(x: Bar) {
|
|
|
|
//// x.he/*function_call*/llo()
|
|
|
|
//// }
|
|
|
|
|
2016-09-14 02:33:49 +02:00
|
|
|
verify.allRangesAppearInImplementationList("function_call");
|