TypeScript/tests/cases/fourslash/calledUnionsOfDissimilarTyeshaveGoodDisplay.ts
Wesley Wigham 08022d57c8
Allow calls on unions of dissimilar signatures (#29011)
* Add core of new union signature logic and test - needs intersection signature logic to fully work

* Add inversion of variance for class props lookup from union sig returns

* Fix lints

* Combine parameter names for nicer quick info

* PR feedback 1

* Fix miscopy

* PR feedback round 2

* Remove argument name combining because loc :(

* Nit cleanup round 3

* Reinline getTupleTypeForArgumentAtPos

* Remove a tad more

* No step on sneky off-by-one error
2018-12-19 16:35:01 -08:00

53 lines
1.5 KiB
TypeScript

/// <reference path="fourslash.ts" />
////declare const callableThing1:
//// | ((o1: {x: number}) => void)
//// | ((o1: {y: number}) => void)
//// ;
////
////callableThing1(/*1*/);
////
////declare const callableThing2:
//// | ((o1: {x: number}) => void)
//// | ((o2: {y: number}) => void)
//// ;
////
////callableThing2(/*2*/);
////
////declare const callableThing3:
//// | ((o1: {x: number}) => void)
//// | ((o2: {y: number}) => void)
//// | ((o3: {z: number}) => void)
//// | ((o4: {u: number}) => void)
//// | ((o5: {v: number}) => void)
//// ;
////
////callableThing3(/*3*/);
////
////declare const callableThing4:
//// | ((o1: {x: number}) => void)
//// | ((o2: {y: number}) => void)
//// | ((o3: {z: number}) => void)
//// | ((o4: {u: number}) => void)
//// | ((o5: {v: number}) => void)
//// | ((o6: {w: number}) => void)
//// ;
////
////callableThing4(/*4*/);
verify.signatureHelp({
marker: "1",
text: "callableThing1(o1: { x: number; } & { y: number; }): void"
},
{
marker: "2",
text: "callableThing2(arg0: { x: number; } & { y: number; }): void"
},
{
marker: "3",
text: "callableThing3(arg0: { x: number; } & { y: number; } & { z: number; } & { u: number; } & { v: number; }): void"
},
{
marker: "4",
text: "callableThing4(arg0: { x: number; } & { y: number; } & { z: number; } & { u: number; } & { v: number; } & { w: number; }): void"
});