mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
Adding regression tests
This commit is contained in:
parent
99ba94e577
commit
fdc44b246a
@ -0,0 +1,44 @@
|
||||
//// [unionTypeWithRecursiveSubtypeReduction1.ts]
|
||||
class Module {
|
||||
public members: Class[];
|
||||
}
|
||||
|
||||
class Namespace {
|
||||
public members: (Class | Property)[];
|
||||
}
|
||||
|
||||
class Class {
|
||||
public parent: Namespace;
|
||||
}
|
||||
|
||||
class Property {
|
||||
public parent: Module | Class;
|
||||
}
|
||||
|
||||
var t: Class | Property;
|
||||
t.parent;
|
||||
|
||||
|
||||
//// [unionTypeWithRecursiveSubtypeReduction1.js]
|
||||
var Module = (function () {
|
||||
function Module() {
|
||||
}
|
||||
return Module;
|
||||
})();
|
||||
var Namespace = (function () {
|
||||
function Namespace() {
|
||||
}
|
||||
return Namespace;
|
||||
})();
|
||||
var Class = (function () {
|
||||
function Class() {
|
||||
}
|
||||
return Class;
|
||||
})();
|
||||
var Property = (function () {
|
||||
function Property() {
|
||||
}
|
||||
return Property;
|
||||
})();
|
||||
var t;
|
||||
t.parent;
|
||||
@ -0,0 +1,45 @@
|
||||
=== tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction1.ts ===
|
||||
class Module {
|
||||
>Module : Symbol(Module, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 0, 0))
|
||||
|
||||
public members: Class[];
|
||||
>members : Symbol(members, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 0, 14))
|
||||
>Class : Symbol(Class, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 6, 1))
|
||||
}
|
||||
|
||||
class Namespace {
|
||||
>Namespace : Symbol(Namespace, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 2, 1))
|
||||
|
||||
public members: (Class | Property)[];
|
||||
>members : Symbol(members, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 4, 17))
|
||||
>Class : Symbol(Class, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 6, 1))
|
||||
>Property : Symbol(Property, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 10, 1))
|
||||
}
|
||||
|
||||
class Class {
|
||||
>Class : Symbol(Class, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 6, 1))
|
||||
|
||||
public parent: Namespace;
|
||||
>parent : Symbol(parent, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 8, 13))
|
||||
>Namespace : Symbol(Namespace, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 2, 1))
|
||||
}
|
||||
|
||||
class Property {
|
||||
>Property : Symbol(Property, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 10, 1))
|
||||
|
||||
public parent: Module | Class;
|
||||
>parent : Symbol(parent, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 12, 16))
|
||||
>Module : Symbol(Module, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 0, 0))
|
||||
>Class : Symbol(Class, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 6, 1))
|
||||
}
|
||||
|
||||
var t: Class | Property;
|
||||
>t : Symbol(t, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 16, 3))
|
||||
>Class : Symbol(Class, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 6, 1))
|
||||
>Property : Symbol(Property, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 10, 1))
|
||||
|
||||
t.parent;
|
||||
>t.parent : Symbol(parent, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 8, 13), Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 12, 16))
|
||||
>t : Symbol(t, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 16, 3))
|
||||
>parent : Symbol(parent, Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 8, 13), Decl(unionTypeWithRecursiveSubtypeReduction1.ts, 12, 16))
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
=== tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction1.ts ===
|
||||
class Module {
|
||||
>Module : Module
|
||||
|
||||
public members: Class[];
|
||||
>members : Class[]
|
||||
>Class : Class
|
||||
}
|
||||
|
||||
class Namespace {
|
||||
>Namespace : Namespace
|
||||
|
||||
public members: (Class | Property)[];
|
||||
>members : (Class | Property)[]
|
||||
>Class : Class
|
||||
>Property : Property
|
||||
}
|
||||
|
||||
class Class {
|
||||
>Class : Class
|
||||
|
||||
public parent: Namespace;
|
||||
>parent : Namespace
|
||||
>Namespace : Namespace
|
||||
}
|
||||
|
||||
class Property {
|
||||
>Property : Property
|
||||
|
||||
public parent: Module | Class;
|
||||
>parent : Module | Class
|
||||
>Module : Module
|
||||
>Class : Class
|
||||
}
|
||||
|
||||
var t: Class | Property;
|
||||
>t : Class | Property
|
||||
>Class : Class
|
||||
>Property : Property
|
||||
|
||||
t.parent;
|
||||
>t.parent : Class | Namespace
|
||||
>t : Class | Property
|
||||
>parent : Class | Namespace
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction2.ts(19,1): error TS2322: Type 'Property' is not assignable to type 'Class'.
|
||||
Types of property 'parent' are incompatible.
|
||||
Type 'Module | Class' is not assignable to type 'Namespace'.
|
||||
Type 'Class' is not assignable to type 'Namespace'.
|
||||
Property 'members' is missing in type 'Class'.
|
||||
tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction2.ts(20,1): error TS2322: Type 'Class' is not assignable to type 'Property'.
|
||||
Types of property 'parent' are incompatible.
|
||||
Type 'Namespace' is not assignable to type 'Module | Class'.
|
||||
Type 'Namespace' is not assignable to type 'Class'.
|
||||
Property 'parent' is missing in type 'Namespace'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction2.ts (2 errors) ====
|
||||
class Module {
|
||||
public members: Class[];
|
||||
}
|
||||
|
||||
class Namespace {
|
||||
public members: (Class | Property)[];
|
||||
}
|
||||
|
||||
class Class {
|
||||
public parent: Namespace;
|
||||
}
|
||||
|
||||
class Property {
|
||||
public parent: Module | Class;
|
||||
}
|
||||
|
||||
var c: Class;
|
||||
var p: Property;
|
||||
c = p;
|
||||
~
|
||||
!!! error TS2322: Type 'Property' is not assignable to type 'Class'.
|
||||
!!! error TS2322: Types of property 'parent' are incompatible.
|
||||
!!! error TS2322: Type 'Module | Class' is not assignable to type 'Namespace'.
|
||||
!!! error TS2322: Type 'Class' is not assignable to type 'Namespace'.
|
||||
!!! error TS2322: Property 'members' is missing in type 'Class'.
|
||||
p = c;
|
||||
~
|
||||
!!! error TS2322: Type 'Class' is not assignable to type 'Property'.
|
||||
!!! error TS2322: Types of property 'parent' are incompatible.
|
||||
!!! error TS2322: Type 'Namespace' is not assignable to type 'Module | Class'.
|
||||
!!! error TS2322: Type 'Namespace' is not assignable to type 'Class'.
|
||||
!!! error TS2322: Property 'parent' is missing in type 'Namespace'.
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
//// [unionTypeWithRecursiveSubtypeReduction2.ts]
|
||||
class Module {
|
||||
public members: Class[];
|
||||
}
|
||||
|
||||
class Namespace {
|
||||
public members: (Class | Property)[];
|
||||
}
|
||||
|
||||
class Class {
|
||||
public parent: Namespace;
|
||||
}
|
||||
|
||||
class Property {
|
||||
public parent: Module | Class;
|
||||
}
|
||||
|
||||
var c: Class;
|
||||
var p: Property;
|
||||
c = p;
|
||||
p = c;
|
||||
|
||||
|
||||
//// [unionTypeWithRecursiveSubtypeReduction2.js]
|
||||
var Module = (function () {
|
||||
function Module() {
|
||||
}
|
||||
return Module;
|
||||
})();
|
||||
var Namespace = (function () {
|
||||
function Namespace() {
|
||||
}
|
||||
return Namespace;
|
||||
})();
|
||||
var Class = (function () {
|
||||
function Class() {
|
||||
}
|
||||
return Class;
|
||||
})();
|
||||
var Property = (function () {
|
||||
function Property() {
|
||||
}
|
||||
return Property;
|
||||
})();
|
||||
var c;
|
||||
var p;
|
||||
c = p;
|
||||
p = c;
|
||||
@ -0,0 +1,14 @@
|
||||
tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction3.ts(5,5): error TS2322: Type '{ prop: number; } | { prop: { prop: number; } | any; }' is not assignable to type 'string'.
|
||||
Type '{ prop: number; }' is not assignable to type 'string'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/unionTypeWithRecursiveSubtypeReduction3.ts (1 errors) ====
|
||||
var a27: { prop: number } | { prop: T27 };
|
||||
type T27 = typeof a27;
|
||||
|
||||
var b: T27;
|
||||
var s: string = b;
|
||||
~
|
||||
!!! error TS2322: Type '{ prop: number; } | { prop: { prop: number; } | any; }' is not assignable to type 'string'.
|
||||
!!! error TS2322: Type '{ prop: number; }' is not assignable to type 'string'.
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
//// [unionTypeWithRecursiveSubtypeReduction3.ts]
|
||||
var a27: { prop: number } | { prop: T27 };
|
||||
type T27 = typeof a27;
|
||||
|
||||
var b: T27;
|
||||
var s: string = b;
|
||||
|
||||
|
||||
//// [unionTypeWithRecursiveSubtypeReduction3.js]
|
||||
var a27;
|
||||
var b;
|
||||
var s = b;
|
||||
@ -0,0 +1,18 @@
|
||||
class Module {
|
||||
public members: Class[];
|
||||
}
|
||||
|
||||
class Namespace {
|
||||
public members: (Class | Property)[];
|
||||
}
|
||||
|
||||
class Class {
|
||||
public parent: Namespace;
|
||||
}
|
||||
|
||||
class Property {
|
||||
public parent: Module | Class;
|
||||
}
|
||||
|
||||
var t: Class | Property;
|
||||
t.parent;
|
||||
@ -0,0 +1,20 @@
|
||||
class Module {
|
||||
public members: Class[];
|
||||
}
|
||||
|
||||
class Namespace {
|
||||
public members: (Class | Property)[];
|
||||
}
|
||||
|
||||
class Class {
|
||||
public parent: Namespace;
|
||||
}
|
||||
|
||||
class Property {
|
||||
public parent: Module | Class;
|
||||
}
|
||||
|
||||
var c: Class;
|
||||
var p: Property;
|
||||
c = p;
|
||||
p = c;
|
||||
@ -0,0 +1,5 @@
|
||||
var a27: { prop: number } | { prop: T27 };
|
||||
type T27 = typeof a27;
|
||||
|
||||
var b: T27;
|
||||
var s: string = b;
|
||||
Loading…
x
Reference in New Issue
Block a user