Adding new test
This commit is contained in:
parent
6beb24edc8
commit
294e13da96
|
@ -0,0 +1,42 @@
|
||||||
|
//// [assignmentNonObjectTypeConstraints.ts]
|
||||||
|
const enum E { A, B, C }
|
||||||
|
|
||||||
|
function foo<T extends number>(x: T) {
|
||||||
|
var y: number = x; // Ok
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(5);
|
||||||
|
foo(E.A);
|
||||||
|
|
||||||
|
class A { a }
|
||||||
|
class B { b }
|
||||||
|
|
||||||
|
function bar<T extends A | B>(x: T) {
|
||||||
|
var y: A | B = x; // Ok
|
||||||
|
}
|
||||||
|
|
||||||
|
bar(new A);
|
||||||
|
bar(new B);
|
||||||
|
|
||||||
|
|
||||||
|
//// [assignmentNonObjectTypeConstraints.js]
|
||||||
|
function foo(x) {
|
||||||
|
var y = x; // Ok
|
||||||
|
}
|
||||||
|
foo(5);
|
||||||
|
foo(0 /* A */);
|
||||||
|
var A = (function () {
|
||||||
|
function A() {
|
||||||
|
}
|
||||||
|
return A;
|
||||||
|
})();
|
||||||
|
var B = (function () {
|
||||||
|
function B() {
|
||||||
|
}
|
||||||
|
return B;
|
||||||
|
})();
|
||||||
|
function bar(x) {
|
||||||
|
var y = x; // Ok
|
||||||
|
}
|
||||||
|
bar(new A);
|
||||||
|
bar(new B);
|
|
@ -0,0 +1,58 @@
|
||||||
|
=== tests/cases/compiler/assignmentNonObjectTypeConstraints.ts ===
|
||||||
|
const enum E { A, B, C }
|
||||||
|
>E : Symbol(E, Decl(assignmentNonObjectTypeConstraints.ts, 0, 0))
|
||||||
|
>A : Symbol(E.A, Decl(assignmentNonObjectTypeConstraints.ts, 0, 14))
|
||||||
|
>B : Symbol(E.B, Decl(assignmentNonObjectTypeConstraints.ts, 0, 17))
|
||||||
|
>C : Symbol(E.C, Decl(assignmentNonObjectTypeConstraints.ts, 0, 20))
|
||||||
|
|
||||||
|
function foo<T extends number>(x: T) {
|
||||||
|
>foo : Symbol(foo, Decl(assignmentNonObjectTypeConstraints.ts, 0, 24))
|
||||||
|
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 2, 13))
|
||||||
|
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 2, 31))
|
||||||
|
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 2, 13))
|
||||||
|
|
||||||
|
var y: number = x; // Ok
|
||||||
|
>y : Symbol(y, Decl(assignmentNonObjectTypeConstraints.ts, 3, 7))
|
||||||
|
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 2, 31))
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(5);
|
||||||
|
>foo : Symbol(foo, Decl(assignmentNonObjectTypeConstraints.ts, 0, 24))
|
||||||
|
|
||||||
|
foo(E.A);
|
||||||
|
>foo : Symbol(foo, Decl(assignmentNonObjectTypeConstraints.ts, 0, 24))
|
||||||
|
>E.A : Symbol(E.A, Decl(assignmentNonObjectTypeConstraints.ts, 0, 14))
|
||||||
|
>E : Symbol(E, Decl(assignmentNonObjectTypeConstraints.ts, 0, 0))
|
||||||
|
>A : Symbol(E.A, Decl(assignmentNonObjectTypeConstraints.ts, 0, 14))
|
||||||
|
|
||||||
|
class A { a }
|
||||||
|
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||||
|
>a : Symbol(a, Decl(assignmentNonObjectTypeConstraints.ts, 9, 9))
|
||||||
|
|
||||||
|
class B { b }
|
||||||
|
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||||
|
>b : Symbol(b, Decl(assignmentNonObjectTypeConstraints.ts, 10, 9))
|
||||||
|
|
||||||
|
function bar<T extends A | B>(x: T) {
|
||||||
|
>bar : Symbol(bar, Decl(assignmentNonObjectTypeConstraints.ts, 10, 13))
|
||||||
|
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 12, 13))
|
||||||
|
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||||
|
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||||
|
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 12, 30))
|
||||||
|
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 12, 13))
|
||||||
|
|
||||||
|
var y: A | B = x; // Ok
|
||||||
|
>y : Symbol(y, Decl(assignmentNonObjectTypeConstraints.ts, 13, 7))
|
||||||
|
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||||
|
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||||
|
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 12, 30))
|
||||||
|
}
|
||||||
|
|
||||||
|
bar(new A);
|
||||||
|
>bar : Symbol(bar, Decl(assignmentNonObjectTypeConstraints.ts, 10, 13))
|
||||||
|
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||||
|
|
||||||
|
bar(new B);
|
||||||
|
>bar : Symbol(bar, Decl(assignmentNonObjectTypeConstraints.ts, 10, 13))
|
||||||
|
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
=== tests/cases/compiler/assignmentNonObjectTypeConstraints.ts ===
|
||||||
|
const enum E { A, B, C }
|
||||||
|
>E : E
|
||||||
|
>A : E
|
||||||
|
>B : E
|
||||||
|
>C : E
|
||||||
|
|
||||||
|
function foo<T extends number>(x: T) {
|
||||||
|
>foo : <T extends number>(x: T) => void
|
||||||
|
>T : T
|
||||||
|
>x : T
|
||||||
|
>T : T
|
||||||
|
|
||||||
|
var y: number = x; // Ok
|
||||||
|
>y : number
|
||||||
|
>x : T
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(5);
|
||||||
|
>foo(5) : void
|
||||||
|
>foo : <T extends number>(x: T) => void
|
||||||
|
>5 : number
|
||||||
|
|
||||||
|
foo(E.A);
|
||||||
|
>foo(E.A) : void
|
||||||
|
>foo : <T extends number>(x: T) => void
|
||||||
|
>E.A : E
|
||||||
|
>E : typeof E
|
||||||
|
>A : E
|
||||||
|
|
||||||
|
class A { a }
|
||||||
|
>A : A
|
||||||
|
>a : any
|
||||||
|
|
||||||
|
class B { b }
|
||||||
|
>B : B
|
||||||
|
>b : any
|
||||||
|
|
||||||
|
function bar<T extends A | B>(x: T) {
|
||||||
|
>bar : <T extends A | B>(x: T) => void
|
||||||
|
>T : T
|
||||||
|
>A : A
|
||||||
|
>B : B
|
||||||
|
>x : T
|
||||||
|
>T : T
|
||||||
|
|
||||||
|
var y: A | B = x; // Ok
|
||||||
|
>y : A | B
|
||||||
|
>A : A
|
||||||
|
>B : B
|
||||||
|
>x : T
|
||||||
|
}
|
||||||
|
|
||||||
|
bar(new A);
|
||||||
|
>bar(new A) : void
|
||||||
|
>bar : <T extends A | B>(x: T) => void
|
||||||
|
>new A : A
|
||||||
|
>A : typeof A
|
||||||
|
|
||||||
|
bar(new B);
|
||||||
|
>bar(new B) : void
|
||||||
|
>bar : <T extends A | B>(x: T) => void
|
||||||
|
>new B : B
|
||||||
|
>B : typeof B
|
||||||
|
|
18
tests/cases/compiler/assignmentNonObjectTypeConstraints.ts
Normal file
18
tests/cases/compiler/assignmentNonObjectTypeConstraints.ts
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
const enum E { A, B, C }
|
||||||
|
|
||||||
|
function foo<T extends number>(x: T) {
|
||||||
|
var y: number = x; // Ok
|
||||||
|
}
|
||||||
|
|
||||||
|
foo(5);
|
||||||
|
foo(E.A);
|
||||||
|
|
||||||
|
class A { a }
|
||||||
|
class B { b }
|
||||||
|
|
||||||
|
function bar<T extends A | B>(x: T) {
|
||||||
|
var y: A | B = x; // Ok
|
||||||
|
}
|
||||||
|
|
||||||
|
bar(new A);
|
||||||
|
bar(new B);
|
Loading…
Reference in a new issue