28 lines
331 B
TypeScript
28 lines
331 B
TypeScript
|
// 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;
|
||
|
c = d; // Should not be allowed
|