Accepting new baselines.

This commit is contained in:
Anders Hejlsberg 2014-11-17 10:46:02 -08:00
parent 100e1c8a77
commit 9a1b031469
4 changed files with 136 additions and 0 deletions

View file

@ -0,0 +1,21 @@
//// [recursiveTypeComparison.ts]
// Before fix this would take an exceeding long time to complete (#1170)
interface Observable<T> {
// This member can't be of type T, Property<T>, or Observable<anything but T>
needThisOne: Observable<T>;
// Add more to make it slower
expo1: Property<T[]>; // 0.31 seconds in check
expo2: Property<T[]>; // 3.11 seconds
expo3: Property<T[]>; // 82.28 seconds
}
interface Property<T> extends Observable<T> { }
var p: Observable<{}>;
var stuck: Property<number> = p;
//// [recursiveTypeComparison.js]
// Before fix this would take an exceeding long time to complete (#1170)
var p;
var stuck = p;

View file

@ -0,0 +1,44 @@
=== tests/cases/compiler/recursiveTypeComparison.ts ===
// Before fix this would take an exceeding long time to complete (#1170)
interface Observable<T> {
>Observable : Observable<T>
>T : T
// This member can't be of type T, Property<T>, or Observable<anything but T>
needThisOne: Observable<T>;
>needThisOne : Observable<T>
>Observable : Observable<T>
>T : T
// Add more to make it slower
expo1: Property<T[]>; // 0.31 seconds in check
>expo1 : Property<T[]>
>Property : Property<T>
>T : T
expo2: Property<T[]>; // 3.11 seconds
>expo2 : Property<T[]>
>Property : Property<T>
>T : T
expo3: Property<T[]>; // 82.28 seconds
>expo3 : Property<T[]>
>Property : Property<T>
>T : T
}
interface Property<T> extends Observable<T> { }
>Property : Property<T>
>T : T
>Observable : Observable<T>
>T : T
var p: Observable<{}>;
>p : Observable<{}>
>Observable : Observable<T>
var stuck: Property<number> = p;
>stuck : Property<number>
>Property : Property<T>
>p : Observable<{}>

View file

@ -0,0 +1,36 @@
tests/cases/compiler/recursiveTypeComparison2.ts(13,80): error TS2304: Cannot find name 'StateValue'.
==== tests/cases/compiler/recursiveTypeComparison2.ts (1 errors) ====
// Before fix this would cause compiler to hang (#1170)
declare module Bacon {
interface Event<T> {
}
interface Error<T> extends Event<T> {
}
interface Observable<T> {
zip<U, V>(other: EventStream<U>, f: (a: T, b: U) => V): EventStream<V>;
slidingWindow(max: number, min?: number): Property<T[]>;
log(): Observable<T>;
combine<U, V>(other: Observable<U>, f: (a: T, b: U) => V): Property<V>;
withStateMachine<U, V>(initState: U, f: (state: U, event: Event<T>) => StateValue<U, V>): EventStream<V>;
~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'StateValue'.
decode(mapping: Object): Property<any>;
awaiting<U>(other: Observable<U>): Property<boolean>;
endOnError(f?: (value: T) => boolean): Observable<T>;
withHandler(f: (event: Event<T>) => any): Observable<T>;
name(name: string): Observable<T>;
withDescription(...args: any[]): Observable<T>;
}
interface Property<T> extends Observable<T> {
}
interface EventStream<T> extends Observable<T> {
}
interface Bus<T> extends EventStream<T> {
}
var Bus: new <T>() => Bus<T>;
}
var stuck: Bacon.Bus<number> = new Bacon.Bus();

View file

@ -0,0 +1,35 @@
//// [recursiveTypeComparison2.ts]
// Before fix this would cause compiler to hang (#1170)
declare module Bacon {
interface Event<T> {
}
interface Error<T> extends Event<T> {
}
interface Observable<T> {
zip<U, V>(other: EventStream<U>, f: (a: T, b: U) => V): EventStream<V>;
slidingWindow(max: number, min?: number): Property<T[]>;
log(): Observable<T>;
combine<U, V>(other: Observable<U>, f: (a: T, b: U) => V): Property<V>;
withStateMachine<U, V>(initState: U, f: (state: U, event: Event<T>) => StateValue<U, V>): EventStream<V>;
decode(mapping: Object): Property<any>;
awaiting<U>(other: Observable<U>): Property<boolean>;
endOnError(f?: (value: T) => boolean): Observable<T>;
withHandler(f: (event: Event<T>) => any): Observable<T>;
name(name: string): Observable<T>;
withDescription(...args: any[]): Observable<T>;
}
interface Property<T> extends Observable<T> {
}
interface EventStream<T> extends Observable<T> {
}
interface Bus<T> extends EventStream<T> {
}
var Bus: new <T>() => Bus<T>;
}
var stuck: Bacon.Bus<number> = new Bacon.Bus();
//// [recursiveTypeComparison2.js]
// Before fix this would cause compiler to hang (#1170)
var stuck = new Bacon.Bus();