Add regression tests

This commit is contained in:
Anders Hejlsberg
2019-05-30 14:40:03 -07:00
parent b75a90e95a
commit 2b36fdd08b

View File

@@ -182,3 +182,22 @@ enum State { A, B }
type Foo = { state: State }
declare function bar<T>(f: () => T[]): T[];
let x: Foo[] = bar(() => !!true ? [{ state: State.A }] : [{ state: State.B }]); // Error
// Repros from #31443
enum Enum { A, B }
class ClassWithConvert<T> {
constructor(val: T) { }
convert(converter: { to: (v: T) => T; }) { }
}
function fn<T>(arg: ClassWithConvert<T>, f: () => ClassWithConvert<T>) { }
fn(new ClassWithConvert(Enum.A), () => new ClassWithConvert(Enum.A));
type Func<T> = (x: T) => T;
declare function makeFoo<T>(x: T): Func<T>;
declare function baz<U>(x: Func<U>, y: Func<U>): void;
baz(makeFoo(Enum.A), makeFoo(Enum.A));