Accepted baselines.

This commit is contained in:
Daniel Rosenwasser 2015-10-01 16:47:31 -07:00
parent dc0e368f82
commit 8891fba149
3 changed files with 74 additions and 199 deletions

View File

@ -14,69 +14,29 @@ tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes0
Type 'string' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(48,30): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello" | "World"'.
Type 'string' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(54,20): error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(54,20): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(55,20): error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(55,20): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(56,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(56,34): error TS1134: Variable declaration expected.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(57,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(57,34): error TS1134: Variable declaration expected.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(58,20): error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(58,20): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(61,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(62,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(63,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(64,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(65,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(68,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(69,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(70,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(71,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(72,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(75,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(76,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(77,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(78,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(79,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(86,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(86,34): error TS1134: Variable declaration expected.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(87,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(87,34): error TS1134: Variable declaration expected.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(88,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(88,34): error TS1134: Variable declaration expected.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(89,20): error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(89,34): error TS1134: Variable declaration expected.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(90,20): error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(90,20): error TS2447: The '|' operator is not allowed for boolean types. Consider using '||' instead.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(93,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(94,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(95,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(96,26): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(97,26): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(100,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(101,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(102,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(103,25): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(104,25): error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(107,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(108,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(109,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(110,30): error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
Type 'boolean' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(111,30): error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello" | "World"'.
Type 'number' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(55,34): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(57,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(58,34): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(61,5): error TS2322: Type 'string' is not assignable to type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(63,5): error TS2322: Type 'string' is not assignable to type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(75,5): error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
Type '"World"' is not assignable to type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(77,5): error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
Type '"World"' is not assignable to type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(87,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(88,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(89,43): error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(93,5): error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
Type 'string' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(97,5): error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
Type 'string' is not assignable to type '"World"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(100,25): error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
Type '"World"' is not assignable to type '"Hello"'.
tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts(104,25): error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
Type '"World"' is not assignable to type '"Hello"'.
==== tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts (61 errors) ====
==== tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes01.ts (25 errors) ====
declare function randBool(): boolean;
declare function takeReturnString(str: string): string;
@ -158,86 +118,47 @@ tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes0
// The following (regardless of errors) should come back typed
// as "Hello" (or "Hello" | "Hello").
export let a = fun1<"Hello">("Hello", "Hello");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
export let b = fun1<"Hello">("Hello", "World");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T>(x: T, y: T) => T' and 'string'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
export let c = fun2<"Hello", "Hello">("Hello", "Hello");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
~~~~~~~
!!! error TS1134: Variable declaration expected.
export let d = fun2<"Hello", "Hello">("Hello", "World");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
~~~~~~~
!!! error TS1134: Variable declaration expected.
~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
export let e = fun3<"Hello">("Hello", "World");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
// Assignment from the returned value should cause an error.
a = takeReturnString(a);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
~
!!! error TS2322: Type 'string' is not assignable to type '"Hello"'.
b = takeReturnString(b);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
c = takeReturnString(c);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
~
!!! error TS2322: Type 'string' is not assignable to type '"Hello"'.
d = takeReturnString(d);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
e = takeReturnString(e);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
// Should be valid
a = takeReturnHello(a);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
b = takeReturnHello(b);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
c = takeReturnHello(c);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
d = takeReturnHello(d);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
e = takeReturnHello(e);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
// Assignment from the returned value should cause an error.
a = takeReturnHelloWorld(a);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
~
!!! error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
!!! error TS2322: Type '"World"' is not assignable to type '"Hello"'.
b = takeReturnHelloWorld(b);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
c = takeReturnHelloWorld(c);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
~
!!! error TS2322: Type '"Hello" | "World"' is not assignable to type '"Hello"'.
!!! error TS2322: Type '"World"' is not assignable to type '"Hello"'.
d = takeReturnHelloWorld(d);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
e = takeReturnHelloWorld(e);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
}
@ -245,84 +166,47 @@ tests/cases/conformance/types/stringLiteral/typeArgumentsWithStringLiteralTypes0
// The following (regardless of errors) should come back typed
// as "Hello" | "World" (or "World" | "Hello").
export let a = fun2<"Hello", "World">("Hello", "World");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
~~~~~~~
!!! error TS1134: Variable declaration expected.
export let b = fun2<"Hello", "World">("World", "Hello");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
~~~~~~~
!!! error TS1134: Variable declaration expected.
~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"Hello"'.
export let c = fun2<"World", "Hello">("Hello", "Hello");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
~~~~~~~
!!! error TS1134: Variable declaration expected.
~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
export let d = fun2<"World", "Hello">("World", "World");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T, U>(x: T, y: U) => T | U' and 'string'.
~~~~~~~
!!! error TS1134: Variable declaration expected.
~~~~~~~
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type '"World"'.
export let e = fun3<"Hello" | "World">("Hello", "World");
~~~~~~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '<T>(...args: T[]) => T' and 'string'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2447: The '|' operator is not allowed for boolean types. Consider using '||' instead.
// Assignment from the returned value should cause an error.
a = takeReturnString(a);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
~
!!! error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
!!! error TS2322: Type 'string' is not assignable to type '"World"'.
b = takeReturnString(b);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
c = takeReturnString(c);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
d = takeReturnString(d);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
e = takeReturnString(e);
~
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
~
!!! error TS2322: Type 'string' is not assignable to type '"Hello" | "World"'.
!!! error TS2322: Type 'string' is not assignable to type '"World"'.
// Passing these as arguments should cause an error.
a = takeReturnHello(a);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
!!! error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
!!! error TS2345: Type '"World"' is not assignable to type '"Hello"'.
b = takeReturnHello(b);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
c = takeReturnHello(c);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
d = takeReturnHello(d);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello"'.
e = takeReturnHello(e);
~
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello"'.
!!! error TS2345: Argument of type '"Hello" | "World"' is not assignable to parameter of type '"Hello"'.
!!! error TS2345: Type '"World"' is not assignable to type '"Hello"'.
// Both should be valid.
a = takeReturnHelloWorld(a);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
b = takeReturnHelloWorld(b);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
c = takeReturnHelloWorld(c);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
d = takeReturnHelloWorld(d);
~
!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'boolean' is not assignable to type '"World"'.
e = takeReturnHelloWorld(e);
~
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type '"Hello" | "World"'.
!!! error TS2345: Type 'number' is not assignable to type '"World"'.
}

View File

@ -159,13 +159,11 @@ var n2;
(function (n2) {
// The following (regardless of errors) should come back typed
// as "Hello" (or "Hello" | "Hello").
n2.a = fun1 < "Hello" > ("Hello", "Hello");
n2.b = fun1 < "Hello" > ("Hello", "World");
n2.c = fun2 < "Hello";
"Hello" > ("Hello", "Hello");
n2.d = fun2 < "Hello";
"Hello" > ("Hello", "World");
n2.e = fun3 < "Hello" > ("Hello", "World");
n2.a = fun1("Hello", "Hello");
n2.b = fun1("Hello", "World");
n2.c = fun2("Hello", "Hello");
n2.d = fun2("Hello", "World");
n2.e = fun3("Hello", "World");
// Assignment from the returned value should cause an error.
n2.a = takeReturnString(n2.a);
n2.b = takeReturnString(n2.b);
@ -189,15 +187,11 @@ var n3;
(function (n3) {
// The following (regardless of errors) should come back typed
// as "Hello" | "World" (or "World" | "Hello").
n3.a = fun2 < "Hello";
"World" > ("Hello", "World");
n3.b = fun2 < "Hello";
"World" > ("World", "Hello");
n3.c = fun2 < "World";
"Hello" > ("Hello", "Hello");
n3.d = fun2 < "World";
"Hello" > ("World", "World");
n3.e = fun3 < "Hello" | "World" > ("Hello", "World");
n3.a = fun2("Hello", "World");
n3.b = fun2("World", "Hello");
n3.c = fun2("Hello", "Hello");
n3.d = fun2("World", "World");
n3.e = fun3("Hello", "World");
// Assignment from the returned value should cause an error.
n3.a = takeReturnString(n3.a);
n3.b = takeReturnString(n3.b);
@ -235,16 +229,16 @@ declare namespace n1 {
let e: string;
}
declare namespace n2 {
let a: boolean;
let b: boolean;
let c: boolean;
let d: boolean;
let e: boolean;
let a: "Hello";
let b: any;
let c: "Hello";
let d: any;
let e: any;
}
declare namespace n3 {
let a: boolean;
let b: boolean;
let c: boolean;
let d: boolean;
let e: number;
let a: "Hello" | "World";
let b: any;
let c: any;
let d: any;
let e: "Hello" | "World";
}

View File

@ -1,12 +1,11 @@
tests/cases/compiler/typeParameterConstraints1.ts(6,25): error TS2304: Cannot find name 'hm'.
tests/cases/compiler/typeParameterConstraints1.ts(8,25): error TS1110: Type expected.
tests/cases/compiler/typeParameterConstraints1.ts(9,25): error TS1110: Type expected.
tests/cases/compiler/typeParameterConstraints1.ts(10,26): error TS1110: Type expected.
tests/cases/compiler/typeParameterConstraints1.ts(11,26): error TS1110: Type expected.
tests/cases/compiler/typeParameterConstraints1.ts(12,26): error TS2304: Cannot find name 'undefined'.
==== tests/cases/compiler/typeParameterConstraints1.ts (6 errors) ====
==== tests/cases/compiler/typeParameterConstraints1.ts (5 errors) ====
function foo1<T extends any>(test: T) { }
function foo2<T extends number>(test: T) { }
function foo3<T extends string>(test: T) { }
@ -17,8 +16,6 @@ tests/cases/compiler/typeParameterConstraints1.ts(12,26): error TS2304: Cannot f
!!! error TS2304: Cannot find name 'hm'.
function foo7<T extends Object>(test: T) { } // valid
function foo8<T extends "">(test: T) { }
~~
!!! error TS1110: Type expected.
function foo9<T extends 1 > (test: T) { }
~
!!! error TS1110: Type expected.