diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0150d5236bdef..3a6e80d797102 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -819,6 +819,7 @@ namespace ts { let deferredGlobalESSymbolConstructorSymbol: Symbol | undefined; let deferredGlobalESSymbolType: ObjectType; let deferredGlobalTypedPropertyDescriptorType: GenericType; + let deferredGlobalAwaitedSymbol: Symbol | undefined; let deferredGlobalPromiseType: GenericType; let deferredGlobalPromiseLikeType: GenericType; let deferredGlobalPromiseConstructorSymbol: Symbol | undefined; @@ -873,7 +874,6 @@ namespace ts { const potentialThisCollisions: Node[] = []; const potentialNewTargetCollisions: Node[] = []; const potentialWeakMapCollisions: Node[] = []; - const awaitedTypeStack: number[] = []; const diagnostics = createDiagnosticCollection(); const suggestionDiagnostics = createDiagnosticCollection(); @@ -11284,6 +11284,10 @@ namespace ts { return deferredGlobalESSymbolType || (deferredGlobalESSymbolType = getGlobalType("Symbol" as __String, /*arity*/ 0, reportErrors)) || emptyObjectType; } + function getGlobalAwaitedSymbol(reportErrors: boolean) { + return deferredGlobalAwaitedSymbol || (deferredGlobalAwaitedSymbol = getGlobalTypeSymbol("Awaited" as __String, reportErrors)); + } + function getGlobalPromiseType(reportErrors: boolean) { return deferredGlobalPromiseType || (deferredGlobalPromiseType = getGlobalType("Promise" as __String, /*arity*/ 1, reportErrors)) || emptyGenericType; } @@ -29368,98 +29372,22 @@ namespace ts { return typeAsAwaitable.awaitedTypeOfType = type; } - if (type.flags & TypeFlags.Union) { - let types: Type[] | undefined; - for (const constituentType of (type).types) { - types = append(types, getAwaitedType(constituentType, errorNode, diagnosticMessage, arg0)); - } - - if (!types) { - return undefined; - } - - return typeAsAwaitable.awaitedTypeOfType = getUnionType(types); + const symbol = getGlobalAwaitedSymbol(/*reportErrors*/ false); + if (!symbol) { + return typeAsAwaitable.awaitedTypeOfType = type; } - const promisedType = getPromisedTypeOfPromise(type); - if (promisedType) { - if (type.id === promisedType.id || awaitedTypeStack.indexOf(promisedType.id) >= 0) { - // Verify that we don't have a bad actor in the form of a promise whose - // promised type is the same as the promise type, or a mutually recursive - // promise. If so, we return undefined as we cannot guess the shape. If this - // were the actual case in the JavaScript, this Promise would never resolve. - // - // An example of a bad actor with a singly-recursive promise type might - // be: - // - // interface BadPromise { - // then( - // onfulfilled: (value: BadPromise) => any, - // onrejected: (error: any) => any): BadPromise; - // } - // The above interface will pass the PromiseLike check, and return a - // promised type of `BadPromise`. Since this is a self reference, we - // don't want to keep recursing ad infinitum. - // - // An example of a bad actor in the form of a mutually-recursive - // promise type might be: - // - // interface BadPromiseA { - // then( - // onfulfilled: (value: BadPromiseB) => any, - // onrejected: (error: any) => any): BadPromiseB; - // } - // - // interface BadPromiseB { - // then( - // onfulfilled: (value: BadPromiseA) => any, - // onrejected: (error: any) => any): BadPromiseA; - // } - // - if (errorNode) { - error(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method); - } - return undefined; - } - - // Keep track of the type we're about to unwrap to avoid bad recursive promise types. - // See the comments above for more information. - awaitedTypeStack.push(type.id); - const awaitedType = getAwaitedType(promisedType, errorNode, diagnosticMessage, arg0); - awaitedTypeStack.pop(); - - if (!awaitedType) { - return undefined; - } - - return typeAsAwaitable.awaitedTypeOfType = awaitedType; + const result = getTypeAliasInstantiation(symbol, [type]); + if (result !== unknownType || type === unknownType || getPromisedTypeOfPromise(type) === unknownType) { + return typeAsAwaitable.awaitedTypeOfType = (result as PromiseOrAwaitableType).awaitedTypeOfType = result; } - // The type was not a promise, so it could not be unwrapped any further. - // As long as the type does not have a callable "then" property, it is - // safe to return the type; otherwise, an error will be reported in - // the call to getNonThenableType and we will return undefined. - // - // An example of a non-promise "thenable" might be: - // - // await { then(): void {} } - // - // The "thenable" does not match the minimal definition for a promise. When - // a Promise/A+-compatible or ES6 promise tries to adopt this value, the promise - // will never settle. We treat this as an error to help flag an early indicator - // of a runtime problem. If the user wants to return this value from an async - // function, they would need to wrap it in some other value. If they want it to - // be treated as a promise, they can cast to . - const thenFunction = getTypeOfPropertyOfType(type, "then" as __String); - if (thenFunction && getSignaturesOfType(thenFunction, SignatureKind.Call).length > 0) { - if (errorNode) { - if (!diagnosticMessage) return Debug.fail(); - error(errorNode, diagnosticMessage, arg0); - } - return undefined; + if (errorNode) { + if (!diagnosticMessage) return Debug.fail(); + error(errorNode, diagnosticMessage, arg0); } - return typeAsAwaitable.awaitedTypeOfType = type; + return undefined; } /** diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index f3e3953ce3fbc..8f1b5014d523a 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -957,6 +957,7 @@ namespace FourSlashInterface { typeEntry("PropertyDecorator"), typeEntry("MethodDecorator"), typeEntry("ParameterDecorator"), + typeEntry("Awaited"), typeEntry("PromiseConstructorLike"), interfaceEntry("PromiseLike"), interfaceEntry("Promise"), diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index 937f99d3409a4..e39422a0405a7 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -200,18 +200,18 @@ interface PromiseConstructor { /** * Creates a Promise that is resolved with an array of results when all of the provided Promises * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. + * @param values An iterable of Promises. * @returns A new Promise. */ - all(values: Iterable>): Promise; + all(values: Iterable): Promise[]>; /** * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved * or rejected. - * @param values An array of Promises. + * @param values An iterable of Promises. * @returns A new Promise. */ - race(values: Iterable>): Promise; + race(values: Iterable): Promise>; } declare namespace Reflect { diff --git a/src/lib/es2015.promise.d.ts b/src/lib/es2015.promise.d.ts index 45b0fa5dc59d9..fcc438ccf122d 100644 --- a/src/lib/es2015.promise.d.ts +++ b/src/lib/es2015.promise.d.ts @@ -10,7 +10,7 @@ interface PromiseConstructor { * a resolve callback used to resolve the promise with a value or the result of another promise, * and a reject callback used to reject the promise with a provided reason or error. */ - new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): Promise; + new (executor: (resolve: (value?: T) => void, reject: (reason?: any) => void) => void): Promise>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -18,79 +18,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; - - /** - * Creates a Promise that is resolved with an array of results when all of the provided Promises - * resolve, or rejected when any Promise is rejected. - * @param values An array of Promises. - * @returns A new Promise. - */ - all(values: readonly (T | PromiseLike)[]): Promise; + all(values: T): Promise<{ -readonly [P in keyof T]: Awaited }>; /** * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved @@ -98,15 +26,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - race(values: readonly T[]): Promise ? U : T>; - - /** - * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved - * or rejected. - * @param values An iterable of Promises. - * @returns A new Promise. - */ - race(values: Iterable): Promise ? U : T>; + race(values: T): Promise>; /** * Creates a new rejected promise for the provided reason. @@ -120,10 +40,10 @@ interface PromiseConstructor { * @param value A promise. * @returns A promise whose internal state matches the provided promise. */ - resolve(value: T | PromiseLike): Promise; + resolve(value: T): Promise>; /** - * Creates a new resolved promise . + * Creates a new resolved promise. * @returns A resolved promise. */ resolve(): Promise; diff --git a/src/lib/es2018.asyncgenerator.d.ts b/src/lib/es2018.asyncgenerator.d.ts index f6966264c8be4..a13ff0454376a 100644 --- a/src/lib/es2018.asyncgenerator.d.ts +++ b/src/lib/es2018.asyncgenerator.d.ts @@ -2,9 +2,9 @@ interface AsyncGenerator extends AsyncIterator { // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places. - next(...args: [] | [TNext]): Promise>; - return(value: TReturn | PromiseLike): Promise>; - throw(e: any): Promise>; + next(...args: [] | [TNext]): Promise>>; + return(value: TReturn): Promise>>; + throw(e: any): Promise>>; [Symbol.asyncIterator](): AsyncGenerator; } diff --git a/src/lib/es2018.asynciterable.d.ts b/src/lib/es2018.asynciterable.d.ts index 19a31c72ca4a9..7aa1ca2abb912 100644 --- a/src/lib/es2018.asynciterable.d.ts +++ b/src/lib/es2018.asynciterable.d.ts @@ -11,9 +11,9 @@ interface SymbolConstructor { interface AsyncIterator { // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places. - next(...args: [] | [TNext]): Promise>; - return?(value?: TReturn | PromiseLike): Promise>; - throw?(e?: any): Promise>; + next(...args: [] | [TNext]): Promise>>; + return?(value?: TReturn): Promise>>; + throw?(e?: any): Promise>>; } interface AsyncIterable { @@ -22,4 +22,4 @@ interface AsyncIterable { interface AsyncIterableIterator extends AsyncIterator { [Symbol.asyncIterator](): AsyncIterableIterator; -} \ No newline at end of file +} diff --git a/src/lib/es5.d.ts b/src/lib/es5.d.ts index 8893a7b0bb63e..ab3aeda143a89 100644 --- a/src/lib/es5.d.ts +++ b/src/lib/es5.d.ts @@ -1378,7 +1378,12 @@ declare type PropertyDecorator = (target: Object, propertyKey: string | symbol) declare type MethodDecorator = (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor | void; declare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void; -declare type PromiseConstructorLike = new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void) => PromiseLike; +// The undefined case is for strictNullChecks false, in which case +// undefined extends PromiseLike is true, which would otherwise +// make Awaited -> unknown. +type Awaited = T extends undefined ? T : T extends PromiseLike ? U : T extends { then(...args: any[]): any } ? unknown : T; + +declare type PromiseConstructorLike = new (executor: (resolve: (value?: T) => void, reject: (reason?: any) => void) => void) => PromiseLike>; interface PromiseLike { /** diff --git a/tests/baselines/reference/asyncArrowFunction11_es5.types b/tests/baselines/reference/asyncArrowFunction11_es5.types index 7fd9d53af7228..9e2c406ea1a11 100644 --- a/tests/baselines/reference/asyncArrowFunction11_es5.types +++ b/tests/baselines/reference/asyncArrowFunction11_es5.types @@ -11,9 +11,9 @@ class A { await Promise.resolve(); >await Promise.resolve() : void >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } const obj = { ["a"]: () => this }; // computed property name after `await` triggers case >obj : { a: () => this; } diff --git a/tests/baselines/reference/asyncArrowFunction5_es2017.errors.txt b/tests/baselines/reference/asyncArrowFunction5_es2017.errors.txt index 26601467324e6..178d283587fdb 100644 --- a/tests/baselines/reference/asyncArrowFunction5_es2017.errors.txt +++ b/tests/baselines/reference/asyncArrowFunction5_es2017.errors.txt @@ -16,7 +16,7 @@ tests/cases/conformance/async/es2017/asyncArrowFunction/asyncArrowFunction5_es20 !!! error TS1005: ',' expected. ~~~~~~~ !!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'. -!!! related TS6203 /.ts/lib.es2015.promise.d.ts:152:13: 'Promise' was also declared here. +!!! related TS6203 /.ts/lib.es2015.promise.d.ts:72:13: 'Promise' was also declared here. ~ !!! error TS1005: ',' expected. ~~ diff --git a/tests/baselines/reference/asyncArrowFunction5_es5.errors.txt b/tests/baselines/reference/asyncArrowFunction5_es5.errors.txt index cf82d765a566a..6960eeb5fd9a0 100644 --- a/tests/baselines/reference/asyncArrowFunction5_es5.errors.txt +++ b/tests/baselines/reference/asyncArrowFunction5_es5.errors.txt @@ -16,7 +16,7 @@ tests/cases/conformance/async/es5/asyncArrowFunction/asyncArrowFunction5_es5.ts( !!! error TS1005: ',' expected. ~~~~~~~ !!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'. -!!! related TS6203 /.ts/lib.es2015.promise.d.ts:152:13: 'Promise' was also declared here. +!!! related TS6203 /.ts/lib.es2015.promise.d.ts:72:13: 'Promise' was also declared here. ~ !!! error TS1005: ',' expected. ~~ diff --git a/tests/baselines/reference/asyncArrowFunction5_es6.errors.txt b/tests/baselines/reference/asyncArrowFunction5_es6.errors.txt index 909efc3c97eec..69d55e2a264a0 100644 --- a/tests/baselines/reference/asyncArrowFunction5_es6.errors.txt +++ b/tests/baselines/reference/asyncArrowFunction5_es6.errors.txt @@ -16,7 +16,7 @@ tests/cases/conformance/async/es6/asyncArrowFunction/asyncArrowFunction5_es6.ts( !!! error TS1005: ',' expected. ~~~~~~~ !!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'. -!!! related TS6203 /.ts/lib.es2015.promise.d.ts:152:13: 'Promise' was also declared here. +!!! related TS6203 /.ts/lib.es2015.promise.d.ts:72:13: 'Promise' was also declared here. ~ !!! error TS1005: ',' expected. ~~ diff --git a/tests/baselines/reference/asyncArrowFunction9_es2017.errors.txt b/tests/baselines/reference/asyncArrowFunction9_es2017.errors.txt index 0be88de28681a..2ea9d6031769f 100644 --- a/tests/baselines/reference/asyncArrowFunction9_es2017.errors.txt +++ b/tests/baselines/reference/asyncArrowFunction9_es2017.errors.txt @@ -16,7 +16,7 @@ tests/cases/conformance/async/es2017/asyncArrowFunction/asyncArrowFunction9_es20 !!! error TS1005: ',' expected. ~~~~~~~ !!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'. -!!! related TS6203 /.ts/lib.es2015.promise.d.ts:152:13: 'Promise' was also declared here. +!!! related TS6203 /.ts/lib.es2015.promise.d.ts:72:13: 'Promise' was also declared here. ~ !!! error TS1005: ',' expected. ~~ diff --git a/tests/baselines/reference/asyncArrowFunction9_es5.errors.txt b/tests/baselines/reference/asyncArrowFunction9_es5.errors.txt index 085b3b50884b7..fbe29eeb433ba 100644 --- a/tests/baselines/reference/asyncArrowFunction9_es5.errors.txt +++ b/tests/baselines/reference/asyncArrowFunction9_es5.errors.txt @@ -16,7 +16,7 @@ tests/cases/conformance/async/es5/asyncArrowFunction/asyncArrowFunction9_es5.ts( !!! error TS1005: ',' expected. ~~~~~~~ !!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'. -!!! related TS6203 /.ts/lib.es2015.promise.d.ts:152:13: 'Promise' was also declared here. +!!! related TS6203 /.ts/lib.es2015.promise.d.ts:72:13: 'Promise' was also declared here. ~ !!! error TS1005: ',' expected. ~~ diff --git a/tests/baselines/reference/asyncArrowFunction9_es6.errors.txt b/tests/baselines/reference/asyncArrowFunction9_es6.errors.txt index 6949aad5cea0c..8fa44422f0a3d 100644 --- a/tests/baselines/reference/asyncArrowFunction9_es6.errors.txt +++ b/tests/baselines/reference/asyncArrowFunction9_es6.errors.txt @@ -16,7 +16,7 @@ tests/cases/conformance/async/es6/asyncArrowFunction/asyncArrowFunction9_es6.ts( !!! error TS1005: ',' expected. ~~~~~~~ !!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'. -!!! related TS6203 /.ts/lib.es2015.promise.d.ts:152:13: 'Promise' was also declared here. +!!! related TS6203 /.ts/lib.es2015.promise.d.ts:72:13: 'Promise' was also declared here. ~ !!! error TS1005: ',' expected. ~~ diff --git a/tests/baselines/reference/asyncArrowFunctionCapturesThis_es2017.types b/tests/baselines/reference/asyncArrowFunctionCapturesThis_es2017.types index 57f59302bb5bc..93e3136c139b5 100644 --- a/tests/baselines/reference/asyncArrowFunctionCapturesThis_es2017.types +++ b/tests/baselines/reference/asyncArrowFunctionCapturesThis_es2017.types @@ -6,9 +6,9 @@ class C { >method : () => void var fn = async () => await this; ->fn : () => Promise ->async () => await this : () => Promise ->await this : this +>fn : () => Promise> +>async () => await this : () => Promise> +>await this : Awaited >this : this } } diff --git a/tests/baselines/reference/asyncArrowFunctionCapturesThis_es5.types b/tests/baselines/reference/asyncArrowFunctionCapturesThis_es5.types index da378ee2718f9..90f89654c0518 100644 --- a/tests/baselines/reference/asyncArrowFunctionCapturesThis_es5.types +++ b/tests/baselines/reference/asyncArrowFunctionCapturesThis_es5.types @@ -6,9 +6,9 @@ class C { >method : () => void var fn = async () => await this; ->fn : () => Promise ->async () => await this : () => Promise ->await this : this +>fn : () => Promise> +>async () => await this : () => Promise> +>await this : Awaited >this : this } } diff --git a/tests/baselines/reference/asyncArrowFunctionCapturesThis_es6.types b/tests/baselines/reference/asyncArrowFunctionCapturesThis_es6.types index 5386a956ada9a..3b77fc642e4a2 100644 --- a/tests/baselines/reference/asyncArrowFunctionCapturesThis_es6.types +++ b/tests/baselines/reference/asyncArrowFunctionCapturesThis_es6.types @@ -6,9 +6,9 @@ class C { >method : () => void var fn = async () => await this; ->fn : () => Promise ->async () => await this : () => Promise ->await this : this +>fn : () => Promise> +>async () => await this : () => Promise> +>await this : Awaited >this : this } } diff --git a/tests/baselines/reference/asyncAwaitNestedClasses_es5.types b/tests/baselines/reference/asyncAwaitNestedClasses_es5.types index 40f0e5ce9b900..ceba067940be1 100644 --- a/tests/baselines/reference/asyncAwaitNestedClasses_es5.types +++ b/tests/baselines/reference/asyncAwaitNestedClasses_es5.types @@ -14,10 +14,10 @@ class A { return new Promise((resolve) => { resolve(null); }); >new Promise((resolve) => { resolve(null); }) : Promise >Promise : PromiseConstructor ->(resolve) => { resolve(null); } : (resolve: (value?: void | PromiseLike) => void) => void ->resolve : (value?: void | PromiseLike) => void +>(resolve) => { resolve(null); } : (resolve: (value?: void) => void) => void +>resolve : (value?: void) => void >resolve(null) : void ->resolve : (value?: void | PromiseLike) => void +>resolve : (value?: void) => void >null : null } static C = class C { diff --git a/tests/baselines/reference/asyncFunctionDeclaration15_es5.errors.txt b/tests/baselines/reference/asyncFunctionDeclaration15_es5.errors.txt index 7e3595ec6f4e0..c29861e1494d1 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration15_es5.errors.txt +++ b/tests/baselines/reference/asyncFunctionDeclaration15_es5.errors.txt @@ -5,7 +5,7 @@ tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration1 tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts(8,23): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts(9,23): error TS1055: Type 'PromiseLike' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value. tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts(10,23): error TS1055: Type 'typeof Thenable' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value. - Construct signature return types 'Thenable' and 'PromiseLike' are incompatible. + Construct signature return types 'Thenable' and 'PromiseLike>' are incompatible. The types returned by 'then(...)' are incompatible between these types. Type 'void' is not assignable to type 'PromiseLike'. tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts(17,16): error TS1058: The return type of an async function must either be a valid promise or must not contain a callable 'then' member. @@ -37,7 +37,7 @@ tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration1 async function fn6(): Thenable { } // error ~~~~~~~~ !!! error TS1055: Type 'typeof Thenable' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value. -!!! error TS1055: Construct signature return types 'Thenable' and 'PromiseLike' are incompatible. +!!! error TS1055: Construct signature return types 'Thenable' and 'PromiseLike>' are incompatible. !!! error TS1055: The types returned by 'then(...)' are incompatible between these types. !!! error TS1055: Type 'void' is not assignable to type 'PromiseLike'. async function fn7() { return; } // valid: Promise diff --git a/tests/baselines/reference/asyncFunctionReturnType.js b/tests/baselines/reference/asyncFunctionReturnType.js index 04b3a04a036d3..dce0f07b77cec 100644 --- a/tests/baselines/reference/asyncFunctionReturnType.js +++ b/tests/baselines/reference/asyncFunctionReturnType.js @@ -63,17 +63,25 @@ async function fGenericIndexedTypeForExplicitPromiseOfAnyProp( return Promise.resolve(obj.anyProp); } -async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise> { return obj[key]; } -async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise> { return Promise.resolve(obj[key]); } -async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise> { return Promise.resolve(obj[key]); -} +} + +// #27711 + +async function fGeneric(x: T) { + return x; +} +const expected: Promise = fGeneric(undefined as Promise); + //// [asyncFunctionReturnType.js] var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { @@ -172,3 +180,10 @@ function fGenericIndexedTypeForExplicitPromiseOfKProp(obj, key) { return Promise.resolve(obj[key]); }); } +// #27711 +function fGeneric(x) { + return __awaiter(this, void 0, void 0, function* () { + return x; + }); +} +const expected = fGeneric(undefined); diff --git a/tests/baselines/reference/asyncFunctionReturnType.symbols b/tests/baselines/reference/asyncFunctionReturnType.symbols index 25a7e944c6a7a..7b0c95c33acb8 100644 --- a/tests/baselines/reference/asyncFunctionReturnType.symbols +++ b/tests/baselines/reference/asyncFunctionReturnType.symbols @@ -221,7 +221,7 @@ async function fGenericIndexedTypeForExplicitPromiseOfAnyProp( >anyProp : Symbol(Obj.anyProp, Decl(asyncFunctionReturnType.ts, 12, 23)) } -async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise> { >fGenericIndexedTypeForKProp : Symbol(fGenericIndexedTypeForKProp, Decl(asyncFunctionReturnType.ts, 62, 1)) >TObj : Symbol(TObj, Decl(asyncFunctionReturnType.ts, 64, 43)) >Obj : Symbol(Obj, Decl(asyncFunctionReturnType.ts, 8, 1)) @@ -232,6 +232,7 @@ async function fGenericIndexedTypeForKPropkey : Symbol(key, Decl(asyncFunctionReturnType.ts, 64, 93)) >K : Symbol(K, Decl(asyncFunctionReturnType.ts, 64, 60)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >TObj : Symbol(TObj, Decl(asyncFunctionReturnType.ts, 64, 43)) >K : Symbol(K, Decl(asyncFunctionReturnType.ts, 64, 60)) @@ -240,7 +241,7 @@ async function fGenericIndexedTypeForKPropkey : Symbol(key, Decl(asyncFunctionReturnType.ts, 64, 93)) } -async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise> { >fGenericIndexedTypeForPromiseOfKProp : Symbol(fGenericIndexedTypeForPromiseOfKProp, Decl(asyncFunctionReturnType.ts, 66, 1)) >TObj : Symbol(TObj, Decl(asyncFunctionReturnType.ts, 68, 52)) >Obj : Symbol(Obj, Decl(asyncFunctionReturnType.ts, 8, 1)) @@ -251,6 +252,7 @@ async function fGenericIndexedTypeForPromiseOfKPropkey : Symbol(key, Decl(asyncFunctionReturnType.ts, 68, 102)) >K : Symbol(K, Decl(asyncFunctionReturnType.ts, 68, 69)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >TObj : Symbol(TObj, Decl(asyncFunctionReturnType.ts, 68, 52)) >K : Symbol(K, Decl(asyncFunctionReturnType.ts, 68, 69)) @@ -262,7 +264,7 @@ async function fGenericIndexedTypeForPromiseOfKPropkey : Symbol(key, Decl(asyncFunctionReturnType.ts, 68, 102)) } -async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise> { >fGenericIndexedTypeForExplicitPromiseOfKProp : Symbol(fGenericIndexedTypeForExplicitPromiseOfKProp, Decl(asyncFunctionReturnType.ts, 70, 1)) >TObj : Symbol(TObj, Decl(asyncFunctionReturnType.ts, 72, 60)) >Obj : Symbol(Obj, Decl(asyncFunctionReturnType.ts, 8, 1)) @@ -273,6 +275,7 @@ async function fGenericIndexedTypeForExplicitPromiseOfKPropkey : Symbol(key, Decl(asyncFunctionReturnType.ts, 72, 110)) >K : Symbol(K, Decl(asyncFunctionReturnType.ts, 72, 77)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >TObj : Symbol(TObj, Decl(asyncFunctionReturnType.ts, 72, 60)) >K : Symbol(K, Decl(asyncFunctionReturnType.ts, 72, 77)) @@ -285,3 +288,22 @@ async function fGenericIndexedTypeForExplicitPromiseOfKPropobj : Symbol(obj, Decl(asyncFunctionReturnType.ts, 72, 100)) >key : Symbol(key, Decl(asyncFunctionReturnType.ts, 72, 110)) } + +// #27711 + +async function fGeneric(x: T) { +>fGeneric : Symbol(fGeneric, Decl(asyncFunctionReturnType.ts, 74, 1)) +>T : Symbol(T, Decl(asyncFunctionReturnType.ts, 78, 24)) +>x : Symbol(x, Decl(asyncFunctionReturnType.ts, 78, 27)) +>T : Symbol(T, Decl(asyncFunctionReturnType.ts, 78, 24)) + + return x; +>x : Symbol(x, Decl(asyncFunctionReturnType.ts, 78, 27)) +} +const expected: Promise = fGeneric(undefined as Promise); +>expected : Symbol(expected, Decl(asyncFunctionReturnType.ts, 81, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>fGeneric : Symbol(fGeneric, Decl(asyncFunctionReturnType.ts, 74, 1)) +>undefined : Symbol(undefined) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + diff --git a/tests/baselines/reference/asyncFunctionReturnType.types b/tests/baselines/reference/asyncFunctionReturnType.types index d2cb63e0a35f3..e8e68fb0ab587 100644 --- a/tests/baselines/reference/asyncFunctionReturnType.types +++ b/tests/baselines/reference/asyncFunctionReturnType.types @@ -44,9 +44,9 @@ async function fIndexedTypeForPromiseOfStringProp(obj: Obj): PromisePromise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.stringProp : string >obj : Obj >stringProp : string @@ -58,9 +58,9 @@ async function fIndexedTypeForExplicitPromiseOfStringProp(obj: Obj): Promise(obj.stringProp); >Promise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.stringProp : string >obj : Obj >stringProp : string @@ -82,9 +82,9 @@ async function fIndexedTypeForPromiseOfAnyProp(obj: Obj): PromisePromise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.anyProp : any >obj : Obj >anyProp : any @@ -96,9 +96,9 @@ async function fIndexedTypeForExplicitPromiseOfAnyProp(obj: Obj): Promise(obj.anyProp); >Promise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.anyProp : any >obj : Obj >anyProp : any @@ -120,9 +120,9 @@ async function fGenericIndexedTypeForPromiseOfStringProp(obj: return Promise.resolve(obj.stringProp); >Promise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.stringProp : string >obj : TObj >stringProp : string @@ -133,10 +133,10 @@ async function fGenericIndexedTypeForExplicitPromiseOfStringPropobj : TObj return Promise.resolve(obj.stringProp); ->Promise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj.stringProp) : Promise> +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.stringProp : string >obj : TObj >stringProp : string @@ -158,9 +158,9 @@ async function fGenericIndexedTypeForPromiseOfAnyProp(obj: TOb return Promise.resolve(obj.anyProp); >Promise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.anyProp : any >obj : TObj >anyProp : any @@ -171,17 +171,17 @@ async function fGenericIndexedTypeForExplicitPromiseOfAnyProp( >obj : TObj return Promise.resolve(obj.anyProp); ->Promise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj.anyProp) : Promise> +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj.anyProp : any >obj : TObj >anyProp : any } -async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise { ->fGenericIndexedTypeForKProp : (obj: TObj, key: K) => Promise +async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise> { +>fGenericIndexedTypeForKProp : (obj: TObj, key: K) => Promise> >obj : TObj >key : K @@ -191,32 +191,49 @@ async function fGenericIndexedTypeForKPropkey : K } -async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise { ->fGenericIndexedTypeForPromiseOfKProp : (obj: TObj, key: K) => Promise +async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise> { +>fGenericIndexedTypeForPromiseOfKProp : (obj: TObj, key: K) => Promise> >obj : TObj >key : K return Promise.resolve(obj[key]); ->Promise.resolve(obj[key]) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj[key]) : Promise> +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj[key] : TObj[K] >obj : TObj >key : K } -async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise { ->fGenericIndexedTypeForExplicitPromiseOfKProp : (obj: TObj, key: K) => Promise +async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise> { +>fGenericIndexedTypeForExplicitPromiseOfKProp : (obj: TObj, key: K) => Promise> >obj : TObj >key : K return Promise.resolve(obj[key]); ->Promise.resolve(obj[key]) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj[key]) : Promise> +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >obj[key] : TObj[K] >obj : TObj >key : K } + +// #27711 + +async function fGeneric(x: T) { +>fGeneric : (x: T) => Promise> +>x : T + + return x; +>x : T +} +const expected: Promise = fGeneric(undefined as Promise); +>expected : Promise +>fGeneric(undefined as Promise) : Promise +>fGeneric : (x: T) => Promise> +>undefined as Promise : Promise +>undefined : undefined + diff --git a/tests/baselines/reference/asyncImportedPromise_es5.types b/tests/baselines/reference/asyncImportedPromise_es5.types index c8ea6bdf61e5d..9cbb2b782ac03 100644 --- a/tests/baselines/reference/asyncImportedPromise_es5.types +++ b/tests/baselines/reference/asyncImportedPromise_es5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/async/es5/task.ts === export class Task extends Promise { } >Task : Task ->Promise : Promise +>Promise : Promise> === tests/cases/conformance/async/es5/test.ts === import { Task } from "./task"; diff --git a/tests/baselines/reference/asyncImportedPromise_es6.types b/tests/baselines/reference/asyncImportedPromise_es6.types index 05411f1dda588..a14db2cecd2c7 100644 --- a/tests/baselines/reference/asyncImportedPromise_es6.types +++ b/tests/baselines/reference/asyncImportedPromise_es6.types @@ -1,7 +1,7 @@ === tests/cases/conformance/async/es6/task.ts === export class Task extends Promise { } >Task : Task ->Promise : Promise +>Promise : Promise> === tests/cases/conformance/async/es6/test.ts === import { Task } from "./task"; diff --git a/tests/baselines/reference/asyncQualifiedReturnType_es5.types b/tests/baselines/reference/asyncQualifiedReturnType_es5.types index 8df2ac42c50c9..27a4ea6f1a6cb 100644 --- a/tests/baselines/reference/asyncQualifiedReturnType_es5.types +++ b/tests/baselines/reference/asyncQualifiedReturnType_es5.types @@ -4,7 +4,7 @@ namespace X { export class MyPromise extends Promise { >MyPromise : MyPromise ->Promise : Promise +>Promise : Promise> } } diff --git a/tests/baselines/reference/asyncQualifiedReturnType_es6.types b/tests/baselines/reference/asyncQualifiedReturnType_es6.types index f1878fed5d80f..1d6e546d48906 100644 --- a/tests/baselines/reference/asyncQualifiedReturnType_es6.types +++ b/tests/baselines/reference/asyncQualifiedReturnType_es6.types @@ -4,7 +4,7 @@ namespace X { export class MyPromise extends Promise { >MyPromise : MyPromise ->Promise : Promise +>Promise : Promise> } } diff --git a/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.errors.txt b/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.errors.txt index aa8a0572e6be8..33c750d71b0a3 100644 --- a/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.errors.txt +++ b/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.errors.txt @@ -9,5 +9,6 @@ tests/cases/compiler/compareTypeParameterConstrainedByLiteralToLiteral.ts(5,5): t === "x"; // Should be error ~~~~~~~~~ !!! error TS2367: This condition will always return 'false' since the types 'T' and '"x"' have no overlap. +!!! related TS2773 tests/cases/compiler/compareTypeParameterConstrainedByLiteralToLiteral.ts:5:5: Did you forget to use 'await'? } \ No newline at end of file diff --git a/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt b/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt index da497e03a2206..1c2cb3b1e6603 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.errors.txt @@ -161,359 +161,471 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso var r1a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:22:16: Did you forget to use 'await'? var r1a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:23:16: Did you forget to use 'await'? var r1a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:24:16: Did you forget to use 'await'? var r1a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:25:16: Did you forget to use 'await'? var r1a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:26:16: Did you forget to use 'await'? var r1a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:27:16: Did you forget to use 'await'? var r1a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:28:16: Did you forget to use 'await'? var r1b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:30:16: Did you forget to use 'await'? var r1b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:31:16: Did you forget to use 'await'? var r1b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:32:16: Did you forget to use 'await'? var r1b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:33:16: Did you forget to use 'await'? var r1b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:34:16: Did you forget to use 'await'? var r1b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:35:16: Did you forget to use 'await'? var r1b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:36:16: Did you forget to use 'await'? // operator > var r2a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:39:16: Did you forget to use 'await'? var r2a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:40:16: Did you forget to use 'await'? var r2a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:41:16: Did you forget to use 'await'? var r2a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:42:16: Did you forget to use 'await'? var r2a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:43:16: Did you forget to use 'await'? var r2a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:44:16: Did you forget to use 'await'? var r2a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:45:16: Did you forget to use 'await'? var r2b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:47:16: Did you forget to use 'await'? var r2b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:48:16: Did you forget to use 'await'? var r2b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:49:16: Did you forget to use 'await'? var r2b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:50:16: Did you forget to use 'await'? var r2b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:51:16: Did you forget to use 'await'? var r2b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:52:16: Did you forget to use 'await'? var r2b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:53:16: Did you forget to use 'await'? // operator <= var r3a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:56:16: Did you forget to use 'await'? var r3a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:57:16: Did you forget to use 'await'? var r3a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:58:16: Did you forget to use 'await'? var r3a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:59:16: Did you forget to use 'await'? var r3a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:60:16: Did you forget to use 'await'? var r3a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:61:16: Did you forget to use 'await'? var r3a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:62:16: Did you forget to use 'await'? var r3b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:64:16: Did you forget to use 'await'? var r3b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:65:16: Did you forget to use 'await'? var r3b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:66:16: Did you forget to use 'await'? var r3b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:67:16: Did you forget to use 'await'? var r3b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:68:16: Did you forget to use 'await'? var r3b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:69:16: Did you forget to use 'await'? var r3b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:70:16: Did you forget to use 'await'? // operator >= var r4a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:73:16: Did you forget to use 'await'? var r4a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:74:16: Did you forget to use 'await'? var r4a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:75:16: Did you forget to use 'await'? var r4a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:76:16: Did you forget to use 'await'? var r4a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:77:16: Did you forget to use 'await'? var r4a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:78:16: Did you forget to use 'await'? var r4a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:79:16: Did you forget to use 'await'? var r4b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:81:16: Did you forget to use 'await'? var r4b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:82:16: Did you forget to use 'await'? var r4b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:83:16: Did you forget to use 'await'? var r4b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:84:16: Did you forget to use 'await'? var r4b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:85:16: Did you forget to use 'await'? var r4b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:86:16: Did you forget to use 'await'? var r4b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:87:16: Did you forget to use 'await'? // operator == var r5a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:90:16: Did you forget to use 'await'? var r5a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:91:16: Did you forget to use 'await'? var r5a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:92:16: Did you forget to use 'await'? var r5a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:93:16: Did you forget to use 'await'? var r5a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:94:16: Did you forget to use 'await'? var r5a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:95:16: Did you forget to use 'await'? var r5a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:96:16: Did you forget to use 'await'? var r5b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:98:16: Did you forget to use 'await'? var r5b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:99:16: Did you forget to use 'await'? var r5b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:100:16: Did you forget to use 'await'? var r5b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:101:16: Did you forget to use 'await'? var r5b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:102:16: Did you forget to use 'await'? var r5b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:103:16: Did you forget to use 'await'? var r5b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:104:16: Did you forget to use 'await'? // operator != var r6a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:107:16: Did you forget to use 'await'? var r6a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:108:16: Did you forget to use 'await'? var r6a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:109:16: Did you forget to use 'await'? var r6a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:110:16: Did you forget to use 'await'? var r6a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:111:16: Did you forget to use 'await'? var r6a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:112:16: Did you forget to use 'await'? var r6a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:113:16: Did you forget to use 'await'? var r6b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:115:16: Did you forget to use 'await'? var r6b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:116:16: Did you forget to use 'await'? var r6b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:117:16: Did you forget to use 'await'? var r6b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:118:16: Did you forget to use 'await'? var r6b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:119:16: Did you forget to use 'await'? var r6b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:120:16: Did you forget to use 'await'? var r6b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:121:16: Did you forget to use 'await'? // operator === var r7a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:124:16: Did you forget to use 'await'? var r7a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:125:16: Did you forget to use 'await'? var r7a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:126:16: Did you forget to use 'await'? var r7a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:127:16: Did you forget to use 'await'? var r7a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:128:16: Did you forget to use 'await'? var r7a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:129:16: Did you forget to use 'await'? var r7a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:130:16: Did you forget to use 'await'? var r7b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:132:16: Did you forget to use 'await'? var r7b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:133:16: Did you forget to use 'await'? var r7b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:134:16: Did you forget to use 'await'? var r7b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:135:16: Did you forget to use 'await'? var r7b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:136:16: Did you forget to use 'await'? var r7b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:137:16: Did you forget to use 'await'? var r7b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:138:16: Did you forget to use 'await'? // operator !== var r8a1 = t < a; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:141:16: Did you forget to use 'await'? var r8a2 = t < b; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'number'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:142:16: Did you forget to use 'await'? var r8a3 = t < c; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'string'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:143:16: Did you forget to use 'await'? var r8a4 = t < d; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'void'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:144:16: Did you forget to use 'await'? var r8a5 = t < e; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'E'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:145:16: Did you forget to use 'await'? var r8a6 = t < f; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and '{ a: string; }'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:146:16: Did you forget to use 'await'? var r8a7 = t < g; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'T' and 'any[]'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:147:16: Did you forget to use 'await'? var r8b1 = a < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'boolean' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:149:16: Did you forget to use 'await'? var r8b2 = b < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'number' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:150:16: Did you forget to use 'await'? var r8b3 = c < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'string' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:151:16: Did you forget to use 'await'? var r8b4 = d < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'void' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:152:16: Did you forget to use 'await'? var r8b5 = e < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'E' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:153:16: Did you forget to use 'await'? var r8b6 = f < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types '{ a: string; }' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:154:16: Did you forget to use 'await'? var r8b7 = g < t; ~~~~~ !!! error TS2365: Operator '<' cannot be applied to types 'any[]' and 'T'. +!!! related TS2773 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts:155:16: Did you forget to use 'await'? } \ No newline at end of file diff --git a/tests/baselines/reference/contextuallyTypeAsyncFunctionAwaitOperand.types b/tests/baselines/reference/contextuallyTypeAsyncFunctionAwaitOperand.types index 377f7c15ae321..2b8f7e79fcbca 100644 --- a/tests/baselines/reference/contextuallyTypeAsyncFunctionAwaitOperand.types +++ b/tests/baselines/reference/contextuallyTypeAsyncFunctionAwaitOperand.types @@ -17,10 +17,10 @@ async function fn1(): Promise { >await new Promise(resolve => resolve({ key: "value" })) : Obj >new Promise(resolve => resolve({ key: "value" })) : Promise >Promise : PromiseConstructor ->resolve => resolve({ key: "value" }) : (resolve: (value?: Obj | PromiseLike) => void) => void ->resolve : (value?: Obj | PromiseLike) => void +>resolve => resolve({ key: "value" }) : (resolve: (value?: Obj) => void) => void +>resolve : (value?: Obj) => void >resolve({ key: "value" }) : void ->resolve : (value?: Obj | PromiseLike) => void +>resolve : (value?: Obj) => void >{ key: "value" } : { key: "value"; } >key : "value" >"value" : "value" diff --git a/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types b/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types index d47a623ffc6c3..f9462634dcec0 100644 --- a/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types +++ b/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types @@ -17,12 +17,12 @@ async function fn2(): Promise { return new Promise(resolve => { >new Promise(resolve => { resolve({ key: "value" }); }) : Promise >Promise : PromiseConstructor ->resolve => { resolve({ key: "value" }); } : (resolve: (value?: Obj | PromiseLike) => void) => void ->resolve : (value?: Obj | PromiseLike) => void +>resolve => { resolve({ key: "value" }); } : (resolve: (value?: Obj) => void) => void +>resolve : (value?: Obj) => void resolve({ key: "value" }); >resolve({ key: "value" }) : void ->resolve : (value?: Obj | PromiseLike) => void +>resolve : (value?: Obj) => void >{ key: "value" } : { key: "value"; } >key : "value" >"value" : "value" @@ -47,12 +47,12 @@ async function fn4(): Promise { >await new Promise(resolve => { resolve({ key: "value" }); }) : Obj >new Promise(resolve => { resolve({ key: "value" }); }) : Promise >Promise : PromiseConstructor ->resolve => { resolve({ key: "value" }); } : (resolve: (value?: Obj | PromiseLike) => void) => void ->resolve : (value?: Obj | PromiseLike) => void +>resolve => { resolve({ key: "value" }); } : (resolve: (value?: Obj) => void) => void +>resolve : (value?: Obj) => void resolve({ key: "value" }); >resolve({ key: "value" }) : void ->resolve : (value?: Obj | PromiseLike) => void +>resolve : (value?: Obj) => void >{ key: "value" } : { key: "value"; } >key : "value" >"value" : "value" diff --git a/tests/baselines/reference/correctOrderOfPromiseMethod.js b/tests/baselines/reference/correctOrderOfPromiseMethod.js index fadda95374f3e..81a91ba06fd81 100644 --- a/tests/baselines/reference/correctOrderOfPromiseMethod.js +++ b/tests/baselines/reference/correctOrderOfPromiseMethod.js @@ -15,7 +15,7 @@ async function countEverything(): Promise { const [resultA, resultB] = await Promise.all([ providerA(), providerB(), - ] as const); + ]); const dataA: A[] = resultA; const dataB: B[] = resultB; @@ -24,6 +24,10 @@ async function countEverything(): Promise { } return 0; } + +// #31179 + +const expected: Promise<["a", "b", "c"]> = Promise.all(undefined as readonly ["a", "b", "c"]); //// [correctOrderOfPromiseMethod.js] @@ -92,3 +96,5 @@ function countEverything() { }); }); } +// #31179 +var expected = Promise.all(undefined); diff --git a/tests/baselines/reference/correctOrderOfPromiseMethod.symbols b/tests/baselines/reference/correctOrderOfPromiseMethod.symbols index 1e67e9444c67f..6efd2fdd69fc8 100644 --- a/tests/baselines/reference/correctOrderOfPromiseMethod.symbols +++ b/tests/baselines/reference/correctOrderOfPromiseMethod.symbols @@ -33,9 +33,9 @@ async function countEverything(): Promise { const [resultA, resultB] = await Promise.all([ >resultA : Symbol(resultA, Decl(correctOrderOfPromiseMethod.ts, 13, 11)) >resultB : Symbol(resultB, Decl(correctOrderOfPromiseMethod.ts, 13, 19)) ->Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more) +>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) ->all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more) +>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) providerA(), >providerA : Symbol(providerA, Decl(correctOrderOfPromiseMethod.ts, 10, 9)) @@ -43,7 +43,7 @@ async function countEverything(): Promise { providerB(), >providerB : Symbol(providerB, Decl(correctOrderOfPromiseMethod.ts, 11, 9)) - ] as const); + ]); const dataA: A[] = resultA; >dataA : Symbol(dataA, Decl(correctOrderOfPromiseMethod.ts, 18, 9)) @@ -70,3 +70,13 @@ async function countEverything(): Promise { return 0; } +// #31179 + +const expected: Promise<["a", "b", "c"]> = Promise.all(undefined as readonly ["a", "b", "c"]); +>expected : Symbol(expected, Decl(correctOrderOfPromiseMethod.ts, 28, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/correctOrderOfPromiseMethod.types b/tests/baselines/reference/correctOrderOfPromiseMethod.types index a6f2c46782e0a..226858f0fe2ee 100644 --- a/tests/baselines/reference/correctOrderOfPromiseMethod.types +++ b/tests/baselines/reference/correctOrderOfPromiseMethod.types @@ -28,13 +28,12 @@ async function countEverything(): Promise { const [resultA, resultB] = await Promise.all([ >resultA : A[] >resultB : B[] ->await Promise.all([ providerA(), providerB(), ] as const) : [A[], B[]] ->Promise.all([ providerA(), providerB(), ] as const) : Promise<[A[], B[]]> ->Promise.all : { (values: Iterable>): Promise; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: readonly (T | PromiseLike)[]): Promise; } +>await Promise.all([ providerA(), providerB(), ]) : [A[], B[]] +>Promise.all([ providerA(), providerB(), ]) : Promise<[A[], B[]]> +>Promise.all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: readonly (T | PromiseLike)[]): Promise; } ->[ providerA(), providerB(), ] as const : readonly [Promise, Promise] ->[ providerA(), providerB(), ] : readonly [Promise, Promise] +>all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>[ providerA(), providerB(), ] : [Promise, Promise] providerA(), >providerA() : Promise @@ -44,7 +43,7 @@ async function countEverything(): Promise { >providerB() : Promise >providerB : () => Promise - ] as const); + ]); const dataA: A[] = resultA; >dataA : A[] @@ -72,3 +71,14 @@ async function countEverything(): Promise { >0 : 0 } +// #31179 + +const expected: Promise<["a", "b", "c"]> = Promise.all(undefined as readonly ["a", "b", "c"]); +>expected : Promise<["a", "b", "c"]> +>Promise.all(undefined as readonly ["a", "b", "c"]) : Promise<["a", "b", "c"]> +>Promise.all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>Promise : PromiseConstructor +>all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>undefined as readonly ["a", "b", "c"] : readonly ["a", "b", "c"] +>undefined : undefined + diff --git a/tests/baselines/reference/docker/azure-sdk.log b/tests/baselines/reference/docker/azure-sdk.log index 7eb6eb8da47d3..6ad8f94ff58ee 100644 --- a/tests/baselines/reference/docker/azure-sdk.log +++ b/tests/baselines/reference/docker/azure-sdk.log @@ -2,7 +2,7 @@ Exit Code: 1 Standard output: Rush Multi-Project Build Tool 5.X.X - https://rushjs.io -Node.js version is 12.14.0 (LTS) +Node.js version is 12.14.1 (LTS) Starting "rush rebuild" Executing a maximum of ?simultaneous processes... XX of XX: [@azure/abort-controller] completed successfully in ? seconds @@ -20,7 +20,7 @@ XX of XX: [@azure/event-processor-host] completed successfully in ? seconds XX of XX: [@azure/keyvault-keys] completed successfully in ? seconds XX of XX: [@azure/keyvault-secrets] completed successfully in ? seconds XX of XX: [@azure/storage-blob] completed successfully in ? seconds -XX of XX: [@azure/cognitiveservices-textanalytics] completed successfully in ? seconds +XX of XX: [@azure/ai-text-analytics] completed successfully in ? seconds XX of XX: [@azure/core-arm] completed successfully in ? seconds XX of XX: [@azure/core-tracing] completed successfully in ? seconds dist-esm/index.js → dist/index.js... @@ -71,7 +71,7 @@ SUCCESS (23) @azure/keyvault-keys (? seconds) @azure/keyvault-secrets (? seconds) @azure/storage-blob (? seconds) -@azure/cognitiveservices-textanalytics (? seconds) +@azure/ai-text-analytics (? seconds) @azure/core-arm (? seconds) @azure/core-tracing (? seconds) @azure/service-bus (? seconds) @@ -139,7 +139,7 @@ npm ERR! Failed at the @azure/keyvault-certificates@X.X.X extract-api script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/XXXX-XX-XXXXXXXXX-debug.log -@azure/storage-file-datalake (? seconds) +@azure/storage-file-datalake ( ? seconds) npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! @azure/storage-file-datalake@X.X.X-preview.7 build:es6: `tsc -p tsconfig.json` diff --git a/tests/baselines/reference/docker/xterm.js.log b/tests/baselines/reference/docker/xterm.js.log index 7fa6b68dfe85f..317a36de373af 100644 --- a/tests/baselines/reference/docker/xterm.js.log +++ b/tests/baselines/reference/docker/xterm.js.log @@ -5,14 +5,18 @@ Standard output: > tsc -b ./tsconfig.all.json node_modules/@types/ws/index.d.ts(44,39): error TS2694: Namespace '"url"' has no exported member 'URL'. node_modules/@types/ws/index.d.ts(45,39): error TS2694: Namespace '"url"' has no exported member 'URL'. +test/api/TestUtils.ts(16,26): error TS2345: Argument of type 'Promise' is not assignable to parameter of type 'void'. node_modules/@types/ws/index.d.ts(44,39): error TS2694: Namespace '"url"' has no exported member 'URL'. node_modules/@types/ws/index.d.ts(45,39): error TS2694: Namespace '"url"' has no exported member 'URL'. +addons/xterm-addon-attach/src/AttachAddon.api.ts(76,26): error TS2345: Argument of type 'Promise' is not assignable to parameter of type 'void'. node_modules/@types/ws/index.d.ts(44,39): error TS2694: Namespace '"url"' has no exported member 'URL'. node_modules/@types/ws/index.d.ts(45,39): error TS2694: Namespace '"url"' has no exported member 'URL'. node_modules/@types/ws/index.d.ts(44,39): error TS2694: Namespace '"url"' has no exported member 'URL'. node_modules/@types/ws/index.d.ts(45,39): error TS2694: Namespace '"url"' has no exported member 'URL'. +addons/xterm-addon-web-links/src/WebLinksAddon.api.ts(98,26): error TS2345: Argument of type 'Promise' is not assignable to parameter of type 'void'. node_modules/@types/ws/index.d.ts(44,39): error TS2694: Namespace '"url"' has no exported member 'URL'. node_modules/@types/ws/index.d.ts(45,39): error TS2694: Namespace '"url"' has no exported member 'URL'. +addons/xterm-addon-webgl/src/WebglRenderer.api.ts(919,26): error TS2345: Argument of type 'Promise' is not assignable to parameter of type 'void'. node_modules/@types/ws/index.d.ts(44,39): error TS2694: Namespace '"url"' has no exported member 'URL'. node_modules/@types/ws/index.d.ts(45,39): error TS2694: Namespace '"url"' has no exported member 'URL'. diff --git a/tests/baselines/reference/exportAsNamespace1_amd.errors.txt b/tests/baselines/reference/exportAsNamespace1_amd.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_amd.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace1_amd.js b/tests/baselines/reference/exportAsNamespace1_amd.js deleted file mode 100644 index 240bf93cdc9dc..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_amd.js +++ /dev/null @@ -1,48 +0,0 @@ -//// [tests/cases/conformance/es2020/modules/exportAsNamespace1_amd.ts] //// - -//// [0.ts] -export const a = 1; -export const b = 2; - -//// [1.ts] -export * as ns from './0'; -ns.a; -ns.b; - -//// [2.ts] -import * as foo from './1' - -foo.ns.a; -foo.ns.b; - -//// [0.js] -define(["require", "exports"], function (require, exports) { - "use strict"; - exports.__esModule = true; - exports.a = 1; - exports.b = 2; -}); -//// [1.js] -define(["require", "exports", "./0"], function (require, exports, ns) { - "use strict"; - exports.__esModule = true; - exports.ns = ns; - ns.a; - ns.b; -}); -//// [2.js] -define(["require", "exports", "./1"], function (require, exports, foo) { - "use strict"; - exports.__esModule = true; - foo.ns.a; - foo.ns.b; -}); - - -//// [0.d.ts] -export declare const a = 1; -export declare const b = 2; -//// [1.d.ts] -export * as ns from './0'; -//// [2.d.ts] -export {}; diff --git a/tests/baselines/reference/exportAsNamespace1_amd.symbols b/tests/baselines/reference/exportAsNamespace1_amd.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_amd.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace1_amd.types b/tests/baselines/reference/exportAsNamespace1_amd.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_amd.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportAsNamespace1_esnext.errors.txt b/tests/baselines/reference/exportAsNamespace1_esnext.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_esnext.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace1_esnext.js b/tests/baselines/reference/exportAsNamespace1_esnext.js deleted file mode 100644 index e662998bb926f..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_esnext.js +++ /dev/null @@ -1,37 +0,0 @@ -//// [tests/cases/conformance/es2020/modules/exportAsNamespace1_esnext.ts] //// - -//// [0.ts] -export const a = 1; -export const b = 2; - -//// [1.ts] -export * as ns from './0'; -ns.a; -ns.b; - -//// [2.ts] -import * as foo from './1' - -foo.ns.a; -foo.ns.b; - -//// [0.js] -export var a = 1; -export var b = 2; -//// [1.js] -export * as ns from './0'; -ns.a; -ns.b; -//// [2.js] -import * as foo from './1'; -foo.ns.a; -foo.ns.b; - - -//// [0.d.ts] -export declare const a = 1; -export declare const b = 2; -//// [1.d.ts] -export * as ns from './0'; -//// [2.d.ts] -export {}; diff --git a/tests/baselines/reference/exportAsNamespace1_esnext.symbols b/tests/baselines/reference/exportAsNamespace1_esnext.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_esnext.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace1_esnext.types b/tests/baselines/reference/exportAsNamespace1_esnext.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_esnext.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportAsNamespace1_system.errors.txt b/tests/baselines/reference/exportAsNamespace1_system.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_system.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace1_system.js b/tests/baselines/reference/exportAsNamespace1_system.js deleted file mode 100644 index f326d4ad7fc20..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_system.js +++ /dev/null @@ -1,72 +0,0 @@ -//// [tests/cases/conformance/es2020/modules/exportAsNamespace1_system.ts] //// - -//// [0.ts] -export const a = 1; -export const b = 2; - -//// [1.ts] -export * as ns from './0'; -ns.a; -ns.b; - -//// [2.ts] -import * as foo from './1' - -foo.ns.a; -foo.ns.b; - -//// [0.js] -System.register([], function (exports_1, context_1) { - "use strict"; - var a, b; - var __moduleName = context_1 && context_1.id; - return { - setters: [], - execute: function () { - exports_1("a", a = 1); - exports_1("b", b = 2); - } - }; -}); -//// [1.js] -System.register(["./0"], function (exports_1, context_1) { - "use strict"; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (ns_1) { - exports_1("ns", ns_1); - } - ], - execute: function () { - ns.a; - ns.b; - } - }; -}); -//// [2.js] -System.register(["./1"], function (exports_1, context_1) { - "use strict"; - var foo; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (foo_1) { - foo = foo_1; - } - ], - execute: function () { - foo.ns.a; - foo.ns.b; - } - }; -}); - - -//// [0.d.ts] -export declare const a = 1; -export declare const b = 2; -//// [1.d.ts] -export * as ns from './0'; -//// [2.d.ts] -export {}; diff --git a/tests/baselines/reference/exportAsNamespace1_system.symbols b/tests/baselines/reference/exportAsNamespace1_system.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_system.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace1_system.types b/tests/baselines/reference/exportAsNamespace1_system.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_system.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportAsNamespace1_umd.errors.txt b/tests/baselines/reference/exportAsNamespace1_umd.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_umd.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace1_umd.js b/tests/baselines/reference/exportAsNamespace1_umd.js deleted file mode 100644 index 35d797c66b79a..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_umd.js +++ /dev/null @@ -1,73 +0,0 @@ -//// [tests/cases/conformance/es2020/modules/exportAsNamespace1_umd.ts] //// - -//// [0.ts] -export const a = 1; -export const b = 2; - -//// [1.ts] -export * as ns from './0'; -ns.a; -ns.b; - -//// [2.ts] -import * as foo from './1' - -foo.ns.a; -foo.ns.b; - -//// [0.js] -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports"], factory); - } -})(function (require, exports) { - "use strict"; - exports.__esModule = true; - exports.a = 1; - exports.b = 2; -}); -//// [1.js] -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports", "./0"], factory); - } -})(function (require, exports) { - "use strict"; - exports.__esModule = true; - exports.ns = require("./0"); - ns.a; - ns.b; -}); -//// [2.js] -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports", "./1"], factory); - } -})(function (require, exports) { - "use strict"; - exports.__esModule = true; - var foo = require("./1"); - foo.ns.a; - foo.ns.b; -}); - - -//// [0.d.ts] -export declare const a = 1; -export declare const b = 2; -//// [1.d.ts] -export * as ns from './0'; -//// [2.d.ts] -export {}; diff --git a/tests/baselines/reference/exportAsNamespace1_umd.symbols b/tests/baselines/reference/exportAsNamespace1_umd.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_umd.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace1_umd.types b/tests/baselines/reference/exportAsNamespace1_umd.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace1_umd.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportAsNamespace2_amd.errors.txt b/tests/baselines/reference/exportAsNamespace2_amd.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_amd.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace2_amd.js b/tests/baselines/reference/exportAsNamespace2_amd.js deleted file mode 100644 index 9bb659b380087..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_amd.js +++ /dev/null @@ -1,56 +0,0 @@ -//// [tests/cases/conformance/es2020/modules/exportAsNamespace2_amd.ts] //// - -//// [0.ts] -export const a = 1; -export const b = 2; - -//// [1.ts] -export * as ns from './0'; -ns.a; -ns.b; - -//// [2.ts] -import * as foo from './1' - -foo.ns.a; -foo.ns.b; - -//// [0.js] -define(["require", "exports"], function (require, exports) { - "use strict"; - exports.__esModule = true; - exports.a = 1; - exports.b = 2; -}); -//// [1.js] -define(["require", "exports", "./0"], function (require, exports, ns) { - "use strict"; - exports.__esModule = true; - exports.ns = ns; - ns.a; - ns.b; -}); -//// [2.js] -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -define(["require", "exports", "./1"], function (require, exports, foo) { - "use strict"; - exports.__esModule = true; - foo = __importStar(foo); - foo.ns.a; - foo.ns.b; -}); - - -//// [0.d.ts] -export declare const a = 1; -export declare const b = 2; -//// [1.d.ts] -export * as ns from './0'; -//// [2.d.ts] -export {}; diff --git a/tests/baselines/reference/exportAsNamespace2_amd.symbols b/tests/baselines/reference/exportAsNamespace2_amd.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_amd.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace2_amd.types b/tests/baselines/reference/exportAsNamespace2_amd.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_amd.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportAsNamespace2_esnext.errors.txt b/tests/baselines/reference/exportAsNamespace2_esnext.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_esnext.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace2_esnext.symbols b/tests/baselines/reference/exportAsNamespace2_esnext.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_esnext.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace2_esnext.types b/tests/baselines/reference/exportAsNamespace2_esnext.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_esnext.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportAsNamespace2_system.errors.txt b/tests/baselines/reference/exportAsNamespace2_system.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_system.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace2_system.js b/tests/baselines/reference/exportAsNamespace2_system.js deleted file mode 100644 index 8a4582bd4ce8b..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_system.js +++ /dev/null @@ -1,72 +0,0 @@ -//// [tests/cases/conformance/es2020/modules/exportAsNamespace2_system.ts] //// - -//// [0.ts] -export const a = 1; -export const b = 2; - -//// [1.ts] -export * as ns from './0'; -ns.a; -ns.b; - -//// [2.ts] -import * as foo from './1' - -foo.ns.a; -foo.ns.b; - -//// [0.js] -System.register([], function (exports_1, context_1) { - "use strict"; - var a, b; - var __moduleName = context_1 && context_1.id; - return { - setters: [], - execute: function () { - exports_1("a", a = 1); - exports_1("b", b = 2); - } - }; -}); -//// [1.js] -System.register(["./0"], function (exports_1, context_1) { - "use strict"; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (ns_1) { - exports_1("ns", ns_1); - } - ], - execute: function () { - ns.a; - ns.b; - } - }; -}); -//// [2.js] -System.register(["./1"], function (exports_1, context_1) { - "use strict"; - var foo; - var __moduleName = context_1 && context_1.id; - return { - setters: [ - function (foo_1) { - foo = foo_1; - } - ], - execute: function () { - foo.ns.a; - foo.ns.b; - } - }; -}); - - -//// [0.d.ts] -export declare const a = 1; -export declare const b = 2; -//// [1.d.ts] -export * as ns from './0'; -//// [2.d.ts] -export {}; diff --git a/tests/baselines/reference/exportAsNamespace2_system.symbols b/tests/baselines/reference/exportAsNamespace2_system.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_system.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace2_system.types b/tests/baselines/reference/exportAsNamespace2_system.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_system.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportAsNamespace2_umd.errors.txt b/tests/baselines/reference/exportAsNamespace2_umd.errors.txt deleted file mode 100644 index 90b3756336ae0..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_umd.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/es2020/modules/1.ts(2,1): error TS2304: Cannot find name 'ns'. -tests/cases/conformance/es2020/modules/1.ts(3,1): error TS2304: Cannot find name 'ns'. - - -==== tests/cases/conformance/es2020/modules/0.ts (0 errors) ==== - export const a = 1; - export const b = 2; - -==== tests/cases/conformance/es2020/modules/1.ts (2 errors) ==== - export * as ns from './0'; - ns.a; - ~~ -!!! error TS2304: Cannot find name 'ns'. - ns.b; - ~~ -!!! error TS2304: Cannot find name 'ns'. - -==== tests/cases/conformance/es2020/modules/2.ts (0 errors) ==== - import * as foo from './1' - - foo.ns.a; - foo.ns.b; \ No newline at end of file diff --git a/tests/baselines/reference/exportAsNamespace2_umd.js b/tests/baselines/reference/exportAsNamespace2_umd.js deleted file mode 100644 index e01ba1ae3771e..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_umd.js +++ /dev/null @@ -1,87 +0,0 @@ -//// [tests/cases/conformance/es2020/modules/exportAsNamespace2_umd.ts] //// - -//// [0.ts] -export const a = 1; -export const b = 2; - -//// [1.ts] -export * as ns from './0'; -ns.a; -ns.b; - -//// [2.ts] -import * as foo from './1' - -foo.ns.a; -foo.ns.b; - -//// [0.js] -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports"], factory); - } -})(function (require, exports) { - "use strict"; - exports.__esModule = true; - exports.a = 1; - exports.b = 2; -}); -//// [1.js] -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports", "./0"], factory); - } -})(function (require, exports) { - "use strict"; - exports.__esModule = true; - exports.ns = __importStar(require("./0")); - ns.a; - ns.b; -}); -//// [2.js] -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -(function (factory) { - if (typeof module === "object" && typeof module.exports === "object") { - var v = factory(require, exports); - if (v !== undefined) module.exports = v; - } - else if (typeof define === "function" && define.amd) { - define(["require", "exports", "./1"], factory); - } -})(function (require, exports) { - "use strict"; - exports.__esModule = true; - var foo = __importStar(require("./1")); - foo.ns.a; - foo.ns.b; -}); - - -//// [0.d.ts] -export declare const a = 1; -export declare const b = 2; -//// [1.d.ts] -export * as ns from './0'; -//// [2.d.ts] -export {}; diff --git a/tests/baselines/reference/exportAsNamespace2_umd.symbols b/tests/baselines/reference/exportAsNamespace2_umd.symbols deleted file mode 100644 index 3c6b7529361ba..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_umd.symbols +++ /dev/null @@ -1,32 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : Symbol(a, Decl(0.ts, 0, 12)) - -export const b = 2; ->b : Symbol(b, Decl(0.ts, 1, 12)) - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : Symbol(ns, Decl(1.ts, 0, 11)) - -ns.a; -ns.b; - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : Symbol(foo, Decl(2.ts, 0, 6)) - -foo.ns.a; ->foo.ns.a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->a : Symbol(foo.ns.a, Decl(0.ts, 0, 12)) - -foo.ns.b; ->foo.ns.b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) ->foo.ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->foo : Symbol(foo, Decl(2.ts, 0, 6)) ->ns : Symbol(foo.ns, Decl(1.ts, 0, 11)) ->b : Symbol(foo.ns.b, Decl(0.ts, 1, 12)) - diff --git a/tests/baselines/reference/exportAsNamespace2_umd.types b/tests/baselines/reference/exportAsNamespace2_umd.types deleted file mode 100644 index 43e33efa82b30..0000000000000 --- a/tests/baselines/reference/exportAsNamespace2_umd.types +++ /dev/null @@ -1,41 +0,0 @@ -=== tests/cases/conformance/es2020/modules/0.ts === -export const a = 1; ->a : 1 ->1 : 1 - -export const b = 2; ->b : 2 ->2 : 2 - -=== tests/cases/conformance/es2020/modules/1.ts === -export * as ns from './0'; ->ns : typeof ns - -ns.a; ->ns.a : any ->ns : any ->a : any - -ns.b; ->ns.b : any ->ns : any ->b : any - -=== tests/cases/conformance/es2020/modules/2.ts === -import * as foo from './1' ->foo : typeof foo - -foo.ns.a; ->foo.ns.a : 1 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->a : 1 - -foo.ns.b; ->foo.ns.b : 2 ->foo.ns : typeof foo.ns ->foo : typeof foo ->ns : typeof foo.ns ->b : 2 - diff --git a/tests/baselines/reference/exportDefaultAsyncFunction2.types b/tests/baselines/reference/exportDefaultAsyncFunction2.types index 0e6ad89ccdfe6..76194df7b18ef 100644 --- a/tests/baselines/reference/exportDefaultAsyncFunction2.types +++ b/tests/baselines/reference/exportDefaultAsyncFunction2.types @@ -19,9 +19,9 @@ export default async(() => await(Promise.resolve(1))); >await(Promise.resolve(1)) : any >await : (...args: any[]) => any >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 === tests/cases/compiler/b.ts === diff --git a/tests/baselines/reference/forAwaitForUnion.types b/tests/baselines/reference/forAwaitForUnion.types index 180197b26eafc..db54e1d0e43f3 100644 --- a/tests/baselines/reference/forAwaitForUnion.types +++ b/tests/baselines/reference/forAwaitForUnion.types @@ -4,7 +4,7 @@ async function f(source: Iterable | AsyncIterable) { >source : Iterable | AsyncIterable for await (const x of source) { ->x : T +>x : T | Awaited >source : Iterable | AsyncIterable } } diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index 1974fe17bea80..ed6928a434188 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -835,9 +835,9 @@ const fn30: Fn = pipe( const promise = Promise.resolve(1); >promise : Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 promise.then( diff --git a/tests/baselines/reference/includeEs2015Promise.js b/tests/baselines/reference/includeEs2015Promise.js new file mode 100644 index 0000000000000..8377f011e70c3 --- /dev/null +++ b/tests/baselines/reference/includeEs2015Promise.js @@ -0,0 +1,4 @@ +//// [includeEs2015Promise.ts] + + +//// [includeEs2015Promise.js] diff --git a/tests/baselines/reference/includeEs2015Promise.symbols b/tests/baselines/reference/includeEs2015Promise.symbols new file mode 100644 index 0000000000000..afab37ebc84d1 --- /dev/null +++ b/tests/baselines/reference/includeEs2015Promise.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/includeEs2015Promise.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/includeEs2015Promise.types b/tests/baselines/reference/includeEs2015Promise.types new file mode 100644 index 0000000000000..afab37ebc84d1 --- /dev/null +++ b/tests/baselines/reference/includeEs2015Promise.types @@ -0,0 +1,3 @@ +=== tests/cases/compiler/includeEs2015Promise.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.symbols b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.symbols index ecf867a2bf715..099c5761978d6 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.symbols +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.symbols @@ -381,9 +381,9 @@ const f1: F = () => { >F : Symbol(F, Decl(inferFromGenericFunctionReturnTypes3.ts, 153, 2)) return Promise.all([ ->Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more) +>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) ->all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more) +>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) { name: "David Gomes", >name : Symbol(name, Decl(inferFromGenericFunctionReturnTypes3.ts, 159, 9)) diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index f9192dd11baad..66219c7246c98 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -7,9 +7,9 @@ function truePromise(): Promise { return Promise.resolve(true); >Promise.resolve(true) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >true : true } @@ -409,14 +409,14 @@ type F = () => Promise>; const f1: F = () => { >f1 : F ->() => { return Promise.all([ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ]);} : () => Promise<[{ name: string; age: number; position: "GOALKEEPER"; }, { name: string; age: number; position: "STRIKER"; }]> +>() => { return Promise.all([ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ]);} : () => Promise<({ name: string; age: number; position: "GOALKEEPER"; } | { name: string; age: number; position: "STRIKER"; })[]> return Promise.all([ ->Promise.all([ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ]) : Promise<[{ name: string; age: number; position: "GOALKEEPER"; }, { name: string; age: number; position: "STRIKER"; }]> ->Promise.all : { (values: Iterable>): Promise; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: readonly (T | PromiseLike)[]): Promise; } +>Promise.all([ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ]) : Promise<({ name: string; age: number; position: "GOALKEEPER"; } | { name: string; age: number; position: "STRIKER"; })[]> +>Promise.all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: readonly (T | PromiseLike)[]): Promise; } ->[ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ] : [{ name: string; age: number; position: "GOALKEEPER"; }, { name: string; age: number; position: "STRIKER"; }] +>all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>[ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ] : ({ name: string; age: number; position: "GOALKEEPER"; } | { name: string; age: number; position: "STRIKER"; })[] { >{ name: "David Gomes", age: 23, position: "GOALKEEPER", } : { name: string; age: number; position: "GOALKEEPER"; } diff --git a/tests/baselines/reference/inferenceLimit.symbols b/tests/baselines/reference/inferenceLimit.symbols index 4b7091a05857e..2c2a43c35bb52 100644 --- a/tests/baselines/reference/inferenceLimit.symbols +++ b/tests/baselines/reference/inferenceLimit.symbols @@ -61,9 +61,9 @@ export class BrokenClass { return Promise.all(result.map(populateItems)) >Promise.all(result.map(populateItems)) .then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) ->Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more) +>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) ->all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more) +>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) >result.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >result : Symbol(result, Decl(file1.ts, 10, 7)) >map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/inferenceLimit.types b/tests/baselines/reference/inferenceLimit.types index fc2836e6dea9c..bbd76281afd97 100644 --- a/tests/baselines/reference/inferenceLimit.types +++ b/tests/baselines/reference/inferenceLimit.types @@ -19,8 +19,8 @@ export class BrokenClass { >new Promise>((resolve, reject) => { let result: Array = []; let populateItems = (order) => { return new Promise((resolve, reject) => { this.doStuff(order.id) .then((items) => { order.items = items; resolve(order); }); }); }; return Promise.all(result.map(populateItems)) .then((orders: Array) => { resolve(orders); }); }) : Promise >Promise : PromiseConstructor >MyModule : any ->(resolve, reject) => { let result: Array = []; let populateItems = (order) => { return new Promise((resolve, reject) => { this.doStuff(order.id) .then((items) => { order.items = items; resolve(order); }); }); }; return Promise.all(result.map(populateItems)) .then((orders: Array) => { resolve(orders); }); } : (resolve: (value?: MyModule.MyModel[] | PromiseLike) => void, reject: (reason?: any) => void) => Promise ->resolve : (value?: MyModule.MyModel[] | PromiseLike) => void +>(resolve, reject) => { let result: Array = []; let populateItems = (order) => { return new Promise((resolve, reject) => { this.doStuff(order.id) .then((items) => { order.items = items; resolve(order); }); }); }; return Promise.all(result.map(populateItems)) .then((orders: Array) => { resolve(orders); }); } : (resolve: (value?: MyModule.MyModel[]) => void, reject: (reason?: any) => void) => Promise +>resolve : (value?: MyModule.MyModel[]) => void >reject : (reason?: any) => void let result: Array = []; @@ -76,9 +76,9 @@ export class BrokenClass { >Promise.all(result.map(populateItems)) .then((orders: Array) => { resolve(orders); }) : Promise >Promise.all(result.map(populateItems)) .then : (onfulfilled?: (value: unknown[]) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >Promise.all(result.map(populateItems)) : Promise ->Promise.all : { (values: Iterable>): Promise; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: readonly (T | PromiseLike)[]): Promise; } +>Promise.all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: readonly (T | PromiseLike)[]): Promise; } +>all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >result.map(populateItems) : Promise[] >result.map : (callbackfn: (value: MyModule.MyModel, index: number, array: MyModule.MyModel[]) => U, thisArg?: any) => U[] >result : MyModule.MyModel[] @@ -93,7 +93,7 @@ export class BrokenClass { resolve(orders); >resolve(orders) : void ->resolve : (value?: MyModule.MyModel[] | PromiseLike) => void +>resolve : (value?: MyModule.MyModel[]) => void >orders : MyModule.MyModel[] }); diff --git a/tests/baselines/reference/instantiateContextualTypes.types b/tests/baselines/reference/instantiateContextualTypes.types index b5317b6f7561f..315a5daa90181 100644 --- a/tests/baselines/reference/instantiateContextualTypes.types +++ b/tests/baselines/reference/instantiateContextualTypes.types @@ -342,9 +342,9 @@ class Interesting { >Promise.resolve().then(() => { if (1 < 2) { return 'SOMETHING'; } return 'ELSE'; }) : Promise >Promise.resolve().then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => { if (1 < 2) { return 'SOMETHING'; } return 'ELSE'; } : () => "SOMETHING" | "ELSE" @@ -369,9 +369,9 @@ class Interesting { >Promise.resolve().then(() => { return 'ELSE'; }) : Promise >Promise.resolve().then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => { return 'ELSE'; } : () => "ELSE" @@ -388,9 +388,9 @@ class Interesting { >Promise.resolve().then(() => { if (1 < 2) { return 'SOMETHING'; } return 'SOMETHING'; }) : Promise >Promise.resolve().then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => { if (1 < 2) { return 'SOMETHING'; } return 'SOMETHING'; } : () => "SOMETHING" diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types index 3fab5033c2305..8b481ff7a35af 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types @@ -27,18 +27,18 @@ function returnAnyArray(arr) { var anyPromise = Promise.resolve(5); >anyPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >5 : 5 /** @type {Promise} */ var numberPromise = Promise.resolve(5); >numberPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >5 : 5 /** diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types index 82ff886f1ec68..a8d71f243f5c5 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types @@ -27,18 +27,18 @@ function returnNotAnyArray(arr) { var notAnyPromise = Promise.resolve(5); >notAnyPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >5 : 5 /** @type {Promise} */ var numberPromise = Promise.resolve(5); >numberPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >5 : 5 /** diff --git a/tests/baselines/reference/mappedTypesArraysTuples.js b/tests/baselines/reference/mappedTypesArraysTuples.js index 7bd4b03a6e54f..516cf6685e996 100644 --- a/tests/baselines/reference/mappedTypesArraysTuples.js +++ b/tests/baselines/reference/mappedTypesArraysTuples.js @@ -58,7 +58,6 @@ let y21 = nonpartial(x21); declare let x22: { a: number | undefined, b?: string[] }; let y22 = nonpartial(x22); -type Awaited = T extends PromiseLike ? U : T; type Awaitified = { [P in keyof T]: Awaited }; declare function all(...values: T): Promise>; @@ -189,7 +188,6 @@ declare let y22: { a: number; b: string[]; }; -declare type Awaited = T extends PromiseLike ? U : T; declare type Awaitified = { [P in keyof T]: Awaited; }; diff --git a/tests/baselines/reference/mappedTypesArraysTuples.symbols b/tests/baselines/reference/mappedTypesArraysTuples.symbols index 48a3979585c7e..ef4f4f36945ca 100644 --- a/tests/baselines/reference/mappedTypesArraysTuples.symbols +++ b/tests/baselines/reference/mappedTypesArraysTuples.symbols @@ -214,173 +214,164 @@ let y22 = nonpartial(x22); >nonpartial : Symbol(nonpartial, Decl(mappedTypesArraysTuples.ts, 46, 24)) >x22 : Symbol(x22, Decl(mappedTypesArraysTuples.ts, 56, 11)) -type Awaited = T extends PromiseLike ? U : T; ->Awaited : Symbol(Awaited, Decl(mappedTypesArraysTuples.ts, 57, 26)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 59, 13)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 59, 13)) ->PromiseLike : Symbol(PromiseLike, Decl(lib.es5.d.ts, --, --)) ->U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 59, 45)) ->U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 59, 45)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 59, 13)) - type Awaitified = { [P in keyof T]: Awaited }; ->Awaitified : Symbol(Awaitified, Decl(mappedTypesArraysTuples.ts, 59, 57)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 60, 16)) ->P : Symbol(P, Decl(mappedTypesArraysTuples.ts, 60, 24)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 60, 16)) ->Awaited : Symbol(Awaited, Decl(mappedTypesArraysTuples.ts, 57, 26)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 60, 16)) ->P : Symbol(P, Decl(mappedTypesArraysTuples.ts, 60, 24)) +>Awaitified : Symbol(Awaitified, Decl(mappedTypesArraysTuples.ts, 57, 26)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 59, 16)) +>P : Symbol(P, Decl(mappedTypesArraysTuples.ts, 59, 24)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 59, 16)) +>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 59, 16)) +>P : Symbol(P, Decl(mappedTypesArraysTuples.ts, 59, 24)) declare function all(...values: T): Promise>; ->all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 60, 55)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 62, 21)) ->values : Symbol(values, Decl(mappedTypesArraysTuples.ts, 62, 38)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 62, 21)) +>all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 59, 55)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 61, 21)) +>values : Symbol(values, Decl(mappedTypesArraysTuples.ts, 61, 38)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 61, 21)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --)) ->Awaitified : Symbol(Awaitified, Decl(mappedTypesArraysTuples.ts, 59, 57)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 62, 21)) +>Awaitified : Symbol(Awaitified, Decl(mappedTypesArraysTuples.ts, 57, 26)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 61, 21)) function f1(a: number, b: Promise, c: string[], d: Promise) { ->f1 : Symbol(f1, Decl(mappedTypesArraysTuples.ts, 62, 76)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 64, 12)) ->b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 64, 22)) +>f1 : Symbol(f1, Decl(mappedTypesArraysTuples.ts, 61, 76)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 12)) +>b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 63, 22)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --)) ->c : Symbol(c, Decl(mappedTypesArraysTuples.ts, 64, 42)) ->d : Symbol(d, Decl(mappedTypesArraysTuples.ts, 64, 55)) +>c : Symbol(c, Decl(mappedTypesArraysTuples.ts, 63, 42)) +>d : Symbol(d, Decl(mappedTypesArraysTuples.ts, 63, 55)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --)) let x1 = all(a); ->x1 : Symbol(x1, Decl(mappedTypesArraysTuples.ts, 65, 7)) ->all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 60, 55)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 64, 12)) +>x1 : Symbol(x1, Decl(mappedTypesArraysTuples.ts, 64, 7)) +>all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 59, 55)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 12)) let x2 = all(a, b); ->x2 : Symbol(x2, Decl(mappedTypesArraysTuples.ts, 66, 7)) ->all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 60, 55)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 64, 12)) ->b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 64, 22)) +>x2 : Symbol(x2, Decl(mappedTypesArraysTuples.ts, 65, 7)) +>all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 59, 55)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 12)) +>b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 63, 22)) let x3 = all(a, b, c); ->x3 : Symbol(x3, Decl(mappedTypesArraysTuples.ts, 67, 7)) ->all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 60, 55)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 64, 12)) ->b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 64, 22)) ->c : Symbol(c, Decl(mappedTypesArraysTuples.ts, 64, 42)) +>x3 : Symbol(x3, Decl(mappedTypesArraysTuples.ts, 66, 7)) +>all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 59, 55)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 12)) +>b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 63, 22)) +>c : Symbol(c, Decl(mappedTypesArraysTuples.ts, 63, 42)) let x4 = all(a, b, c, d); ->x4 : Symbol(x4, Decl(mappedTypesArraysTuples.ts, 68, 7)) ->all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 60, 55)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 64, 12)) ->b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 64, 22)) ->c : Symbol(c, Decl(mappedTypesArraysTuples.ts, 64, 42)) ->d : Symbol(d, Decl(mappedTypesArraysTuples.ts, 64, 55)) +>x4 : Symbol(x4, Decl(mappedTypesArraysTuples.ts, 67, 7)) +>all : Symbol(all, Decl(mappedTypesArraysTuples.ts, 59, 55)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 12)) +>b : Symbol(b, Decl(mappedTypesArraysTuples.ts, 63, 22)) +>c : Symbol(c, Decl(mappedTypesArraysTuples.ts, 63, 42)) +>d : Symbol(d, Decl(mappedTypesArraysTuples.ts, 63, 55)) } function f2(a: Boxified) { ->f2 : Symbol(f2, Decl(mappedTypesArraysTuples.ts, 69, 1)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 71, 12)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 71, 29)) +>f2 : Symbol(f2, Decl(mappedTypesArraysTuples.ts, 68, 1)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 70, 12)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 70, 29)) >Boxified : Symbol(Boxified, Decl(mappedTypesArraysTuples.ts, 0, 27)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 71, 12)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 70, 12)) let x: Box | undefined = a.pop(); ->x : Symbol(x, Decl(mappedTypesArraysTuples.ts, 72, 7)) +>x : Symbol(x, Decl(mappedTypesArraysTuples.ts, 71, 7)) >Box : Symbol(Box, Decl(mappedTypesArraysTuples.ts, 0, 0)) >a.pop : Symbol(Array.pop, Decl(lib.es5.d.ts, --, --)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 71, 29)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 70, 29)) >pop : Symbol(Array.pop, Decl(lib.es5.d.ts, --, --)) let y: Box[] = a.concat(a); ->y : Symbol(y, Decl(mappedTypesArraysTuples.ts, 73, 7)) +>y : Symbol(y, Decl(mappedTypesArraysTuples.ts, 72, 7)) >Box : Symbol(Box, Decl(mappedTypesArraysTuples.ts, 0, 0)) >a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 71, 29)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 70, 29)) >concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 71, 29)) +>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 70, 29)) } // Repro from #26163 type ElementType = T extends Array ? U : never; ->ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 74, 1)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 78, 17)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 78, 17)) +>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 73, 1)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 77, 17)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 77, 17)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 78, 43)) ->U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 78, 43)) +>U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 77, 43)) +>U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 77, 43)) type Mapped = { [K in keyof T]: T[K] }; ->Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 78, 59)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 79, 12)) ->K : Symbol(K, Decl(mappedTypesArraysTuples.ts, 79, 20)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 79, 12)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 79, 12)) ->K : Symbol(K, Decl(mappedTypesArraysTuples.ts, 79, 20)) +>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 77, 59)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 78, 12)) +>K : Symbol(K, Decl(mappedTypesArraysTuples.ts, 78, 20)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 78, 12)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 78, 12)) +>K : Symbol(K, Decl(mappedTypesArraysTuples.ts, 78, 20)) type F = ElementType>; ->F : Symbol(F, Decl(mappedTypesArraysTuples.ts, 79, 42)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 81, 7)) ->ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 74, 1)) ->Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 78, 59)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 81, 7)) +>F : Symbol(F, Decl(mappedTypesArraysTuples.ts, 78, 42)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 80, 7)) +>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 73, 1)) +>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 77, 59)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 80, 7)) type R1 = F<[string, number, boolean]>; // string | number | boolean ->R1 : Symbol(R1, Decl(mappedTypesArraysTuples.ts, 81, 35)) ->F : Symbol(F, Decl(mappedTypesArraysTuples.ts, 79, 42)) +>R1 : Symbol(R1, Decl(mappedTypesArraysTuples.ts, 80, 35)) +>F : Symbol(F, Decl(mappedTypesArraysTuples.ts, 78, 42)) type R2 = ElementType>; // string | number | boolean ->R2 : Symbol(R2, Decl(mappedTypesArraysTuples.ts, 82, 39)) ->ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 74, 1)) ->Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 78, 59)) +>R2 : Symbol(R2, Decl(mappedTypesArraysTuples.ts, 81, 39)) +>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 73, 1)) +>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 77, 59)) // Repro from #26163 declare function acceptArray(arr: any[]): void; ->acceptArray : Symbol(acceptArray, Decl(mappedTypesArraysTuples.ts, 83, 57)) ->arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 87, 29)) +>acceptArray : Symbol(acceptArray, Decl(mappedTypesArraysTuples.ts, 82, 57)) +>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 86, 29)) declare function mapArray(arr: T): Mapped; ->mapArray : Symbol(mapArray, Decl(mappedTypesArraysTuples.ts, 87, 47)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 88, 26)) ->arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 88, 43)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 88, 26)) ->Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 78, 59)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 88, 26)) +>mapArray : Symbol(mapArray, Decl(mappedTypesArraysTuples.ts, 86, 47)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 87, 26)) +>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 87, 43)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 87, 26)) +>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 77, 59)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 87, 26)) function acceptMappedArray(arr: T) { ->acceptMappedArray : Symbol(acceptMappedArray, Decl(mappedTypesArraysTuples.ts, 88, 62)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 89, 27)) ->arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 89, 44)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 89, 27)) +>acceptMappedArray : Symbol(acceptMappedArray, Decl(mappedTypesArraysTuples.ts, 87, 62)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 88, 27)) +>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 88, 44)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 88, 27)) acceptArray(mapArray(arr)); ->acceptArray : Symbol(acceptArray, Decl(mappedTypesArraysTuples.ts, 83, 57)) ->mapArray : Symbol(mapArray, Decl(mappedTypesArraysTuples.ts, 87, 47)) ->arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 89, 44)) +>acceptArray : Symbol(acceptArray, Decl(mappedTypesArraysTuples.ts, 82, 57)) +>mapArray : Symbol(mapArray, Decl(mappedTypesArraysTuples.ts, 86, 47)) +>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 88, 44)) } // Repro from #26163 type Unconstrained = ElementType>; ->Unconstrained : Symbol(Unconstrained, Decl(mappedTypesArraysTuples.ts, 91, 1)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 95, 19)) ->ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 74, 1)) ->Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 78, 59)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 95, 19)) +>Unconstrained : Symbol(Unconstrained, Decl(mappedTypesArraysTuples.ts, 90, 1)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 94, 19)) +>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 73, 1)) +>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 77, 59)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 94, 19)) type T1 = Unconstrained<[string, number, boolean]>; // string | number | boolean ->T1 : Symbol(T1, Decl(mappedTypesArraysTuples.ts, 95, 47)) ->Unconstrained : Symbol(Unconstrained, Decl(mappedTypesArraysTuples.ts, 91, 1)) +>T1 : Symbol(T1, Decl(mappedTypesArraysTuples.ts, 94, 47)) +>Unconstrained : Symbol(Unconstrained, Decl(mappedTypesArraysTuples.ts, 90, 1)) type Constrained = ElementType>; ->Constrained : Symbol(Constrained, Decl(mappedTypesArraysTuples.ts, 96, 51)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 98, 17)) ->ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 74, 1)) ->Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 78, 59)) ->T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 98, 17)) +>Constrained : Symbol(Constrained, Decl(mappedTypesArraysTuples.ts, 95, 51)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 97, 17)) +>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 73, 1)) +>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 77, 59)) +>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 97, 17)) type T2 = Constrained<[string, number, boolean]>; // string | number | boolean ->T2 : Symbol(T2, Decl(mappedTypesArraysTuples.ts, 98, 59)) ->Constrained : Symbol(Constrained, Decl(mappedTypesArraysTuples.ts, 96, 51)) +>T2 : Symbol(T2, Decl(mappedTypesArraysTuples.ts, 97, 59)) +>Constrained : Symbol(Constrained, Decl(mappedTypesArraysTuples.ts, 95, 51)) diff --git a/tests/baselines/reference/mappedTypesArraysTuples.types b/tests/baselines/reference/mappedTypesArraysTuples.types index 2ec00ad565e3e..62fdd252f24f3 100644 --- a/tests/baselines/reference/mappedTypesArraysTuples.types +++ b/tests/baselines/reference/mappedTypesArraysTuples.types @@ -152,9 +152,6 @@ let y22 = nonpartial(x22); >nonpartial : (x: Partial) => T >x22 : { a: number | undefined; b?: string[] | undefined; } -type Awaited = T extends PromiseLike ? U : T; ->Awaited : Awaited - type Awaitified = { [P in keyof T]: Awaited }; >Awaitified : Awaitified diff --git a/tests/baselines/reference/noImplicitReturnsInAsync1.types b/tests/baselines/reference/noImplicitReturnsInAsync1.types index dd468d33e6e21..83d42b1d79483 100644 --- a/tests/baselines/reference/noImplicitReturnsInAsync1.types +++ b/tests/baselines/reference/noImplicitReturnsInAsync1.types @@ -15,8 +15,8 @@ async function test(isError: boolean = false) { >x : string >await Promise.resolve("The test is passed without an error.") : string >Promise.resolve("The test is passed without an error.") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"The test is passed without an error." : "The test is passed without an error." } diff --git a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.errors.txt b/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.errors.txt deleted file mode 100644 index e898ec5e18f0b..0000000000000 --- a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.errors.txt +++ /dev/null @@ -1,10 +0,0 @@ -tests/cases/compiler/nonexistentPropertyAvailableOnPromisedType.ts(2,7): error TS2570: Property 'toLowerCase' does not exist on type 'Promise'. Did you forget to use 'await'? - - -==== tests/cases/compiler/nonexistentPropertyAvailableOnPromisedType.ts (1 errors) ==== - function f(x: Promise) { - x.toLowerCase(); - ~~~~~~~~~~~ -!!! error TS2570: Property 'toLowerCase' does not exist on type 'Promise'. Did you forget to use 'await'? - } - \ No newline at end of file diff --git a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.js b/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.js deleted file mode 100644 index f07ed7b9ddfdf..0000000000000 --- a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.js +++ /dev/null @@ -1,10 +0,0 @@ -//// [nonexistentPropertyAvailableOnPromisedType.ts] -function f(x: Promise) { - x.toLowerCase(); -} - - -//// [nonexistentPropertyAvailableOnPromisedType.js] -function f(x) { - x.toLowerCase(); -} diff --git a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.symbols b/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.symbols deleted file mode 100644 index 6c2dab4aaf250..0000000000000 --- a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.symbols +++ /dev/null @@ -1,10 +0,0 @@ -=== tests/cases/compiler/nonexistentPropertyAvailableOnPromisedType.ts === -function f(x: Promise) { ->f : Symbol(f, Decl(nonexistentPropertyAvailableOnPromisedType.ts, 0, 0)) ->x : Symbol(x, Decl(nonexistentPropertyAvailableOnPromisedType.ts, 0, 11)) ->Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --)) - - x.toLowerCase(); ->x : Symbol(x, Decl(nonexistentPropertyAvailableOnPromisedType.ts, 0, 11)) -} - diff --git a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.types b/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.types deleted file mode 100644 index 3489f83ed655e..0000000000000 --- a/tests/baselines/reference/nonexistentPropertyAvailableOnPromisedType.types +++ /dev/null @@ -1,12 +0,0 @@ -=== tests/cases/compiler/nonexistentPropertyAvailableOnPromisedType.ts === -function f(x: Promise) { ->f : (x: Promise) => void ->x : Promise - - x.toLowerCase(); ->x.toLowerCase() : any ->x.toLowerCase : any ->x : Promise ->toLowerCase : any -} - diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithAllowJs/amd/jsFileCompilationDifferentNamesNotSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithAllowJs/amd/jsFileCompilationDifferentNamesNotSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index f7028d0655075..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithAllowJs/amd/jsFileCompilationDifferentNamesNotSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,16 +0,0 @@ -DifferentNamesNotSpecifiedWithAllowJs/tsconfig.json(4,5): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== DifferentNamesNotSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { - "compilerOptions": { - "out": "test.js", - "allowJs": true - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - } - } -==== DifferentNamesNotSpecifiedWithAllowJs/a.ts (0 errors) ==== - var test = 10; -==== DifferentNamesNotSpecifiedWithAllowJs/b.js (0 errors) ==== - var test2 = 10; // Should get compiled \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithAllowJs/amd/jsFileCompilationDifferentNamesSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithAllowJs/amd/jsFileCompilationDifferentNamesSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index 1c5034be858bc..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithAllowJs/amd/jsFileCompilationDifferentNamesSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,17 +0,0 @@ -DifferentNamesSpecifiedWithAllowJs/tsconfig.json(4,5): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== DifferentNamesSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { - "compilerOptions": { - "out": "test.js", - "allowJs": true - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - }, - "files": [ "a.ts", "b.js" ] - } -==== DifferentNamesSpecifiedWithAllowJs/a.ts (0 errors) ==== - var test = 10; -==== DifferentNamesSpecifiedWithAllowJs/b.js (0 errors) ==== - var test2 = 10; // Should get compiled \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameDTsSpecifiedWithAllowJs/amd/jsFileCompilationSameNameDTsSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationSameNameDTsSpecifiedWithAllowJs/amd/jsFileCompilationSameNameDTsSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index 1a625b3fe7d6f..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationSameNameDTsSpecifiedWithAllowJs/amd/jsFileCompilationSameNameDTsSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -SameNameDTsSpecifiedWithAllowJs/tsconfig.json(2,24): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== SameNameDTsSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { - "compilerOptions": { "allowJs": true }, - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - "files": [ "a.d.ts" ] - } -==== SameNameDTsSpecifiedWithAllowJs/a.d.ts (0 errors) ==== - declare var test: number; \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameDTsSpecifiedWithAllowJs/node/jsFileCompilationSameNameDTsSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationSameNameDTsSpecifiedWithAllowJs/node/jsFileCompilationSameNameDTsSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index 1a625b3fe7d6f..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationSameNameDTsSpecifiedWithAllowJs/node/jsFileCompilationSameNameDTsSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -SameNameDTsSpecifiedWithAllowJs/tsconfig.json(2,24): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== SameNameDTsSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { - "compilerOptions": { "allowJs": true }, - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - "files": [ "a.d.ts" ] - } -==== SameNameDTsSpecifiedWithAllowJs/a.d.ts (0 errors) ==== - declare var test: number; \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs/amd/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs/amd/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index 99e057bb6d05d..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs/amd/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -SameNameFilesNotSpecifiedWithAllowJs/tsconfig.json(1,24): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== SameNameFilesNotSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { "compilerOptions": { "allowJs": true } } - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. -==== SameNameFilesNotSpecifiedWithAllowJs/a.ts (0 errors) ==== - var test = 10; \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs/node/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs/node/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index 99e057bb6d05d..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs/node/jsFileCompilationSameNameFilesNotSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -SameNameFilesNotSpecifiedWithAllowJs/tsconfig.json(1,24): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== SameNameFilesNotSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { "compilerOptions": { "allowJs": true } } - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. -==== SameNameFilesNotSpecifiedWithAllowJs/a.ts (0 errors) ==== - var test = 10; \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesSpecifiedWithAllowJs/amd/jsFileCompilationSameNameFilesSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationSameNameFilesSpecifiedWithAllowJs/amd/jsFileCompilationSameNameFilesSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index f956b6780844e..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationSameNameFilesSpecifiedWithAllowJs/amd/jsFileCompilationSameNameFilesSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -SameNameTsSpecifiedWithAllowJs/tsconfig.json(2,24): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== SameNameTsSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { - "compilerOptions": { "allowJs": true }, - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - "files": [ "a.ts" ] - } -==== SameNameTsSpecifiedWithAllowJs/a.ts (0 errors) ==== - var test = 10; \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesSpecifiedWithAllowJs/node/jsFileCompilationSameNameFilesSpecifiedWithAllowJs.errors.txt b/tests/baselines/reference/project/jsFileCompilationSameNameFilesSpecifiedWithAllowJs/node/jsFileCompilationSameNameFilesSpecifiedWithAllowJs.errors.txt deleted file mode 100644 index f956b6780844e..0000000000000 --- a/tests/baselines/reference/project/jsFileCompilationSameNameFilesSpecifiedWithAllowJs/node/jsFileCompilationSameNameFilesSpecifiedWithAllowJs.errors.txt +++ /dev/null @@ -1,12 +0,0 @@ -SameNameTsSpecifiedWithAllowJs/tsconfig.json(2,24): error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - - -==== SameNameTsSpecifiedWithAllowJs/tsconfig.json (1 errors) ==== - { - "compilerOptions": { "allowJs": true }, - ~~~~~~~~~ -!!! error TS5053: Option 'allowJs' cannot be specified with option 'declaration'. - "files": [ "a.ts" ] - } -==== SameNameTsSpecifiedWithAllowJs/a.ts (0 errors) ==== - var test = 10; \ No newline at end of file diff --git a/tests/baselines/reference/promisePermutations.errors.txt b/tests/baselines/reference/promisePermutations.errors.txt index 8b70977a0e5a2..2904b5f51b9f9 100644 --- a/tests/baselines/reference/promisePermutations.errors.txt +++ b/tests/baselines/reference/promisePermutations.errors.txt @@ -447,7 +447,7 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2769: No overload m !!! error TS2769: The last overload gave the following error. !!! error TS2769: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. !!! error TS2769: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1435:5: 'catch' is declared here. !!! related TS2771 tests/cases/compiler/promisePermutations.ts:5:5: The last overload is declared here. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok diff --git a/tests/baselines/reference/promisePermutations2.errors.txt b/tests/baselines/reference/promisePermutations2.errors.txt index bc676c9dd5e85..dcc5013532b5c 100644 --- a/tests/baselines/reference/promisePermutations2.errors.txt +++ b/tests/baselines/reference/promisePermutations2.errors.txt @@ -351,7 +351,7 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of ~~~~~~~~~ !!! error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. !!! error TS2345: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1435:5: 'catch' is declared here. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; diff --git a/tests/baselines/reference/promisePermutations3.errors.txt b/tests/baselines/reference/promisePermutations3.errors.txt index 7467009abce93..c971cb35d64d6 100644 --- a/tests/baselines/reference/promisePermutations3.errors.txt +++ b/tests/baselines/reference/promisePermutations3.errors.txt @@ -398,7 +398,7 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of !!! error TS2769: The last overload gave the following error. !!! error TS2769: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. !!! error TS2769: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1435:5: 'catch' is declared here. !!! related TS2771 tests/cases/compiler/promisePermutations3.ts:7:5: The last overload is declared here. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok @@ -445,5 +445,5 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. !!! error TS2345: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1435:5: 'catch' is declared here. var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok \ No newline at end of file diff --git a/tests/baselines/reference/promiseType.js b/tests/baselines/reference/promiseType.js index 84d9d713b4810..107a57f790afc 100644 --- a/tests/baselines/reference/promiseType.js +++ b/tests/baselines/reference/promiseType.js @@ -217,6 +217,20 @@ const pc6 = p.then(() => Promise.reject("1"), () => {}); const pc7 = p.then(() => Promise.reject("1"), () => {throw 1}); const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); + +const expected1: undefined = undefined as Awaited; + +// #27711 + +const expected2: Promise = new Promise>(() => {}); + +// #28427 + +Promise.all([undefined as Promise | number]); + +Promise.resolve(undefined as Promise | number); + +new Promise(undefined as (resolve: (value: Promise | number) => void) => void); //// [promiseType.js] @@ -440,3 +454,10 @@ const pc6 = p.then(() => Promise.reject("1"), () => { }); const pc7 = p.then(() => Promise.reject("1"), () => { throw 1; }); const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); +const expected1 = undefined; +// #27711 +const expected2 = new Promise(() => { }); +// #28427 +Promise.all([undefined]); +Promise.resolve(undefined); +new Promise(undefined); diff --git a/tests/baselines/reference/promiseType.symbols b/tests/baselines/reference/promiseType.symbols index cec81cd7d8266..e9d7f267612d6 100644 --- a/tests/baselines/reference/promiseType.symbols +++ b/tests/baselines/reference/promiseType.symbols @@ -1089,3 +1089,39 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) >reject : Symbol(PromiseConstructor.reject, Decl(lib.es2015.promise.d.ts, --, --)) +const expected1: undefined = undefined as Awaited; +>expected1 : Symbol(expected1, Decl(promiseType.ts, 219, 5)) +>undefined : Symbol(undefined) +>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) + +// #27711 + +const expected2: Promise = new Promise>(() => {}); +>expected2 : Symbol(expected2, Decl(promiseType.ts, 223, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +// #28427 + +Promise.all([undefined as Promise | number]); +>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>undefined : Symbol(undefined) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +Promise.resolve(undefined as Promise | number); +>Promise.resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>undefined : Symbol(undefined) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +new Promise(undefined as (resolve: (value: Promise | number) => void) => void); +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>undefined : Symbol(undefined) +>resolve : Symbol(resolve, Decl(promiseType.ts, 231, 26)) +>value : Symbol(value, Decl(promiseType.ts, 231, 36)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + diff --git a/tests/baselines/reference/promiseType.types b/tests/baselines/reference/promiseType.types index dd20fb656ea5a..e02cf31b1ef09 100644 --- a/tests/baselines/reference/promiseType.types +++ b/tests/baselines/reference/promiseType.types @@ -283,9 +283,9 @@ const p19 = p.catch(() => Promise.resolve(1)); >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p20 = p.then(undefined); @@ -365,9 +365,9 @@ const p28 = p.then(() => Promise.resolve(1)); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p29 = p.then(() => Promise.reject(1)); @@ -469,9 +469,9 @@ const p38 = p.then(undefined, () => Promise.resolve(1)); >undefined : undefined >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p39 = p.then(undefined, () => Promise.reject(1)); @@ -574,9 +574,9 @@ const p48 = p.then(null, () => Promise.resolve(1)); >null : null >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p49 = p.then(null, () => Promise.reject(1)); @@ -688,9 +688,9 @@ const p58 = p.then(() => "1", () => Promise.resolve(1)); >"1" : "1" >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p59 = p.then(() => "1", () => Promise.reject(1)); @@ -803,9 +803,9 @@ const p68 = p.then(() => x, () => Promise.resolve(1)); >x : any >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p69 = p.then(() => x, () => Promise.reject(1)); @@ -918,9 +918,9 @@ const p78 = p.then(() => undefined, () => Promise.resolve(1)); >undefined : undefined >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p79 = p.then(() => undefined, () => Promise.reject(1)); @@ -1033,9 +1033,9 @@ const p88 = p.then(() => null, () => Promise.resolve(1)); >null : null >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p89 = p.then(() => null, () => Promise.reject(1)); @@ -1139,9 +1139,9 @@ const p98 = p.then(() => {}, () => Promise.resolve(1)); >() => {} : () => void >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p99 = p.then(() => {}, () => Promise.reject(1)); @@ -1253,9 +1253,9 @@ const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1)); >1 : 1 >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const pa9 = p.then(() => {throw 1}, () => Promise.reject(1)); @@ -1281,9 +1281,9 @@ const pb0 = p.then(() => Promise.resolve("1"), undefined); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >undefined : undefined @@ -1295,9 +1295,9 @@ const pb1 = p.then(() => Promise.resolve("1"), null); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >null : null @@ -1309,9 +1309,9 @@ const pb2 = p.then(() => Promise.resolve("1"), () => 1); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => 1 : () => number >1 : 1 @@ -1324,9 +1324,9 @@ const pb3 = p.then(() => Promise.resolve("1"), () => x); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => x : () => any >x : any @@ -1339,9 +1339,9 @@ const pb4 = p.then(() => Promise.resolve("1"), () => undefined); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => undefined : () => any >undefined : undefined @@ -1354,9 +1354,9 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => null : () => any >null : null @@ -1369,9 +1369,9 @@ const pb6 = p.then(() => Promise.resolve("1"), () => {}); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => {} : () => void @@ -1383,9 +1383,9 @@ const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1}); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => {throw 1} : () => never >1 : 1 @@ -1398,15 +1398,15 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1)); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); @@ -1417,9 +1417,9 @@ const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); >then : (onfulfilled?: (value: boolean) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => Promise.reject(1) : () => Promise >Promise.reject(1) : Promise @@ -1559,9 +1559,9 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); >"1" : "1" >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); @@ -1583,3 +1583,43 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); >reject : (reason?: any) => Promise >1 : 1 +const expected1: undefined = undefined as Awaited; +>expected1 : undefined +>undefined as Awaited : undefined +>undefined : undefined + +// #27711 + +const expected2: Promise = new Promise>(() => {}); +>expected2 : Promise +>new Promise>(() => {}) : Promise +>Promise : PromiseConstructor +>() => {} : () => void + +// #28427 + +Promise.all([undefined as Promise | number]); +>Promise.all([undefined as Promise | number]) : Promise<(string | number)[]> +>Promise.all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>Promise : PromiseConstructor +>all : { (values: Iterable): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>[undefined as Promise | number] : (number | Promise)[] +>undefined as Promise | number : number | Promise +>undefined : undefined + +Promise.resolve(undefined as Promise | number); +>Promise.resolve(undefined as Promise | number) : Promise +>Promise.resolve : { (value: T): Promise>; (): Promise; } +>Promise : PromiseConstructor +>resolve : { (value: T): Promise>; (): Promise; } +>undefined as Promise | number : number | Promise +>undefined : undefined + +new Promise(undefined as (resolve: (value: Promise | number) => void) => void); +>new Promise(undefined as (resolve: (value: Promise | number) => void) => void) : Promise +>Promise : PromiseConstructor +>undefined as (resolve: (value: Promise | number) => void) => void : (resolve: (value: number | Promise) => void) => void +>undefined : undefined +>resolve : (value: number | Promise) => void +>value : number | Promise + diff --git a/tests/baselines/reference/promiseTypeInference.errors.txt b/tests/baselines/reference/promiseTypeInference.errors.txt index ada81bfb4962b..86dc5cdbd5f74 100644 --- a/tests/baselines/reference/promiseTypeInference.errors.txt +++ b/tests/baselines/reference/promiseTypeInference.errors.txt @@ -32,7 +32,7 @@ tests/cases/compiler/promiseTypeInference.ts(10,39): error TS2769: No overload m !!! error TS2769: Types of parameters 'success' and 'onfulfilled' are incompatible. !!! error TS2769: Type 'TResult1 | PromiseLike' is not assignable to type 'IPromise'. !!! error TS2769: Type 'TResult1' is not assignable to type 'IPromise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1435:5: 'catch' is declared here. !!! related TS6502 tests/cases/compiler/promiseTypeInference.ts:2:23: The expected type comes from the return type of this signature. -!!! related TS6502 /.ts/lib.es5.d.ts:1423:57: The expected type comes from the return type of this signature. +!!! related TS6502 /.ts/lib.es5.d.ts:1428:57: The expected type comes from the return type of this signature. \ No newline at end of file diff --git a/tests/baselines/reference/promiseTypeStrictNull.types b/tests/baselines/reference/promiseTypeStrictNull.types index 73d2f70346135..b1e391cad4321 100644 --- a/tests/baselines/reference/promiseTypeStrictNull.types +++ b/tests/baselines/reference/promiseTypeStrictNull.types @@ -283,9 +283,9 @@ const p19 = p.catch(() => Promise.resolve(1)); >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p20 = p.then(undefined); @@ -365,9 +365,9 @@ const p28 = p.then(() => Promise.resolve(1)); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p29 = p.then(() => Promise.reject(1)); @@ -469,9 +469,9 @@ const p38 = p.then(undefined, () => Promise.resolve(1)); >undefined : undefined >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p39 = p.then(undefined, () => Promise.reject(1)); @@ -574,9 +574,9 @@ const p48 = p.then(null, () => Promise.resolve(1)); >null : null >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p49 = p.then(null, () => Promise.reject(1)); @@ -688,9 +688,9 @@ const p58 = p.then(() => "1", () => Promise.resolve(1)); >"1" : "1" >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p59 = p.then(() => "1", () => Promise.reject(1)); @@ -803,9 +803,9 @@ const p68 = p.then(() => x, () => Promise.resolve(1)); >x : any >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p69 = p.then(() => x, () => Promise.reject(1)); @@ -918,9 +918,9 @@ const p78 = p.then(() => undefined, () => Promise.resolve(1)); >undefined : undefined >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p79 = p.then(() => undefined, () => Promise.reject(1)); @@ -1033,9 +1033,9 @@ const p88 = p.then(() => null, () => Promise.resolve(1)); >null : null >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p89 = p.then(() => null, () => Promise.reject(1)); @@ -1139,9 +1139,9 @@ const p98 = p.then(() => {}, () => Promise.resolve(1)); >() => {} : () => void >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const p99 = p.then(() => {}, () => Promise.reject(1)); @@ -1253,9 +1253,9 @@ const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1)); >1 : 1 >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const pa9 = p.then(() => {throw 1}, () => Promise.reject(1)); @@ -1281,9 +1281,9 @@ const pb0 = p.then(() => Promise.resolve("1"), undefined); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >undefined : undefined @@ -1295,9 +1295,9 @@ const pb1 = p.then(() => Promise.resolve("1"), null); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >null : null @@ -1309,9 +1309,9 @@ const pb2 = p.then(() => Promise.resolve("1"), () => 1); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => 1 : () => number >1 : 1 @@ -1324,9 +1324,9 @@ const pb3 = p.then(() => Promise.resolve("1"), () => x); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => x : () => any >x : any @@ -1339,9 +1339,9 @@ const pb4 = p.then(() => Promise.resolve("1"), () => undefined); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => undefined : () => undefined >undefined : undefined @@ -1354,9 +1354,9 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => null : () => null >null : null @@ -1369,9 +1369,9 @@ const pb6 = p.then(() => Promise.resolve("1"), () => {}); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => {} : () => void @@ -1383,9 +1383,9 @@ const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1}); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => {throw 1} : () => never >1 : 1 @@ -1398,15 +1398,15 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1)); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); @@ -1417,9 +1417,9 @@ const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); >then : (onfulfilled?: ((value: boolean) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => Promise.resolve("1") : () => Promise >Promise.resolve("1") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >"1" : "1" >() => Promise.reject(1) : () => Promise >Promise.reject(1) : Promise @@ -1559,9 +1559,9 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); >"1" : "1" >() => Promise.resolve(1) : () => Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); diff --git a/tests/baselines/reference/promiseVoidErrorCallback.types b/tests/baselines/reference/promiseVoidErrorCallback.types index a1388cb04ef69..525e6d73a5f18 100644 --- a/tests/baselines/reference/promiseVoidErrorCallback.types +++ b/tests/baselines/reference/promiseVoidErrorCallback.types @@ -19,9 +19,9 @@ function f1(): Promise { return Promise.resolve({ __t1: "foo_t1" }); >Promise.resolve({ __t1: "foo_t1" }) : Promise<{ __t1: string; }> ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >{ __t1: "foo_t1" } : { __t1: string; } >__t1 : string >"foo_t1" : "foo_t1" diff --git a/tests/baselines/reference/showConfig/Shows tsconfig for single option/project/tsconfig.json b/tests/baselines/reference/showConfig/Shows tsconfig for single option/project/tsconfig.json deleted file mode 100644 index cd727e8ccdc88..0000000000000 --- a/tests/baselines/reference/showConfig/Shows tsconfig for single option/project/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "compilerOptions": {} -} diff --git a/tests/baselines/reference/showConfig/Shows tsconfig for single option/strictGeneratorTypes/tsconfig.json b/tests/baselines/reference/showConfig/Shows tsconfig for single option/strictGeneratorTypes/tsconfig.json deleted file mode 100644 index 91f667ef73951..0000000000000 --- a/tests/baselines/reference/showConfig/Shows tsconfig for single option/strictGeneratorTypes/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "compilerOptions": { - "strictGeneratorTypes": true - } -} diff --git a/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.errors.txt b/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.errors.txt old mode 100755 new mode 100644 diff --git a/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.js b/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.js old mode 100755 new mode 100644 diff --git a/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.symbols b/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.symbols old mode 100755 new mode 100644 diff --git a/tests/baselines/reference/transformNestedGeneratorsWithTry.types b/tests/baselines/reference/transformNestedGeneratorsWithTry.types index 061342eaf44b0..f6c66bb291c9c 100644 --- a/tests/baselines/reference/transformNestedGeneratorsWithTry.types +++ b/tests/baselines/reference/transformNestedGeneratorsWithTry.types @@ -16,9 +16,9 @@ async function a(): Bluebird { await Bluebird.resolve(); // -- remove this and it compiles >await Bluebird.resolve() : void >Bluebird.resolve() : Promise ->Bluebird.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Bluebird.resolve : { (value: T): Promise>; (): Promise; } >Bluebird : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } } catch (error) { } >error : any diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.1.types b/tests/baselines/reference/types.asyncGenerators.es2018.1.types index 3c6e51c56d220..0d3a4e64201f7 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.1.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.1.types @@ -21,9 +21,9 @@ async function * inferReturnType4() { yield Promise.resolve(1); >yield Promise.resolve(1) : any >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * inferReturnType5() { @@ -36,9 +36,9 @@ async function * inferReturnType5() { yield Promise.resolve(2); >yield Promise.resolve(2) : any >Promise.resolve(2) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >2 : 2 } async function * inferReturnType6() { @@ -57,9 +57,9 @@ async function * inferReturnType7() { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * inferReturnType8() { @@ -89,9 +89,9 @@ const assignability2: () => AsyncIterableIterator = async function * () yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 }; @@ -114,9 +114,9 @@ const assignability4: () => AsyncIterableIterator = async function * () >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 }; @@ -149,9 +149,9 @@ const assignability7: () => AsyncIterable = async function * () { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 }; @@ -174,9 +174,9 @@ const assignability9: () => AsyncIterable = async function * () { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 }; @@ -209,9 +209,9 @@ const assignability12: () => AsyncIterator = async function * () { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 }; @@ -234,9 +234,9 @@ const assignability14: () => AsyncIterator = async function * () { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 }; @@ -266,9 +266,9 @@ async function * explicitReturnType2(): AsyncIterableIterator { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * explicitReturnType3(): AsyncIterableIterator { @@ -287,9 +287,9 @@ async function * explicitReturnType4(): AsyncIterableIterator { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * explicitReturnType5(): AsyncIterableIterator { @@ -316,9 +316,9 @@ async function * explicitReturnType7(): AsyncIterable { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * explicitReturnType8(): AsyncIterable { @@ -337,9 +337,9 @@ async function * explicitReturnType9(): AsyncIterable { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * explicitReturnType10(): AsyncIterable { @@ -366,9 +366,9 @@ async function * explicitReturnType12(): AsyncIterator { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * explicitReturnType13(): AsyncIterator { @@ -387,9 +387,9 @@ async function * explicitReturnType14(): AsyncIterator { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * explicitReturnType15(): AsyncIterator { @@ -425,9 +425,9 @@ async function * awaitedType2() { >x : number >await Promise.resolve(1) : number >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >1 : 1 } async function * nextType1(): { next(...args: [] | [number | PromiseLike]): any } { diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.2.types b/tests/baselines/reference/types.asyncGenerators.es2018.2.types index 8352487119937..da0ec5438da50 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.2.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.2.types @@ -20,9 +20,9 @@ async function * inferReturnType3() { yield* Promise.resolve([1, 2]); >yield* Promise.resolve([1, 2]) : any >Promise.resolve([1, 2]) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >[1, 2] : number[] >1 : 1 >2 : 2 diff --git a/tests/baselines/reference/unionAndIntersectionInference1.types b/tests/baselines/reference/unionAndIntersectionInference1.types index 72d60545e6a51..d7644511e0e2e 100644 --- a/tests/baselines/reference/unionAndIntersectionInference1.types +++ b/tests/baselines/reference/unionAndIntersectionInference1.types @@ -192,9 +192,9 @@ const createTestAsync = (): Promise => Promise.resolve().then(() => ({ na >Promise.resolve().then(() => ({ name: 'test' })) : Promise >Promise.resolve().then : (onfulfilled?: (value: void) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >then : (onfulfilled?: (value: void) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => ({ name: 'test' }) : () => { name: "test"; } >({ name: 'test' }) : { name: "test"; } diff --git a/tests/baselines/reference/unionTypeInference.types b/tests/baselines/reference/unionTypeInference.types index b8107f3c04d0a..c86be843b5477 100644 --- a/tests/baselines/reference/unionTypeInference.types +++ b/tests/baselines/reference/unionTypeInference.types @@ -221,18 +221,18 @@ async function fun(deepPromised: DeepPromised) { >deepPromisedWithIndexer : DeepPromised<{ [name: string]: {} | null | undefined; }> const awaitedValue = await value; ->awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined ->await value : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined +>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined +>await value : {} | ({ [containsPromises]?: true | undefined; } & {}) | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined >value : {} | ({ [containsPromises]?: true | undefined; } & {}) | Promise<{ [containsPromises]?: true | undefined; } & {}> | null | undefined if (awaitedValue) ->awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined +>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | ({ [containsPromises]?: true | undefined; } & {}) | null | undefined await fun(awaitedValue); >await fun(awaitedValue) : void >fun(awaitedValue) : Promise >fun : (deepPromised: DeepPromised) => Promise ->awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) +>awaitedValue : {} | ({ [containsPromises]?: true | undefined; } & {}) | ({ [containsPromises]?: true | undefined; } & {}) } } diff --git a/tests/baselines/reference/uniqueSymbols.types b/tests/baselines/reference/uniqueSymbols.types index a321593c11a8c..fca7c24c34fdc 100644 --- a/tests/baselines/reference/uniqueSymbols.types +++ b/tests/baselines/reference/uniqueSymbols.types @@ -400,9 +400,9 @@ const constInitToLReadonlyNestedTypeWithIndexedAccess: L["nested"]["readonlyNest const promiseForConstCall = Promise.resolve(constCall); >promiseForConstCall : Promise >Promise.resolve(constCall) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >constCall : unique symbol const arrayOfConstCall = [constCall]; diff --git a/tests/baselines/reference/uniqueSymbolsDeclarations.types b/tests/baselines/reference/uniqueSymbolsDeclarations.types index bacdafc5680db..f2294efd5aec7 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarations.types +++ b/tests/baselines/reference/uniqueSymbolsDeclarations.types @@ -393,9 +393,9 @@ const constInitToLReadonlyNestedTypeWithIndexedAccess: L["nested"]["readonlyNest const promiseForConstCall = Promise.resolve(constCall); >promiseForConstCall : Promise >Promise.resolve(constCall) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise>; (): Promise; } >constCall : unique symbol const arrayOfConstCall = [constCall]; diff --git a/tests/baselines/reference/user/chrome-devtools-frontend.log b/tests/baselines/reference/user/chrome-devtools-frontend.log index d5b8e7e7035f0..c18f4286f5b05 100644 --- a/tests/baselines/reference/user/chrome-devtools-frontend.log +++ b/tests/baselines/reference/user/chrome-devtools-frontend.log @@ -1,6 +1,6 @@ Exit Code: 1 Standard output: -../../../../built/local/lib.es5.d.ts(1433,11): error TS2300: Duplicate identifier 'ArrayLike'. +../../../../built/local/lib.es5.d.ts(1438,11): error TS2300: Duplicate identifier 'ArrayLike'. ../../../../node_modules/@types/node/globals.d.ts(168,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'module' must be of type '{}', but here has type 'NodeModule'. node_modules/chrome-devtools-frontend/front_end/Runtime.js(43,8): error TS2339: Property '_importScriptPathPrefix' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/Runtime.js(77,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. @@ -618,6 +618,7 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(9093,57): error TS2554: Expected 0-2 arguments, but got 3. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(9117,73): error TS2554: Expected 0-2 arguments, but got 3. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(9467,15): error TS2339: Property 'axe' does not exist on type 'Window & typeof globalThis'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(9823,40): error TS2488: Type '{ [x: string]: any; }' must have a '[Symbol.iterator]()' method that returns an iterator. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10092,16): error TS2304: Cannot find name 'd41d8cd98f00b204e9800998ecf8427e_LibraryDetectorTests'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10513,19): error TS2488: Type 'NodeListOf' must have a '[Symbol.iterator]()' method that returns an iterator. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10811,19): error TS2304: Cannot find name 'getElementsInDocument'. @@ -5046,21 +5047,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js( node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(52,56): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(58,78): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(73,12): error TS2339: Property '_filterRegex' does not exist on type 'ComputedStyleWidget'. -node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(91,24): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise | Promise)[]' is not assignable to parameter of type 'Iterable>'. - The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. - Type 'IteratorResult | Promise, any>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorYieldResult>'. - Type 'Promise | Promise' is not assignable to type 'ComputedStyle | PromiseLike'. - Type 'Promise' is not assignable to type 'ComputedStyle | PromiseLike'. - Type 'Promise' is not assignable to type 'PromiseLike'. - Types of property 'then' are incompatible. - Type '(onfulfilled?: (value: CSSMatchedStyles) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => Promise<...>' is not assignable to type '(onfulfilled?: (value: ComputedStyle) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => PromiseLike<...>'. - Types of parameters 'onfulfilled' and 'onfulfilled' are incompatible. - Types of parameters 'value' and 'value' are incompatible. - Property 'computedStyle' is missing in type 'CSSMatchedStyles' but required in type 'ComputedStyle'. +node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(91,34): error TS2339: Property 'spread' does not exist on type 'Promise<(CSSMatchedStyles | ComputedStyle)[]>'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(147,52): error TS2339: Property 'keysArray' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(179,50): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(200,74): error TS2339: Property 'consume' does not exist on type 'Event'. @@ -5349,21 +5336,6 @@ node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeContr Type 'T' is not assignable to type 'OverlayModel'. node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(91,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(56,27): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(82,24): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise> | Promise)[]' is not assignable to parameter of type 'Iterable | PromiseLike>>'. - The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. - Type 'IteratorResult> | Promise, any>' is not assignable to type 'IteratorResult | PromiseLike>, any>'. - Type 'IteratorYieldResult> | Promise>' is not assignable to type 'IteratorResult | PromiseLike>, any>'. - Type 'IteratorYieldResult> | Promise>' is not assignable to type 'IteratorYieldResult | PromiseLike>>'. - Type 'Promise> | Promise' is not assignable to type 'Map | PromiseLike>'. - Type 'Promise' is not assignable to type 'Map | PromiseLike>'. - Type 'Promise' is not assignable to type 'PromiseLike>'. - Types of property 'then' are incompatible. - Type '(onfulfilled?: (value: InlineStyleResult) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => Promise<...>' is not assignable to type ', TResult2 = never>(onfulfilled?: (value: Map) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => PromiseLike<...>'. - Types of parameters 'onfulfilled' and 'onfulfilled' are incompatible. - Types of parameters 'value' and 'value' are incompatible. - Type 'InlineStyleResult' is missing the following properties from type 'Map': clear, delete, forEach, get, and 8 more. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(120,11): error TS2339: Property 'consume' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(164,22): error TS2339: Property 'toFixedIfFloating' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(179,18): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. @@ -8326,6 +8298,15 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(85 node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(129,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(161,40): error TS2339: Property 'keysArray' does not exist on type 'Map any>'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(231,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. +node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(250,5): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. + Type 'Awaited' is not assignable to type 'T'. + 'Awaited' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. + Type 'T | (T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T)' is not assignable to type 'T'. + 'T | (T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T)' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. + Type 'T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T' is not assignable to type 'T'. + 'T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. + Type 'unknown' is not assignable to type 'T'. + 'unknown' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(263,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(284,16): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(286,43): error TS2555: Expected at least 4 arguments, but got 3. @@ -9617,6 +9598,15 @@ node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(370,31): err node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(371,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(378,39): error TS1110: Type expected. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(379,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. +node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(384,5): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. + Type 'Awaited' is not assignable to type 'T'. + 'Awaited' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. + Type 'T | (T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T)' is not assignable to type 'T'. + 'T | (T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T)' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. + Type 'T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T' is not assignable to type 'T'. + 'T extends PromiseLike ? U : T extends { then(...args: any[]): any; } ? unknown : T' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. + Type 'unknown' is not assignable to type 'T'. + 'unknown' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(420,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(422,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(423,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. @@ -12649,8 +12639,8 @@ node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1910,22): error TS node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1911,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1912,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1913,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1943,50): error TS2345: Argument of type 'HTMLImageElement' is not assignable to parameter of type '(new (width?: number, height?: number) => HTMLImageElement) | PromiseLike HTMLImageElement>'. - Property 'then' is missing in type 'HTMLImageElement' but required in type 'PromiseLike HTMLImageElement>'. +node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1943,50): error TS2345: Argument of type 'HTMLImageElement' is not assignable to parameter of type 'new (width?: number, height?: number) => HTMLImageElement'. + Type 'HTMLImageElement' provides no match for the signature 'new (width?: number, height?: number): HTMLImageElement'. node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1961,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1966,23): error TS2339: Property 'type' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1967,23): error TS2339: Property 'style' does not exist on type 'Element'. @@ -12682,27 +12672,9 @@ node_modules/chrome-devtools-frontend/front_end/ui/View.js(326,21): error TS2339 node_modules/chrome-devtools-frontend/front_end/ui/View.js(371,23): error TS2339: Property 'showView' does not exist on type '_Location'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(440,18): error TS2339: Property 'tabIndex' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(454,38): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(461,44): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise | Promise)[]' is not assignable to parameter of type 'Iterable>'. - The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. - Type 'IteratorResult | Promise, any>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorYieldResult>'. - Type 'Promise | Promise' is not assignable to type 'void | PromiseLike'. - Type 'Promise' is not assignable to type 'void | PromiseLike'. - Type 'Promise' is not assignable to type 'PromiseLike'. - Types of property 'then' are incompatible. - Type '(onfulfilled?: (value: ToolbarItem[]) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => Promise<...>' is not assignable to type '(onfulfilled?: (value: void) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => PromiseLike<...>'. - Types of parameters 'onfulfilled' and 'onfulfilled' are incompatible. - Types of parameters 'value' and 'value' are incompatible. - Type 'ToolbarItem[]' is not assignable to type 'void'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(495,24): error TS2339: Property 'createTextChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(496,24): error TS2339: Property 'tabIndex' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(501,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(520,44): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise | Promise)[]' is not assignable to parameter of type 'Iterable>'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(556,36): error TS2339: Property 'keyCode' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(558,22): error TS2339: Property 'key' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(560,22): error TS2339: Property 'key' does not exist on type 'Event'. diff --git a/tests/baselines/reference/user/fp-ts.log b/tests/baselines/reference/user/fp-ts.log new file mode 100644 index 0000000000000..81d2d3d47e225 --- /dev/null +++ b/tests/baselines/reference/user/fp-ts.log @@ -0,0 +1,937 @@ +Exit Code: 1 +Standard output: +src/Task.ts(78,5): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. + Type 'Awaited' is not assignable to type 'A'. + Type 'A | (A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A)' is not assignable to type 'A'. + Type 'A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A' is not assignable to type 'A'. + Type 'unknown' is not assignable to type 'A'. +src/Task.ts(90,16): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. + Type 'Awaited' is not assignable to type 'A'. + Type 'A | (A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A)' is not assignable to type 'A'. + Type 'A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A' is not assignable to type 'A'. + Type 'unknown' is not assignable to type 'A'. +src/Task.ts(99,16): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. + Type 'Awaited' is not assignable to type 'A'. + Type 'A | (A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A)' is not assignable to type 'A'. + Type 'A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A' is not assignable to type 'A'. + Type 'unknown' is not assignable to type 'A'. +src/Task.ts(123,70): error TS2349: This expression is not callable. + Not all constituents of type 'A | ((a: A) => B)' are callable. + Type 'A' has no call signatures. +test/Applicative.ts(6,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Applicative.ts(7,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Apply.ts(8,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Apply.ts(9,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Apply.ts(44,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(75,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(78,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(85,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(92,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(104,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(130,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(135,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(145,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(150,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(155,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(160,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(165,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(170,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(175,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(180,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(185,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(190,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(196,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(204,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(214,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(222,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(228,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(234,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(244,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(249,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(254,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(285,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(293,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(312,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(320,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(334,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(340,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(348,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(353,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(358,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(364,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(368,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(374,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(381,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(389,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(403,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(408,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(413,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(417,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(429,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(436,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(443,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(447,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(454,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(461,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(465,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(472,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(481,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(491,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(499,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(507,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(514,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(521,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(554,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(585,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(591,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(596,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(607,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(612,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(618,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(626,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(637,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(644,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(651,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(661,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(674,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(675,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(691,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(698,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(717,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(722,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(728,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(733,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(773,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(780,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(787,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(794,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(820,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(826,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(832,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(838,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Array.ts(847,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/BooleanAlgebra.ts(9,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/BooleanAlgebra.ts(10,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/BooleanAlgebra.ts(32,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/BooleanAlgebra.ts(46,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/BooleanAlgebra.ts(68,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/BoundedDistributiveLattice.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/BoundedDistributiveLattice.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Choice.ts(6,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Choice.ts(7,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Choice.ts(15,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Compactable.ts(7,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Compactable.ts(8,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Console.ts(4,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Console.ts(5,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Console.ts(19,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Console.ts(33,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Console.ts(47,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Const.ts(8,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Const.ts(9,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Const.ts(15,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Const.ts(21,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Const.ts(26,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Const.ts(32,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Const.ts(38,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Date.ts(4,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Date.ts(5,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Date.ts(12,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(12,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(13,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(21,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(45,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(51,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(91,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(96,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(101,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(132,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(151,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(156,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(164,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(183,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(184,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(190,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(201,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(208,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(209,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(215,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(222,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(223,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(239,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(245,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(263,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(264,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(275,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(276,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(291,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(299,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(300,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(323,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(324,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(336,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(337,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(348,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(354,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(363,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(367,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(373,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(385,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(400,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(416,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(422,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(429,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(437,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(464,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(465,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(474,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(475,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(484,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(485,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(494,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(495,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(502,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(503,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(532,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(543,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Either.ts(548,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/EitherT.ts(8,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/EitherT.ts(9,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/EitherT.ts(16,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Eq.ts(4,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Eq.ts(5,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Eq.ts(17,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Eq.ts(34,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Eq.ts(42,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Eq.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Field.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Field.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Field.ts(13,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Field.ts(19,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Filterable.ts(7,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Filterable.ts(8,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Foldable.ts(12,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Foldable.ts(13,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Foldable.ts(50,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Foldable.ts(54,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Foldable.ts(61,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/FoldableWithIndex.ts(6,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/FoldableWithIndex.ts(7,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Functor.ts(6,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Functor.ts(7,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/FunctorWithIndex.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/FunctorWithIndex.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IO.ts(7,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IO.ts(8,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IO.ts(15,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IO.ts(20,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IO.ts(28,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IO.ts(37,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(11,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(12,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(29,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(34,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(38,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(100,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(105,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(119,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(120,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(125,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(132,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(141,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(142,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(150,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(156,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(157,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(172,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(173,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(182,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(183,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(192,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(205,5): error TS2304: Cannot find name 'beforeEach'. +test/IOEither.ts(209,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(214,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(219,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(224,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(229,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(234,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(239,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(245,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(247,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(252,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(260,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(267,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(276,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(288,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(295,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IOEither.ts(314,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IORef.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IORef.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IORef.ts(11,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IORef.ts(16,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/IORef.ts(22,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(10,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(11,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(18,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(26,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(33,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(42,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(49,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(57,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(66,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(71,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(78,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(85,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(91,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(98,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Identity.ts(104,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(47,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(52,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(63,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(74,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(90,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(106,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(135,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(145,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(211,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(281,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(337,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(402,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(431,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(455,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(467,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(479,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(496,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(501,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(508,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(576,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(620,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(621,5): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(622,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(637,5): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(638,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(648,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(665,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(681,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(695,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(715,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(730,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(733,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(743,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(763,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(772,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(783,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(803,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(815,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(827,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(843,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(865,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(891,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(904,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(919,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(920,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(937,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(954,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(967,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(990,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(1012,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(1026,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Map.ts(1038,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(18,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(19,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(26,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(30,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(46,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(54,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(61,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Monoid.ts(68,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(43,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(44,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(52,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(57,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(62,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(66,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(71,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(76,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(81,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(85,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(96,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(102,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(107,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(112,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(119,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(124,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(131,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(137,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(143,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(149,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(157,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(162,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(167,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(172,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(176,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(182,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(191,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(204,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(230,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(236,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(243,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(265,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(270,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(277,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(284,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(291,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(316,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(320,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(324,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(330,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(338,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(344,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/NonEmptyArray.ts(350,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(16,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(17,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(21,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(29,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(34,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(39,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(56,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(66,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(72,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(81,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(91,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(133,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(141,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(150,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(159,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(178,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(184,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(190,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(201,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(216,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(221,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(232,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(241,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(251,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(259,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(267,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(275,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(283,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(289,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(294,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(299,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(306,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(317,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(323,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(329,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(336,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(343,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(349,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(356,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(364,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(372,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(385,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(391,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(396,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Option.ts(401,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(8,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(9,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(17,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(26,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(35,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(42,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(49,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/OptionT.ts(55,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(20,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(21,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(28,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(57,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(63,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(69,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(78,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(87,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(94,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(100,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(106,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ord.ts(112,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ordering.ts(4,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ordering.ts(5,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ordering.ts(11,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ordering.ts(23,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ordering.ts(44,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Random.ts(4,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Random.ts(5,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Random.ts(10,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Random.ts(18,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Random.ts(27,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(11,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(12,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(17,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(21,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(28,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(34,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(45,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(56,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(61,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(69,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(74,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(80,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Reader.ts(85,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(10,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(11,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(18,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(27,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(36,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(42,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(47,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(66,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(67,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(83,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(86,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(91,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(96,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(101,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(107,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(111,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(115,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(119,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(122,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderEither.ts(134,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(11,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(12,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(13,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(20,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(28,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(34,5): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(35,7): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(43,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(53,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(62,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(67,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(72,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(78,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(88,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(93,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(104,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(115,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(116,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(122,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTask.ts(128,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(16,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(17,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(18,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(24,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(32,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(41,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(42,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(52,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(61,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(66,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(74,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(86,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(91,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(96,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(101,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(106,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(111,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(116,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(129,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(140,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(153,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(172,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(190,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(205,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(217,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(229,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(230,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(239,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(246,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(253,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(254,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(270,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(273,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(278,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(283,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(288,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(294,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(320,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(327,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(329,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(334,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(339,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(347,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(354,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(363,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(378,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(385,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(396,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(406,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(419,5): error TS2304: Cannot find name 'beforeEach'. +test/ReaderTaskEither.ts(423,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(428,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(433,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(438,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(443,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(448,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(453,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(459,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(465,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/ReaderTaskEither.ts(471,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(17,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(18,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(28,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(34,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(39,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(52,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(59,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(67,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(75,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(83,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(90,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(96,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(126,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(137,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(141,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(149,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(154,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(159,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(167,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(175,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(180,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(184,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(191,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(212,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(218,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(226,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(235,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(242,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(249,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(256,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(261,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(266,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(273,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(280,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(285,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(311,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(318,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(322,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(328,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(335,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(342,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(346,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(350,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Record.ts(362,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ring.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ring.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ring.ts(15,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Ring.ts(19,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(19,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(20,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(27,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(31,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(35,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(39,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(58,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(62,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(66,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semigroup.ts(70,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semiring.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Semiring.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(47,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(54,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(61,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(67,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(73,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(78,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(87,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(92,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(101,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(119,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(123,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(127,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(155,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(162,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(169,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(173,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(178,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(183,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(187,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(194,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(199,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(208,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(218,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(239,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Set.ts(252,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Show.ts(4,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Show.ts(5,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Show.ts(10,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Show.ts(15,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Show.ts(20,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Show.ts(25,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(10,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(14,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(18,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(22,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(27,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(32,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(38,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/State.ts(45,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(15,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(16,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(22,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(23,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(30,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(38,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(46,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(54,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(61,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(67,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(73,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(79,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(84,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(89,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(94,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(99,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(104,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(109,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(116,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(123,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(130,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(135,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(140,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(147,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(154,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(160,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(166,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/StateReaderTaskEither.ts(172,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Store.ts(8,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Store.ts(9,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Store.ts(14,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Store.ts(19,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Store.ts(24,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Store.ts(37,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Store.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Strong.ts(5,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Strong.ts(6,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Strong.ts(13,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(9,3): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. + Type 'Awaited' is not assignable to type 'A'. + Type 'A | (A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A)' is not assignable to type 'A'. + Type 'A extends PromiseLike ? U : A extends { then(...args: any[]): any; } ? unknown : A' is not assignable to type 'A'. + Type 'unknown' is not assignable to type 'A'. +test/Task.ts(15,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(16,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(19,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(24,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(29,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(34,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(43,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(46,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(51,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(56,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(62,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(63,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(69,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(77,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(84,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(85,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(96,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(108,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(109,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(117,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(118,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Task.ts(125,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(12,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(13,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(14,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(20,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(28,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(36,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(49,5): error TS2304: Cannot find name 'beforeEach'. +test/TaskEither.ts(53,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(58,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(63,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(68,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(73,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(78,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(83,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(89,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(90,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(100,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(107,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(120,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(125,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(138,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(156,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(168,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(175,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(191,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(192,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(208,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(211,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(216,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(221,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(226,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(232,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(244,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(256,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(275,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(276,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(284,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(291,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(298,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(300,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(305,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(313,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(320,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(329,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(341,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(348,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(367,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskEither.ts(373,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(9,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(10,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(15,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(20,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(25,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(30,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(35,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(40,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(45,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(56,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(62,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(69,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(79,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(86,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(96,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(98,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(105,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/TaskThese.ts(110,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(11,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(12,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(27,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(40,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(47,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(55,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(65,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(66,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(74,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(82,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(88,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(111,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(125,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(137,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(143,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(149,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(154,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(159,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(165,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(171,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(178,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(184,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(190,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(196,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(211,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(222,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(234,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/These.ts(241,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traced.ts(50,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traced.ts(51,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traced.ts(56,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traced.ts(72,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traced.ts(88,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traced.ts(104,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traced.ts(124,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traversable.ts(10,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Traversable.ts(11,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(9,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(10,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(17,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(25,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(32,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(37,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(44,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(52,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(59,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(67,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(75,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(81,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(128,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(138,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(144,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(150,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tree.ts(161,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(9,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(10,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(14,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(19,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(23,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(45,3): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(46,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(52,5): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(58,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(65,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(69,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(76,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(80,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(86,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(91,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(99,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(110,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Tuple.ts(121,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(7,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(8,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(15,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(22,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(27,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(31,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(35,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(39,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(50,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/Writer.ts(61,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/boolean.ts(4,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/boolean.ts(5,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(23,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(24,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(29,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(36,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(40,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(44,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(48,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(52,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(56,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(60,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(64,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(68,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(72,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(86,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/function.ts(95,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/index.ts(28,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/index.ts(29,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(10,1): error TS2593: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(11,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(16,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(21,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(26,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(31,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(38,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(45,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(65,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(71,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(78,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(85,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(90,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(101,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(123,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(133,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +test/pipeable.ts(138,3): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. + + + +Standard error: diff --git a/tests/baselines/reference/user/sift.log b/tests/baselines/reference/user/sift.log new file mode 100644 index 0000000000000..198e2fd125bae --- /dev/null +++ b/tests/baselines/reference/user/sift.log @@ -0,0 +1,7 @@ +Exit Code: 1 +Standard output: +node_modules/sift/index.d.ts(80,15): error TS2307: Cannot find module './core'. + + + +Standard error: diff --git a/tests/baselines/reference/user/uglify-js.log b/tests/baselines/reference/user/uglify-js.log index acbb8c2dfa175..ba4059e5ed215 100644 --- a/tests/baselines/reference/user/uglify-js.log +++ b/tests/baselines/reference/user/uglify-js.log @@ -22,63 +22,63 @@ node_modules/uglify-js/lib/compress.js(1296,112): error TS2454: Variable 'args' node_modules/uglify-js/lib/compress.js(1297,29): error TS2532: Object is possibly 'undefined'. node_modules/uglify-js/lib/compress.js(1315,29): error TS2322: Type 'false' is not assignable to type 'number'. node_modules/uglify-js/lib/compress.js(1323,29): error TS2322: Type 'false' is not assignable to type 'never'. -node_modules/uglify-js/lib/compress.js(1438,53): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1549,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1573,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1588,46): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1619,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1651,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1667,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1764,42): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1795,41): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1917,49): error TS2345: Argument of type 'number[]' is not assignable to parameter of type '[number, number, ...never[]]'. +node_modules/uglify-js/lib/compress.js(1441,53): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1552,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1576,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1591,46): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1622,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1654,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1670,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1767,42): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1798,41): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1920,49): error TS2345: Argument of type 'number[]' is not assignable to parameter of type '[number, number, ...never[]]'. Type 'number[]' is missing the following properties from type '[number, number, ...never[]]': 0, 1 -node_modules/uglify-js/lib/compress.js(2248,59): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2286,53): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[number, number, ...never[]]'. +node_modules/uglify-js/lib/compress.js(2251,59): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(2289,53): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[number, number, ...never[]]'. Type 'any[]' is missing the following properties from type '[number, number, ...never[]]': 0, 1 -node_modules/uglify-js/lib/compress.js(2434,34): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3148,55): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/uglify-js/lib/compress.js(3149,25): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/compress.js(3149,55): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/uglify-js/lib/compress.js(3149,56): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/compress.js(3190,42): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3269,33): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(3676,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3702,29): error TS2322: Type '"f"' is not assignable to type 'boolean'. -node_modules/uglify-js/lib/compress.js(3835,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3888,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3906,29): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(4021,63): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4151,12): error TS2339: Property 'push' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(4247,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4268,24): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(4278,28): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(4363,32): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4602,17): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead. -node_modules/uglify-js/lib/compress.js(4670,45): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4781,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4873,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(4888,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(4999,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5149,17): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(5242,37): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5491,57): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[string | RegExp, (string | undefined)?]'. +node_modules/uglify-js/lib/compress.js(2437,34): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3206,55): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. +node_modules/uglify-js/lib/compress.js(3207,25): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/compress.js(3207,55): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. +node_modules/uglify-js/lib/compress.js(3207,56): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/compress.js(3248,42): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3327,33): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(3734,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3760,29): error TS2322: Type '"f"' is not assignable to type 'boolean'. +node_modules/uglify-js/lib/compress.js(3893,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3946,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3964,29): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(4079,63): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4209,12): error TS2339: Property 'push' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(4305,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4326,24): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(4336,28): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(4421,32): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4660,17): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead. +node_modules/uglify-js/lib/compress.js(4728,45): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4839,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4931,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(4946,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(5057,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5207,17): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(5300,37): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5549,57): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[string | RegExp, (string | undefined)?]'. Property '0' is missing in type 'any[]' but required in type '[string | RegExp, (string | undefined)?]'. -node_modules/uglify-js/lib/compress.js(5655,45): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5662,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'code' must be of type 'string', but here has type '{ get: () => string; toString: () => string; indent: (half: any) => void; indentation: () => number; current_width: () => number; should_break: () => boolean; has_parens: () => boolean; newline: () => void; print: (str: any) => void; ... 23 more ...; parent: (n: any) => any; }'. -node_modules/uglify-js/lib/compress.js(5666,36): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(5671,41): error TS2339: Property 'get' does not exist on type 'string'. -node_modules/uglify-js/lib/compress.js(6179,18): error TS2454: Variable 'is_strict_comparison' is used before being assigned. -node_modules/uglify-js/lib/compress.js(6809,29): error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap. -node_modules/uglify-js/lib/compress.js(6851,47): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(6932,39): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(7004,39): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(7010,41): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(7497,43): error TS2454: Variable 'property' is used before being assigned. -node_modules/uglify-js/lib/compress.js(7512,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(7515,46): error TS2339: Property 'has_side_effects' does not exist on type 'number'. -node_modules/uglify-js/lib/compress.js(7521,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(7554,34): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5713,45): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5720,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'code' must be of type 'string', but here has type '{ get: () => string; toString: () => string; indent: (half: any) => void; indentation: () => number; current_width: () => number; should_break: () => boolean; has_parens: () => boolean; newline: () => void; print: (str: any) => void; ... 23 more ...; parent: (n: any) => any; }'. +node_modules/uglify-js/lib/compress.js(5724,36): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(5729,41): error TS2339: Property 'get' does not exist on type 'string'. +node_modules/uglify-js/lib/compress.js(6236,18): error TS2454: Variable 'is_strict_comparison' is used before being assigned. +node_modules/uglify-js/lib/compress.js(6860,29): error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap. +node_modules/uglify-js/lib/compress.js(6902,47): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6983,39): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(7055,39): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(7061,41): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(7548,43): error TS2454: Variable 'property' is used before being assigned. +node_modules/uglify-js/lib/compress.js(7563,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(7566,46): error TS2339: Property 'has_side_effects' does not exist on type 'number'. +node_modules/uglify-js/lib/compress.js(7572,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(7605,34): error TS2554: Expected 0 arguments, but got 1. node_modules/uglify-js/lib/minify.js(186,75): error TS2339: Property 'compress' does not exist on type 'Compressor'. node_modules/uglify-js/lib/mozilla-ast.js(566,33): error TS2554: Expected 0 arguments, but got 1. node_modules/uglify-js/lib/output.js(459,37): error TS2554: Expected 0 arguments, but got 1. diff --git a/tests/baselines/reference/user/webpack.log b/tests/baselines/reference/user/webpack.log index 477fb631ce75f..244f3088778c4 100644 --- a/tests/baselines/reference/user/webpack.log +++ b/tests/baselines/reference/user/webpack.log @@ -1,8 +1,8 @@ Exit Code: 1 Standard output: lib/ContextModule.js(436,34): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. -lib/ContextModule.js(464,34): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. -lib/ContextModule.js(769,34): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. +lib/ContextModule.js(465,34): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. +lib/ContextModule.js(767,34): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. lib/Dependency.js(139,29): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. lib/ExternalModule.js(284,54): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. lib/Module.js(625,34): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. @@ -27,9 +27,9 @@ lib/MultiCompiler.js(144,6): error TS2300: Duplicate identifier 'outputFileSyste lib/MultiCompiler.js(153,6): error TS2300: Duplicate identifier 'intermediateFileSystem'. lib/dependencies/ExportsInfoDependency.js(81,9): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. lib/dependencies/HarmonyExportImportedSpecifierDependency.js(567,40): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. -lib/dependencies/HarmonyImportDependency.js(169,37): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. -lib/dependencies/HarmonyImportDependency.js(171,36): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. -lib/dependencies/HarmonyImportDependency.js(177,19): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. +lib/dependencies/HarmonyImportDependency.js(195,37): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. +lib/dependencies/HarmonyImportDependency.js(197,36): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. +lib/dependencies/HarmonyImportDependency.js(203,19): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. lib/dependencies/HarmonyImportSpecifierDependency.js(167,34): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. lib/wasm/WasmChunkLoadingRuntimeModule.js(44,33): error TS2341: Property 'moduleGraph' is private and only accessible within class 'ChunkGraph'. diff --git a/tests/cases/compiler/asyncFunctionReturnType.ts b/tests/cases/compiler/asyncFunctionReturnType.ts index 3bd7a0e998ac2..d8c04e8ba6d60 100644 --- a/tests/cases/compiler/asyncFunctionReturnType.ts +++ b/tests/cases/compiler/asyncFunctionReturnType.ts @@ -63,14 +63,21 @@ async function fGenericIndexedTypeForExplicitPromiseOfAnyProp( return Promise.resolve(obj.anyProp); } -async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise> { return obj[key]; } -async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise> { return Promise.resolve(obj[key]); } -async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise { +async function fGenericIndexedTypeForExplicitPromiseOfKProp(obj: TObj, key: K): Promise> { return Promise.resolve(obj[key]); -} \ No newline at end of file +} + +// #27711 + +async function fGeneric(x: T) { + return x; +} +const expected: Promise = fGeneric(undefined as Promise); diff --git a/tests/cases/compiler/correctOrderOfPromiseMethod.ts b/tests/cases/compiler/correctOrderOfPromiseMethod.ts index 70c730c6b20b1..7ece852204825 100644 --- a/tests/cases/compiler/correctOrderOfPromiseMethod.ts +++ b/tests/cases/compiler/correctOrderOfPromiseMethod.ts @@ -17,7 +17,7 @@ async function countEverything(): Promise { const [resultA, resultB] = await Promise.all([ providerA(), providerB(), - ] as const); + ]); const dataA: A[] = resultA; const dataB: B[] = resultB; @@ -26,3 +26,7 @@ async function countEverything(): Promise { } return 0; } + +// #31179 + +const expected: Promise<["a", "b", "c"]> = Promise.all(undefined as readonly ["a", "b", "c"]); diff --git a/tests/cases/compiler/includeEs2015Promise.ts b/tests/cases/compiler/includeEs2015Promise.ts new file mode 100644 index 0000000000000..ea3e6679ecde4 --- /dev/null +++ b/tests/cases/compiler/includeEs2015Promise.ts @@ -0,0 +1,2 @@ +// @lib: es5,es2015.promise +// @skipDefaultLibCheck: false diff --git a/tests/cases/compiler/promiseType.ts b/tests/cases/compiler/promiseType.ts index ba4a7f6041396..cf769f1e6ae43 100644 --- a/tests/cases/compiler/promiseType.ts +++ b/tests/cases/compiler/promiseType.ts @@ -217,3 +217,17 @@ const pc6 = p.then(() => Promise.reject("1"), () => {}); const pc7 = p.then(() => Promise.reject("1"), () => {throw 1}); const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); + +const expected1: undefined = undefined as Awaited; + +// #27711 + +const expected2: Promise = new Promise>(() => {}); + +// #28427 + +Promise.all([undefined as Promise | number]); + +Promise.resolve(undefined as Promise | number); + +new Promise(undefined as (resolve: (value: Promise | number) => void) => void); diff --git a/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts b/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts index 2c0f7433ea31c..e3d0a594ffb61 100644 --- a/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts +++ b/tests/cases/conformance/types/mapped/mappedTypesArraysTuples.ts @@ -60,7 +60,6 @@ let y21 = nonpartial(x21); declare let x22: { a: number | undefined, b?: string[] }; let y22 = nonpartial(x22); -type Awaited = T extends PromiseLike ? U : T; type Awaitified = { [P in keyof T]: Awaited }; declare function all(...values: T): Promise>; diff --git a/tests/cases/user/ts-toolbelt/package.json b/tests/cases/user/ts-toolbelt/package.json index d066aeec2d688..5c03b2a121931 100644 --- a/tests/cases/user/ts-toolbelt/package.json +++ b/tests/cases/user/ts-toolbelt/package.json @@ -4,7 +4,7 @@ "description": "", "author": "", "license": "Apache-2.0", - "repository": { + "repository": { "type": "git", "url": "https://github.com/pirix-gh/ts-toolbelt" },