45 lines
1.3 KiB
Text
45 lines
1.3 KiB
Text
|
tests/cases/compiler/typeComparisonCaching.ts(26,1): error TS2323: Type 'B' is not assignable to type 'A'.
|
||
|
Types of property 's' are incompatible.
|
||
|
Type 'number' is not assignable to type 'string'.
|
||
|
tests/cases/compiler/typeComparisonCaching.ts(27,1): error TS2323: Type 'D' is not assignable to type 'C'.
|
||
|
Types of property 'q' are incompatible.
|
||
|
Type 'B' is not assignable to type 'A'.
|
||
|
|
||
|
|
||
|
==== tests/cases/compiler/typeComparisonCaching.ts (2 errors) ====
|
||
|
// Check that we only cache results of type comparisons that are free of assumptions
|
||
|
|
||
|
interface A {
|
||
|
p: C;
|
||
|
s: string;
|
||
|
}
|
||
|
|
||
|
interface B {
|
||
|
p: D;
|
||
|
s: number;
|
||
|
}
|
||
|
|
||
|
interface C {
|
||
|
q: A;
|
||
|
}
|
||
|
|
||
|
interface D {
|
||
|
q: B;
|
||
|
}
|
||
|
|
||
|
var a: A;
|
||
|
var b: B;
|
||
|
var c: C;
|
||
|
var d: D;
|
||
|
|
||
|
a = b;
|
||
|
~
|
||
|
!!! error TS2323: Type 'B' is not assignable to type 'A'.
|
||
|
!!! error TS2323: Types of property 's' are incompatible.
|
||
|
!!! error TS2323: Type 'number' is not assignable to type 'string'.
|
||
|
c = d; // Should not be allowed
|
||
|
~
|
||
|
!!! error TS2323: Type 'D' is not assignable to type 'C'.
|
||
|
!!! error TS2323: Types of property 'q' are incompatible.
|
||
|
!!! error TS2323: Type 'B' is not assignable to type 'A'.
|
||
|
|