From c0390e651a96b02822c52947fa671e925d139502 Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Tue, 19 Aug 2025 11:38:06 -0700
Subject: [PATCH 1/4] Add missing calls to AddSyntheticLeadingComment
---
internal/checker/nodebuilderimpl.go | 32 +-
...lassExpressionInClassStaticDeclarations.js | 2 +-
...xpressionInClassStaticDeclarations.js.diff | 9 +-
.../compiler/declFileTypeofFunction.js | 4 +-
.../compiler/declFileTypeofFunction.js.diff | 4 +-
.../declarationEmitInferredTypeAlias4.js | 2 +-
.../declarationEmitInferredTypeAlias4.js.diff | 9 -
...larationEmitPrivatePromiseLikeInterface.js | 12288 ++++++++--------
...ionEmitPrivatePromiseLikeInterface.js.diff | 12288 ++++++++--------
...iveInternalTypesProduceUniqueTypeParams.js | 8 +-
...ternalTypesProduceUniqueTypeParams.js.diff | 8 +-
.../emitClassExpressionInDeclarationFile.js | 4 +-
...itClassExpressionInDeclarationFile.js.diff | 11 +-
.../functionExpressionReturningItself.js | 2 +-
.../functionExpressionReturningItself.js.diff | 2 +-
...DeclarationOutputGetsTruncatedWithError.js | 5 +-
...rationOutputGetsTruncatedWithError.js.diff | 5 +-
.../compiler/noImplicitThisBigThis.js | 24 +-
.../compiler/noImplicitThisBigThis.js.diff | 29 +-
.../conformance/varianceAnnotations.js | 4 +-
.../conformance/varianceAnnotations.js.diff | 9 +-
21 files changed, 12345 insertions(+), 12404 deletions(-)
delete mode 100644 testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js.diff
diff --git a/internal/checker/nodebuilderimpl.go b/internal/checker/nodebuilderimpl.go
index 3f746c9d26..30d0813997 100644
--- a/internal/checker/nodebuilderimpl.go
+++ b/internal/checker/nodebuilderimpl.go
@@ -210,8 +210,7 @@ func (b *nodeBuilderImpl) createElidedInformationPlaceholder() *ast.TypeNode {
if b.ctx.flags&nodebuilder.FlagsNoTruncation == 0 {
return b.f.NewTypeReferenceNode(b.f.NewIdentifier("..."), nil /*typeArguments*/)
}
- // addSyntheticLeadingComment(b.f.NewKeywordTypeNode(ast.KindAnyKeyword), ast.KindMultiLineCommentTrivia, "elided") // !!!
- return b.f.NewKeywordTypeNode(ast.KindAnyKeyword)
+ return b.e.AddSyntheticLeadingComment(b.f.NewKeywordTypeNode(ast.KindAnyKeyword), ast.KindMultiLineCommentTrivia, "elided", false /*hasTrailingNewLine*/)
}
func (b *nodeBuilderImpl) mapToTypeNodes(list []*Type, isBareList bool) *ast.NodeList {
@@ -223,8 +222,7 @@ func (b *nodeBuilderImpl) mapToTypeNodes(list []*Type, isBareList bool) *ast.Nod
if !isBareList {
var node *ast.Node
if b.ctx.flags&nodebuilder.FlagsNoTruncation != 0 {
- // addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, `... ${types.length} elided ...`)
- node = b.f.NewKeywordTypeNode(ast.KindAnyKeyword)
+ node = b.e.AddSyntheticLeadingComment(b.f.NewKeywordTypeNode(ast.KindAnyKeyword), ast.KindMultiLineCommentTrivia, "elided", false /*hasTrailingNewLine*/)
} else {
node = b.f.NewTypeReferenceNode(b.f.NewIdentifier("..."), nil /*typeArguments*/)
}
@@ -237,8 +235,7 @@ func (b *nodeBuilderImpl) mapToTypeNodes(list []*Type, isBareList bool) *ast.Nod
}
if b.ctx.flags&nodebuilder.FlagsNoTruncation != 0 {
- // addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, `... ${types.length - 2} more elided ...`)
- nodes[1] = b.f.NewKeywordTypeNode(ast.KindAnyKeyword)
+ nodes[1] = b.e.AddSyntheticLeadingComment(b.f.NewKeywordTypeNode(ast.KindAnyKeyword), ast.KindMultiLineCommentTrivia, fmt.Sprintf("... %d more elided ...", len(list)-2), false /*hasTrailingNewLine*/)
} else {
text := fmt.Sprintf("... %d more ...", len(list)-2)
nodes[1] = b.f.NewTypeReferenceNode(b.f.NewIdentifier(text), nil /*typeArguments*/)
@@ -262,8 +259,7 @@ func (b *nodeBuilderImpl) mapToTypeNodes(list []*Type, isBareList bool) *ast.Nod
for i, t := range list {
if b.checkTruncationLength() && (i+2 < len(list)-1) {
if b.ctx.flags&nodebuilder.FlagsNoTruncation != 0 {
- // addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, `... ${types.length} elided ...`)
- result = append(result, b.f.NewKeywordTypeNode(ast.KindAnyKeyword))
+ result = append(result, b.e.AddSyntheticLeadingComment(b.f.NewKeywordTypeNode(ast.KindAnyKeyword), ast.KindMultiLineCommentTrivia, fmt.Sprintf("... %d more elided ...", len(list)-i), false /*hasTrailingNewLine*/))
} else {
text := fmt.Sprintf("... %d more ...", len(list)-i)
result = append(result, b.f.NewTypeReferenceNode(b.f.NewIdentifier(text), nil /*typeArguments*/))
@@ -2288,9 +2284,7 @@ func (b *nodeBuilderImpl) createTypeNodesFromResolvedType(resolvedType *Structur
if b.checkTruncationLength() {
if b.ctx.flags&nodebuilder.FlagsNoTruncation != 0 {
elem := b.f.NewNotEmittedTypeElement()
- // TODO: attach synthetic comment
- // b.e.addSyntheticTrailingComment(elem, ast.KindMultiLineCommentTrivia, "elided")
- return b.f.NewNodeList([]*ast.TypeElement{elem})
+ return b.f.NewNodeList([]*ast.TypeElement{b.e.AddSyntheticLeadingComment(elem, ast.KindMultiLineCommentTrivia, "elided", false /*hasTrailingNewLine*/)})
}
return b.f.NewNodeList([]*ast.Node{b.f.NewPropertySignatureDeclaration(nil, b.f.NewIdentifier("..."), nil, nil, nil)})
}
@@ -2326,11 +2320,10 @@ func (b *nodeBuilderImpl) createTypeNodesFromResolvedType(resolvedType *Structur
}
if b.checkTruncationLength() && (i+2 < len(properties)-1) {
if b.ctx.flags&nodebuilder.FlagsNoTruncation != 0 {
- // !!! synthetic comment support - missing middle silently elided without
- // typeElement := typeElements[len(typeElements) - 1].Clone()
- // typeElements = typeElements[0:len(typeElements)-1]
- // b.e.addSyntheticTrailingComment(typeElement, ast.KindMultiLineCommentTrivia, __TEMPLATE__("... ", properties.length-i, " more elided ..."))
- // typeElements = append(typeElements, typeElement)
+ idx := len(typeElements) - 1
+ typeElement := typeElements[idx]
+ typeElement = b.e.AddSyntheticLeadingComment(typeElement, ast.KindMultiLineCommentTrivia, fmt.Sprintf("... %d more elided ...", len(properties)-i), false /*hasTrailingNewLine*/)
+ typeElements[idx] = typeElement
} else {
text := fmt.Sprintf("... %d more ...", len(properties)-i)
typeElements = append(typeElements, b.f.NewPropertySignatureDeclaration(nil, b.f.NewIdentifier(text), nil, nil, nil))
@@ -2820,10 +2813,9 @@ func (b *nodeBuilderImpl) typeToTypeNode(t *Type) *ast.TypeNode {
if t.alias != nil {
return t.alias.ToTypeReferenceNode(b)
}
- // !!! TODO: add comment once synthetic comment additions to nodes are supported
- // if t == b.ch.unresolvedType {
- // return e.AddSyntheticLeadingComment(b.f.NewKeywordTypeNode(ast.KindAnyKeyword), ast.KindMultiLineCommentTrivia, "unresolved")
- // }
+ if t == b.ch.unresolvedType {
+ return b.e.AddSyntheticLeadingComment(b.f.NewKeywordTypeNode(ast.KindAnyKeyword), ast.KindMultiLineCommentTrivia, "unresolved", false /*hasTrailingNewLine*/)
+ }
b.ctx.approximateLength += 3
return b.f.NewKeywordTypeNode(core.IfElse(t == b.ch.intrinsicMarkerType, ast.KindIntrinsicKeyword, ast.KindAnyKeyword))
}
diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js b/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js
index e834620617..2841d9c4dc 100644
--- a/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js
+++ b/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js
@@ -16,6 +16,6 @@ class C {
declare class C {
static D: {
new (): {};
- D: any;
+ D: /*elided*/ any;
};
}
diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff
index 9aa70840a8..a9267943fe 100644
--- a/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff
@@ -16,11 +16,4 @@
+}
- //// [classExpressionInClassStaticDeclarations.d.ts]
- declare class C {
- static D: {
- new (): {};
-- D: /*elided*/ any;
-+ D: any;
- };
- }
\ No newline at end of file
+ //// [classExpressionInClassStaticDeclarations.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js b/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js
index c52858ab8b..f30bd41d11 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js
@@ -70,6 +70,6 @@ declare function b1(): typeof b1;
declare function foo(): typeof foo;
declare var foo1: typeof foo;
declare var foo2: typeof foo;
-declare var foo3: () => any;
-declare var x: () => any;
+declare var foo3: () => /*elided*/ any;
+declare var x: () => /*elided*/ any;
declare function foo5(x: number): (x: number) => number;
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff
index 609212f55b..dfb8724d16 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff
@@ -6,6 +6,6 @@
declare var foo2: typeof foo;
-declare var foo3: () => () => /*elided*/ any;
-declare var x: () => () => /*elided*/ any;
-+declare var foo3: () => any;
-+declare var x: () => any;
++declare var foo3: () => /*elided*/ any;
++declare var x: () => /*elided*/ any;
declare function foo5(x: number): (x: number) => number;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js
index 366e19cc92..3481283da3 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js
@@ -16,5 +16,5 @@ function f() {
//// [declarationEmitInferredTypeAlias4.d.ts]
declare function f(): A[] | {
- x: A[] | any;
+ x: A[] | /*elided*/ any;
};
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js.diff
deleted file mode 100644
index 2fbfcf4d08..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias4.js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.declarationEmitInferredTypeAlias4.js
-+++ new.declarationEmitInferredTypeAlias4.js
-@@= skipped -15, +15 lines =@@
-
- //// [declarationEmitInferredTypeAlias4.d.ts]
- declare function f(): A[] | {
-- x: A[] | /*elided*/ any;
-+ x: A[] | any;
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js
index 25430c1b93..e87fb9061c 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js
@@ -87,44 +87,44 @@ export declare class Api {
then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult | TResult_1 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult | TResult_1 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
};
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult | TResult_1 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult | TResult_1 | TResult_2 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult | TResult_1 | TResult_2 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
};
};
@@ -133,44 +133,44 @@ export declare class Api {
then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
- then(onfulfilled?: (value: TResult | TResult_1 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & any;
- catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & any;
+ then(onfulfilled?: (value: TResult | TResult_1 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
+ catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & /*elided*/ any;
};
};
};
catch(onrejected?: (reason: any) => TResult | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult | TResult_1 | TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Omit, "catch" | "then"> & {
then(onfulfilled?: (value: TResult1_1 | TResult2_1) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike