mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Add special inference rule for 'T | PromiseLike<T>'
This commit is contained in:
+47
-2
@@ -25992,6 +25992,38 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
return isTupleType(type) && getTupleElementType(type, 0) === getIndexedAccessType(typeParameter, getNumberLiteralType(0)) && !getTypeOfPropertyOfType(type, "1" as __String);
|
||||
}
|
||||
|
||||
function isAwaitedLikeType(type: Type) {
|
||||
if (type.flags & TypeFlags.Union) {
|
||||
let typeVariable: Type | undefined;
|
||||
let promisedType: Type | undefined;
|
||||
for (const t of (type as UnionType).types) {
|
||||
if (t.flags & TypeFlags.TypeVariable) {
|
||||
if (typeVariable) {
|
||||
return false;
|
||||
}
|
||||
typeVariable = t;
|
||||
if (promisedType) {
|
||||
return typeVariable === promisedType;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (isPromiseType(t)) {
|
||||
if (promisedType) {
|
||||
return false;
|
||||
}
|
||||
[promisedType] = getTypeArguments(t as TypeReference);
|
||||
if (typeVariable) {
|
||||
return typeVariable === promisedType;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function inferTypes(inferences: InferenceInfo[], originalSource: Type, originalTarget: Type, priority = InferencePriority.None, contravariant = false) {
|
||||
let bivariant = false;
|
||||
let propagationType: Type;
|
||||
@@ -26016,6 +26048,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
propagationType = savePropagationType;
|
||||
return;
|
||||
}
|
||||
// If the target is either `T | Promise<T>` or `T | PromiseLike<T>`, continue inferring types with the
|
||||
// `AwaitedLikeType` priority.
|
||||
if (!(priority & InferencePriority.AwaitedLikeType) && isAwaitedLikeType(target)) {
|
||||
priority |= InferencePriority.AwaitedLikeType;
|
||||
}
|
||||
if (source.aliasSymbol && source.aliasSymbol === target.aliasSymbol) {
|
||||
if (source.aliasTypeArguments) {
|
||||
// Source and target are types originating in the same generic type alias declaration.
|
||||
@@ -26165,7 +26202,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
}
|
||||
if (
|
||||
getObjectFlags(source) & ObjectFlags.Reference && getObjectFlags(target) & ObjectFlags.Reference && (
|
||||
(source as TypeReference).target === (target as TypeReference).target || isArrayType(source) && isArrayType(target)
|
||||
(source as TypeReference).target === (target as TypeReference).target ||
|
||||
isArrayType(source) && isArrayType(target) ||
|
||||
isPromiseType(source) && isPromiseType(target)
|
||||
) &&
|
||||
!((source as TypeReference).node && (target as TypeReference).node)
|
||||
) {
|
||||
@@ -26583,7 +26622,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
function inferFromObjectTypes(source: Type, target: Type) {
|
||||
if (
|
||||
getObjectFlags(source) & ObjectFlags.Reference && getObjectFlags(target) & ObjectFlags.Reference && (
|
||||
(source as TypeReference).target === (target as TypeReference).target || isArrayType(source) && isArrayType(target)
|
||||
(source as TypeReference).target === (target as TypeReference).target ||
|
||||
isArrayType(source) && isArrayType(target) ||
|
||||
isPromiseType(source) && isPromiseType(target)
|
||||
)
|
||||
) {
|
||||
// If source and target are references to the same generic type, infer from type arguments
|
||||
@@ -42488,6 +42529,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
}
|
||||
}
|
||||
|
||||
function isPromiseType(type: Type) {
|
||||
return isReferenceToSomeType(type, [getGlobalPromiseType(/*reportErrors*/ false), getGlobalPromiseLikeType(/*reportErrors*/ false)]);
|
||||
}
|
||||
|
||||
function getAwaitedTypeOfPromise(type: Type, errorNode?: Node, diagnosticMessage?: DiagnosticMessage, ...args: DiagnosticArguments): Type | undefined {
|
||||
const promisedType = getPromisedTypeOfPromise(type, errorNode);
|
||||
return promisedType && getAwaitedType(promisedType, errorNode, diagnosticMessage, ...args);
|
||||
|
||||
+13
-12
@@ -7027,19 +7027,20 @@ export type TypeMapper =
|
||||
export const enum InferencePriority {
|
||||
None = 0,
|
||||
NakedTypeVariable = 1 << 0, // Naked type variable in union or intersection type
|
||||
SpeculativeTuple = 1 << 1, // Speculative tuple inference
|
||||
SubstituteSource = 1 << 2, // Source of inference originated within a substitution type's substitute
|
||||
HomomorphicMappedType = 1 << 3, // Reverse inference for homomorphic mapped type
|
||||
PartialHomomorphicMappedType = 1 << 4, // Partial reverse inference for homomorphic mapped type
|
||||
MappedTypeConstraint = 1 << 5, // Reverse inference for mapped type
|
||||
ContravariantConditional = 1 << 6, // Conditional type in contravariant position
|
||||
ReturnType = 1 << 7, // Inference made from return type of generic function
|
||||
LiteralKeyof = 1 << 8, // Inference made from a string literal to a keyof T
|
||||
NoConstraints = 1 << 9, // Don't infer from constraints of instantiable types
|
||||
AlwaysStrict = 1 << 10, // Always use strict rules for contravariant inferences
|
||||
MaxValue = 1 << 11, // Seed for inference priority tracking
|
||||
AwaitedLikeType = 1 << 1, // A type that is essentially awaited
|
||||
SpeculativeTuple = 1 << 2, // Speculative tuple inference
|
||||
SubstituteSource = 1 << 3, // Source of inference originated within a substitution type's substitute
|
||||
HomomorphicMappedType = 1 << 4, // Reverse inference for homomorphic mapped type
|
||||
PartialHomomorphicMappedType = 1 << 5, // Partial reverse inference for homomorphic mapped type
|
||||
MappedTypeConstraint = 1 << 6, // Reverse inference for mapped type
|
||||
ContravariantConditional = 1 << 7, // Conditional type in contravariant position
|
||||
ReturnType = 1 << 8, // Inference made from return type of generic function
|
||||
LiteralKeyof = 1 << 9, // Inference made from a string literal to a keyof T
|
||||
NoConstraints = 1 << 10, // Don't infer from constraints of instantiable types
|
||||
AlwaysStrict = 1 << 11, // Always use strict rules for contravariant inferences
|
||||
MaxValue = 1 << 12, // Seed for inference priority tracking
|
||||
|
||||
PriorityImpliesCombination = ReturnType | MappedTypeConstraint | LiteralKeyof, // These priorities imply that the resulting type should be a combination of all candidates
|
||||
PriorityImpliesCombination = ReturnType | AwaitedLikeType | MappedTypeConstraint | LiteralKeyof, // These priorities imply that the resulting type should be a combination of all candidates
|
||||
Circularity = -1, // Inference circularity (value less than all other priorities)
|
||||
}
|
||||
|
||||
|
||||
+13
-12
@@ -6861,18 +6861,19 @@ declare namespace ts {
|
||||
enum InferencePriority {
|
||||
None = 0,
|
||||
NakedTypeVariable = 1,
|
||||
SpeculativeTuple = 2,
|
||||
SubstituteSource = 4,
|
||||
HomomorphicMappedType = 8,
|
||||
PartialHomomorphicMappedType = 16,
|
||||
MappedTypeConstraint = 32,
|
||||
ContravariantConditional = 64,
|
||||
ReturnType = 128,
|
||||
LiteralKeyof = 256,
|
||||
NoConstraints = 512,
|
||||
AlwaysStrict = 1024,
|
||||
MaxValue = 2048,
|
||||
PriorityImpliesCombination = 416,
|
||||
AwaitedLikeType = 2,
|
||||
SpeculativeTuple = 4,
|
||||
SubstituteSource = 8,
|
||||
HomomorphicMappedType = 16,
|
||||
PartialHomomorphicMappedType = 32,
|
||||
MappedTypeConstraint = 64,
|
||||
ContravariantConditional = 128,
|
||||
ReturnType = 256,
|
||||
LiteralKeyof = 512,
|
||||
NoConstraints = 1024,
|
||||
AlwaysStrict = 2048,
|
||||
MaxValue = 4096,
|
||||
PriorityImpliesCombination = 834,
|
||||
Circularity = -1,
|
||||
}
|
||||
interface FileExtensionInfo {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
//// [promiseType.ts]
|
||||
declare var p: Promise<boolean>;
|
||||
declare var x: any;
|
||||
declare var b: bigint;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -98,6 +99,7 @@ const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(null);
|
||||
@@ -108,6 +110,7 @@ const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
@@ -119,6 +122,7 @@ const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(null, undefined);
|
||||
@@ -130,6 +134,7 @@ const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
@@ -141,6 +146,7 @@ const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => x, undefined);
|
||||
@@ -152,6 +158,7 @@ const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
@@ -163,6 +170,7 @@ const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => null, undefined);
|
||||
@@ -174,6 +182,7 @@ const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p88a = p.then(() => null, () => b && Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
@@ -185,6 +194,7 @@ const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p98a = p.then(() => {}, () => b && Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
@@ -196,6 +206,7 @@ const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa8a = p.then(() => {throw 1}, () => b && Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
@@ -207,6 +218,7 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb8a = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
@@ -218,13 +230,15 @@ const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
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 pc8a = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
Promise.resolve(undefined as Promise<string> | number);
|
||||
Promise.resolve(undefined as Promise<Promise<number>>);
|
||||
Promise.resolve(undefined as string | Promise<Promise<number>>);
|
||||
Promise.resolve(undefined as Promise<string> | Promise<Promise<number>>);
|
||||
Promise.resolve(undefined as Promise<string | Promise<Promise<number>>>);
|
||||
Promise.resolve(undefined as Promise<string | Promise<Promise<number>>>);
|
||||
|
||||
|
||||
//// [promiseType.js]
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
@@ -337,6 +351,7 @@ const p16 = p.catch(() => { });
|
||||
const p17 = p.catch(() => { throw 1; });
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
@@ -346,6 +361,7 @@ const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => { });
|
||||
const p27 = p.then(() => { throw 1; });
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, null);
|
||||
@@ -356,6 +372,7 @@ const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => { });
|
||||
const p37 = p.then(undefined, () => { throw 1; });
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
@@ -366,6 +383,7 @@ const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => { });
|
||||
const p47 = p.then(null, () => { throw 1; });
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
@@ -376,6 +394,7 @@ const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => { });
|
||||
const p57 = p.then(() => "1", () => { throw 1; });
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
@@ -386,6 +405,7 @@ const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => { });
|
||||
const p67 = p.then(() => x, () => { throw 1; });
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
@@ -396,6 +416,7 @@ const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => { });
|
||||
const p77 = p.then(() => undefined, () => { throw 1; });
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
@@ -406,6 +427,7 @@ const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => { });
|
||||
const p87 = p.then(() => null, () => { throw 1; });
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p88a = p.then(() => null, () => b && Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
const p90 = p.then(() => { }, undefined);
|
||||
const p91 = p.then(() => { }, null);
|
||||
@@ -416,6 +438,7 @@ const p95 = p.then(() => { }, () => null);
|
||||
const p96 = p.then(() => { }, () => { });
|
||||
const p97 = p.then(() => { }, () => { throw 1; });
|
||||
const p98 = p.then(() => { }, () => Promise.resolve(1));
|
||||
const p98a = p.then(() => { }, () => b && Promise.resolve(1));
|
||||
const p99 = p.then(() => { }, () => Promise.reject(1));
|
||||
const pa0 = p.then(() => { throw 1; }, undefined);
|
||||
const pa1 = p.then(() => { throw 1; }, null);
|
||||
@@ -426,6 +449,7 @@ const pa5 = p.then(() => { throw 1; }, () => null);
|
||||
const pa6 = p.then(() => { throw 1; }, () => { });
|
||||
const pa7 = p.then(() => { throw 1; }, () => { throw 1; });
|
||||
const pa8 = p.then(() => { throw 1; }, () => Promise.resolve(1));
|
||||
const pa8a = p.then(() => { throw 1; }, () => b && Promise.resolve(1));
|
||||
const pa9 = p.then(() => { throw 1; }, () => Promise.reject(1));
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
@@ -436,6 +460,7 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => { });
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => { throw 1; });
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb8a = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
@@ -446,6 +471,7 @@ const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
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 pc8a = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
Promise.resolve(undefined);
|
||||
Promise.resolve(undefined);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
//// [tests/cases/compiler/promiseType.ts] ////
|
||||
|
||||
=== Performance Stats ===
|
||||
Instantiation count: 2,500
|
||||
Instantiation count: 1,000
|
||||
|
||||
=== promiseType.ts ===
|
||||
declare var p: Promise<boolean>;
|
||||
@@ -11,6 +11,10 @@ declare var p: Promise<boolean>;
|
||||
declare var x: any;
|
||||
>x : any
|
||||
|
||||
declare var b: bigint;
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
|
||||
async function A() {
|
||||
>A : () => Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -436,6 +440,34 @@ const p19 = p.catch(() => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
>p19a : Promise<number | boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.catch(() => b && Promise.resolve(1)) : Promise<number | boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.catch : <TResult = never>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>) => Promise<boolean | TResult>
|
||||
> : ^ ^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>catch : <TResult = never>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>) => Promise<boolean | TResult>
|
||||
> : ^ ^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
>p20 : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
@@ -577,6 +609,34 @@ const p28 = p.then(() => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
>p28a : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>p.then(() => b && Promise.resolve(1)) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
>p29 : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
@@ -760,6 +820,36 @@ const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
>p38a : Promise<number | boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(undefined, () => b && Promise.resolve(1)) : Promise<number | boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>undefined : undefined
|
||||
> : ^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
>p39 : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
@@ -927,6 +1017,34 @@ const p48 = p.then(null, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
>p48a : Promise<number | boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(null, () => b && Promise.resolve(1)) : Promise<number | boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
>p49 : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
@@ -1128,6 +1246,38 @@ const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
>p58a : Promise<string | number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => "1", () => b && Promise.resolve(1)) : Promise<string | number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => "1" : () => string
|
||||
> : ^^^^^^^^^^^^
|
||||
>"1" : "1"
|
||||
> : ^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
>p59 : Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
@@ -1324,6 +1474,37 @@ const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
>p68a : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then(() => x, () => b && Promise.resolve(1)) : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => x : () => any
|
||||
> : ^^^^^^^^^
|
||||
>x : any
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
>p69 : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
@@ -1528,6 +1709,38 @@ const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
>p78a : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then(() => undefined, () => b && Promise.resolve(1)) : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => undefined : () => any
|
||||
> : ^^^^^^^^^
|
||||
>undefined : undefined
|
||||
> : ^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
>p79 : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
@@ -1715,6 +1928,36 @@ const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p88a = p.then(() => null, () => b && Promise.resolve(1));
|
||||
>p88a : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then(() => null, () => b && Promise.resolve(1)) : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => null : () => any
|
||||
> : ^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
>p89 : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
@@ -1900,6 +2143,36 @@ const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p98a = p.then(() => {}, () => b && Promise.resolve(1));
|
||||
>p98a : Promise<number | void>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => {}, () => b && Promise.resolve(1)) : Promise<number | void>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => {} : () => void
|
||||
> : ^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
>p99 : Promise<void>
|
||||
> : ^^^^^^^^^^^^^
|
||||
@@ -2103,6 +2376,38 @@ const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pa8a = p.then(() => {throw 1}, () => b && Promise.resolve(1));
|
||||
>pa8a : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>p.then(() => {throw 1}, () => b && Promise.resolve(1)) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => {throw 1} : () => never
|
||||
> : ^^^^^^^^^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
>pa9 : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
@@ -2380,6 +2685,46 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pb8a = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
>pb8a : Promise<string | number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1)) : Promise<string | number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => Promise.resolve("1") : () => Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>Promise.resolve("1") : Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>"1" : "1"
|
||||
> : ^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
>pb9 : Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
@@ -2665,6 +3010,46 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pc8a = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
>pc8a : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>p.then(() => Promise.reject("1"), () => b && Promise.resolve(1)) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: (value: boolean) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => Promise.reject("1") : () => Promise<never>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>Promise.reject("1") : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
>Promise.reject : <T = never>(reason?: any) => Promise<T>
|
||||
> : ^ ^^^^^^^^^^ ^^^ ^^^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>reject : <T = never>(reason?: any) => Promise<T>
|
||||
> : ^ ^^^^^^^^^^ ^^^ ^^^^^
|
||||
>"1" : "1"
|
||||
> : ^^^
|
||||
>() => b && Promise.resolve(1) : () => Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
>pc9 : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
//// [promiseTypeStrictNull.ts]
|
||||
declare var p: Promise<boolean>;
|
||||
declare var x: any;
|
||||
declare var b: bigint;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -98,6 +99,7 @@ const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(null);
|
||||
@@ -108,6 +110,7 @@ const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
@@ -119,6 +122,7 @@ const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(null, undefined);
|
||||
@@ -130,6 +134,7 @@ const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
@@ -141,6 +146,7 @@ const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => x, undefined);
|
||||
@@ -152,6 +158,7 @@ const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
@@ -163,6 +170,7 @@ const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => null, undefined);
|
||||
@@ -174,6 +182,7 @@ const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p88b = p.then(() => null, () => b && Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
@@ -185,6 +194,7 @@ const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p98b = p.then(() => {}, () => b && Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
@@ -196,6 +206,7 @@ const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa8b = p.then(() => {throw 1}, () => b && Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
@@ -207,6 +218,7 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb8b = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
@@ -218,6 +230,7 @@ const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
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 pc8b = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
|
||||
@@ -332,6 +345,7 @@ const p16 = p.catch(() => { });
|
||||
const p17 = p.catch(() => { throw 1; });
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
@@ -341,6 +355,7 @@ const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => { });
|
||||
const p27 = p.then(() => { throw 1; });
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, null);
|
||||
@@ -351,6 +366,7 @@ const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => { });
|
||||
const p37 = p.then(undefined, () => { throw 1; });
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
@@ -361,6 +377,7 @@ const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => { });
|
||||
const p47 = p.then(null, () => { throw 1; });
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
@@ -371,6 +388,7 @@ const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => { });
|
||||
const p57 = p.then(() => "1", () => { throw 1; });
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
@@ -381,6 +399,7 @@ const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => { });
|
||||
const p67 = p.then(() => x, () => { throw 1; });
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
@@ -391,6 +410,7 @@ const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => { });
|
||||
const p77 = p.then(() => undefined, () => { throw 1; });
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
@@ -401,6 +421,7 @@ const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => { });
|
||||
const p87 = p.then(() => null, () => { throw 1; });
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p88b = p.then(() => null, () => b && Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
const p90 = p.then(() => { }, undefined);
|
||||
const p91 = p.then(() => { }, null);
|
||||
@@ -411,6 +432,7 @@ const p95 = p.then(() => { }, () => null);
|
||||
const p96 = p.then(() => { }, () => { });
|
||||
const p97 = p.then(() => { }, () => { throw 1; });
|
||||
const p98 = p.then(() => { }, () => Promise.resolve(1));
|
||||
const p98b = p.then(() => { }, () => b && Promise.resolve(1));
|
||||
const p99 = p.then(() => { }, () => Promise.reject(1));
|
||||
const pa0 = p.then(() => { throw 1; }, undefined);
|
||||
const pa1 = p.then(() => { throw 1; }, null);
|
||||
@@ -421,6 +443,7 @@ const pa5 = p.then(() => { throw 1; }, () => null);
|
||||
const pa6 = p.then(() => { throw 1; }, () => { });
|
||||
const pa7 = p.then(() => { throw 1; }, () => { throw 1; });
|
||||
const pa8 = p.then(() => { throw 1; }, () => Promise.resolve(1));
|
||||
const pa8b = p.then(() => { throw 1; }, () => b && Promise.resolve(1));
|
||||
const pa9 = p.then(() => { throw 1; }, () => Promise.reject(1));
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
@@ -431,6 +454,7 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => { });
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => { throw 1; });
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb8b = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
@@ -441,4 +465,5 @@ const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
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 pc8b = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,10 @@ declare var p: Promise<boolean>;
|
||||
declare var x: any;
|
||||
>x : any
|
||||
|
||||
declare var b: bigint;
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
|
||||
async function A() {
|
||||
>A : () => Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -436,6 +440,34 @@ const p19 = p.catch(() => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
>p19a : Promise<number | boolean | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.catch(() => b && Promise.resolve(1)) : Promise<number | boolean | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.catch : <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<boolean | TResult>
|
||||
> : ^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>catch : <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<boolean | TResult>
|
||||
> : ^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
>p20 : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
@@ -577,6 +609,34 @@ const p28 = p.then(() => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
>p28a : Promise<number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => b && Promise.resolve(1)) : Promise<number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
>p29 : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
@@ -760,6 +820,36 @@ const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
>p38a : Promise<number | boolean | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(undefined, () => b && Promise.resolve(1)) : Promise<number | boolean | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>undefined : undefined
|
||||
> : ^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
>p39 : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
@@ -927,6 +1017,34 @@ const p48 = p.then(null, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
>p48a : Promise<number | boolean | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(null, () => b && Promise.resolve(1)) : Promise<number | boolean | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
>p49 : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
@@ -1128,6 +1246,38 @@ const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
>p58a : Promise<string | number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => "1", () => b && Promise.resolve(1)) : Promise<string | number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => "1" : () => string
|
||||
> : ^^^^^^^^^^^^
|
||||
>"1" : "1"
|
||||
> : ^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
>p59 : Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
@@ -1324,6 +1474,37 @@ const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
>p68a : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then(() => x, () => b && Promise.resolve(1)) : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => x : () => any
|
||||
> : ^^^^^^^^^
|
||||
>x : any
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
>p69 : Promise<any>
|
||||
> : ^^^^^^^^^^^^
|
||||
@@ -1528,6 +1709,38 @@ const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
>p78a : Promise<number | 0n | undefined>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => undefined, () => b && Promise.resolve(1)) : Promise<number | 0n | undefined>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => undefined : () => undefined
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>undefined : undefined
|
||||
> : ^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
>p79 : Promise<undefined>
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
@@ -1715,6 +1928,36 @@ const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p88b = p.then(() => null, () => b && Promise.resolve(1));
|
||||
>p88b : Promise<number | 0n | null>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => null, () => b && Promise.resolve(1)) : Promise<number | 0n | null>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => null : () => null
|
||||
> : ^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
>p89 : Promise<null>
|
||||
> : ^^^^^^^^^^^^^
|
||||
@@ -1900,6 +2143,36 @@ const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p98b = p.then(() => {}, () => b && Promise.resolve(1));
|
||||
>p98b : Promise<number | void | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => {}, () => b && Promise.resolve(1)) : Promise<number | void | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => {} : () => void
|
||||
> : ^^^^^^^^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
>p99 : Promise<void>
|
||||
> : ^^^^^^^^^^^^^
|
||||
@@ -2103,6 +2376,38 @@ const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pa8b = p.then(() => {throw 1}, () => b && Promise.resolve(1));
|
||||
>pa8b : Promise<number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => {throw 1}, () => b && Promise.resolve(1)) : Promise<number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => {throw 1} : () => never
|
||||
> : ^^^^^^^^^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
>pa9 : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
@@ -2380,6 +2685,46 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pb8b = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
>pb8b : Promise<string | number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1)) : Promise<string | number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => Promise.resolve("1") : () => Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^
|
||||
>Promise.resolve("1") : Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>"1" : "1"
|
||||
> : ^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
>pb9 : Promise<string>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
@@ -2665,6 +3010,46 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pc8b = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
>pc8b : Promise<number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then(() => Promise.reject("1"), () => b && Promise.resolve(1)) : Promise<number | 0n>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>p.then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>p : Promise<boolean>
|
||||
> : ^^^^^^^^^^^^^^^^
|
||||
>then : <TResult1 = boolean, TResult2 = never>(onfulfilled?: ((value: boolean) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>
|
||||
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>() => Promise.reject("1") : () => Promise<never>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>Promise.reject("1") : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
>Promise.reject : <T = never>(reason?: any) => Promise<T>
|
||||
> : ^ ^^^^^^^^^^ ^^^ ^^^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>reject : <T = never>(reason?: any) => Promise<T>
|
||||
> : ^ ^^^^^^^^^^ ^^^ ^^^^^
|
||||
>"1" : "1"
|
||||
> : ^^^
|
||||
>() => b && Promise.resolve(1) : () => 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
>b && Promise.resolve(1) : 0n | Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^^^^^^
|
||||
>b : bigint
|
||||
> : ^^^^^^
|
||||
>Promise.resolve(1) : Promise<number>
|
||||
> : ^^^^^^^^^^^^^^^
|
||||
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>Promise : PromiseConstructor
|
||||
> : ^^^^^^^^^^^^^^^^^^
|
||||
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
|
||||
> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^
|
||||
>1 : 1
|
||||
> : ^
|
||||
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
>pc9 : Promise<never>
|
||||
> : ^^^^^^^^^^^^^^
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// @target: es6
|
||||
declare var p: Promise<boolean>;
|
||||
declare var x: any;
|
||||
declare var b: bigint;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -96,6 +97,7 @@ const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(null);
|
||||
@@ -106,6 +108,7 @@ const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
@@ -117,6 +120,7 @@ const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(null, undefined);
|
||||
@@ -128,6 +132,7 @@ const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
@@ -139,6 +144,7 @@ const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => x, undefined);
|
||||
@@ -150,6 +156,7 @@ const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
@@ -161,6 +168,7 @@ const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => null, undefined);
|
||||
@@ -172,6 +180,7 @@ const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p88a = p.then(() => null, () => b && Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
@@ -183,6 +192,7 @@ const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p98a = p.then(() => {}, () => b && Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
@@ -194,6 +204,7 @@ const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa8a = p.then(() => {throw 1}, () => b && Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
@@ -205,6 +216,7 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb8a = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
@@ -216,10 +228,11 @@ const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
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 pc8a = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
Promise.resolve(undefined as Promise<string> | number);
|
||||
Promise.resolve(undefined as Promise<Promise<number>>);
|
||||
Promise.resolve(undefined as string | Promise<Promise<number>>);
|
||||
Promise.resolve(undefined as Promise<string> | Promise<Promise<number>>);
|
||||
Promise.resolve(undefined as Promise<string | Promise<Promise<number>>>);
|
||||
Promise.resolve(undefined as Promise<string | Promise<Promise<number>>>);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// @strictNullChecks: true
|
||||
declare var p: Promise<boolean>;
|
||||
declare var x: any;
|
||||
declare var b: bigint;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -97,6 +98,7 @@ const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p19a = p.catch(() => b && Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(null);
|
||||
@@ -107,6 +109,7 @@ const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p28a = p.then(() => b && Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
@@ -118,6 +121,7 @@ const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p38a = p.then(undefined, () => b && Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(null, undefined);
|
||||
@@ -129,6 +133,7 @@ const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p48a = p.then(null, () => b && Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
@@ -140,6 +145,7 @@ const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p58a = p.then(() => "1", () => b && Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => x, undefined);
|
||||
@@ -151,6 +157,7 @@ const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p68a = p.then(() => x, () => b && Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
@@ -162,6 +169,7 @@ const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p78a = p.then(() => undefined, () => b && Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => null, undefined);
|
||||
@@ -173,6 +181,7 @@ const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p88b = p.then(() => null, () => b && Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
@@ -184,6 +193,7 @@ const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p98b = p.then(() => {}, () => b && Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
@@ -195,6 +205,7 @@ const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa8b = p.then(() => {throw 1}, () => b && Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
@@ -206,6 +217,7 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb8b = p.then(() => Promise.resolve("1"), () => b && Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
@@ -217,4 +229,5 @@ const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
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 pc8b = p.then(() => Promise.reject("1"), () => b && Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
Reference in New Issue
Block a user