Skip to content

Commit 5a8804f

Browse files
committed
Merge remote-tracking branch 'origin/master' into portLibFiles731
2 parents aa63258 + 2edc47b commit 5a8804f

14 files changed

+1684
-1387
lines changed

src/compiler/checker.ts

Lines changed: 188 additions & 161 deletions
Large diffs are not rendered by default.

src/compiler/transformers/ts.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1752,6 +1752,12 @@ namespace ts {
17521752
type SerializedEntityNameAsExpression = Identifier | BinaryExpression | PropertyAccessExpression;
17531753
type SerializedTypeNode = SerializedEntityNameAsExpression | VoidExpression | ConditionalExpression;
17541754

1755+
function getAccessorTypeNode(node: AccessorDeclaration) {
1756+
const accessors = resolver.getAllAccessorDeclarations(node);
1757+
return accessors.setAccessor && getSetAccessorTypeAnnotationNode(accessors.setAccessor)
1758+
|| accessors.getAccessor && getEffectiveReturnTypeNode(accessors.getAccessor);
1759+
}
1760+
17551761
/**
17561762
* Serializes the type of a node for use with decorator type metadata.
17571763
*
@@ -1761,10 +1767,10 @@ namespace ts {
17611767
switch (node.kind) {
17621768
case SyntaxKind.PropertyDeclaration:
17631769
case SyntaxKind.Parameter:
1764-
case SyntaxKind.GetAccessor:
17651770
return serializeTypeNode((<PropertyDeclaration | ParameterDeclaration | GetAccessorDeclaration>node).type);
17661771
case SyntaxKind.SetAccessor:
1767-
return serializeTypeNode(getSetAccessorTypeAnnotationNode(<SetAccessorDeclaration>node));
1772+
case SyntaxKind.GetAccessor:
1773+
return serializeTypeNode(getAccessorTypeNode(node as AccessorDeclaration));
17681774
case SyntaxKind.ClassDeclaration:
17691775
case SyntaxKind.ClassExpression:
17701776
case SyntaxKind.MethodDeclaration:

src/compiler/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3315,8 +3315,8 @@ namespace ts {
33153315
export interface AllAccessorDeclarations {
33163316
firstAccessor: AccessorDeclaration;
33173317
secondAccessor: AccessorDeclaration | undefined;
3318-
getAccessor: AccessorDeclaration | undefined;
3319-
setAccessor: AccessorDeclaration | undefined;
3318+
getAccessor: GetAccessorDeclaration | undefined;
3319+
setAccessor: SetAccessorDeclaration | undefined;
33203320
}
33213321

33223322
/** Indicates how to serialize the name for a TypeReferenceNode when emitting decorator metadata */

src/compiler/utilities.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3310,8 +3310,8 @@ namespace ts {
33103310
// TODO: GH#18217
33113311
let firstAccessor!: AccessorDeclaration;
33123312
let secondAccessor!: AccessorDeclaration;
3313-
let getAccessor!: AccessorDeclaration;
3314-
let setAccessor!: AccessorDeclaration;
3313+
let getAccessor!: GetAccessorDeclaration;
3314+
let setAccessor!: SetAccessorDeclaration;
33153315
if (hasDynamicName(accessor)) {
33163316
firstAccessor = accessor;
33173317
if (accessor.kind === SyntaxKind.GetAccessor) {
@@ -3339,11 +3339,11 @@ namespace ts {
33393339
}
33403340

33413341
if (member.kind === SyntaxKind.GetAccessor && !getAccessor) {
3342-
getAccessor = <AccessorDeclaration>member;
3342+
getAccessor = <GetAccessorDeclaration>member;
33433343
}
33443344

33453345
if (member.kind === SyntaxKind.SetAccessor && !setAccessor) {
3346-
setAccessor = <AccessorDeclaration>member;
3346+
setAccessor = <SetAccessorDeclaration>member;
33473347
}
33483348
}
33493349
}

0 commit comments

Comments
 (0)