Skip to content

Commit 0637f24

Browse files
committed
Merge remote-tracking branch 'origin/master' into checkJSFiles
2 parents e630ab1 + 5e4b8d6 commit 0637f24

File tree

72 files changed

+1663
-313
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1663
-313
lines changed

src/compiler/checker.ts

Lines changed: 589 additions & 1 deletion
Large diffs are not rendered by default.

src/compiler/factory.ts

Lines changed: 293 additions & 15 deletions
Large diffs are not rendered by default.

src/compiler/transformers/es2017.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ namespace ts {
125125
visitNodes(node.modifiers, visitor, isModifier),
126126
node.asteriskToken,
127127
node.name,
128+
/*questionToken*/ undefined,
128129
/*typeParameters*/ undefined,
129130
visitParameterList(node.parameters, visitor, context),
130131
/*type*/ undefined,

src/compiler/transformers/esnext.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@ namespace ts {
475475
/*modifiers*/ undefined,
476476
node.dotDotDotToken,
477477
getGeneratedNameForNode(node),
478+
/*questionToken*/ undefined,
478479
/*type*/ undefined,
479480
visitNode(node.initializer, visitor, isExpression)
480481
);
@@ -540,6 +541,7 @@ namespace ts {
540541
? undefined
541542
: node.asteriskToken,
542543
visitNode(node.name, visitor, isPropertyName),
544+
visitNode(/*questionToken*/ undefined, visitor, isToken),
543545
/*typeParameters*/ undefined,
544546
visitParameterList(node.parameters, visitor, context),
545547
/*type*/ undefined,

src/compiler/transformers/ts.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2049,6 +2049,7 @@ namespace ts {
20492049
visitNodes(node.modifiers, modifierVisitor, isModifier),
20502050
node.asteriskToken,
20512051
visitPropertyNameOfClassElement(node),
2052+
/*questionToken*/ undefined,
20522053
/*typeParameters*/ undefined,
20532054
visitParameterList(node.parameters, visitor, context),
20542055
/*type*/ undefined,

src/compiler/types.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,7 @@ namespace ts {
819819
body?: FunctionBody;
820820
}
821821

822-
// For when we encounter a semicolon in a class declaration. ES6 allows these as class elements.
822+
/** For when we encounter a semicolon in a class declaration. ES6 allows these as class elements.*/
823823
export interface SemicolonClassElement extends ClassElement {
824824
kind: SyntaxKind.SemicolonClassElement;
825825
parent?: ClassDeclaration | ClassExpression;
@@ -861,7 +861,11 @@ namespace ts {
861861
| SyntaxKind.BooleanKeyword
862862
| SyntaxKind.StringKeyword
863863
| SyntaxKind.SymbolKeyword
864-
| SyntaxKind.VoidKeyword;
864+
| SyntaxKind.ThisKeyword
865+
| SyntaxKind.VoidKeyword
866+
| SyntaxKind.UndefinedKeyword
867+
| SyntaxKind.NullKeyword
868+
| SyntaxKind.NeverKeyword;
865869
}
866870

867871
export interface ThisTypeNode extends TypeNode {
@@ -1030,15 +1034,15 @@ namespace ts {
10301034
_primaryExpressionBrand: any;
10311035
}
10321036

1033-
export interface NullLiteral extends PrimaryExpression {
1037+
export interface NullLiteral extends PrimaryExpression, TypeNode {
10341038
kind: SyntaxKind.NullKeyword;
10351039
}
10361040

1037-
export interface BooleanLiteral extends PrimaryExpression {
1041+
export interface BooleanLiteral extends PrimaryExpression, TypeNode {
10381042
kind: SyntaxKind.TrueKeyword | SyntaxKind.FalseKeyword;
10391043
}
10401044

1041-
export interface ThisExpression extends PrimaryExpression {
1045+
export interface ThisExpression extends PrimaryExpression, KeywordTypeNode {
10421046
kind: SyntaxKind.ThisKeyword;
10431047
}
10441048

@@ -2477,6 +2481,14 @@ namespace ts {
24772481
/* @internal */ getParameterType(signature: Signature, parameterIndex: number): Type;
24782482
getNonNullableType(type: Type): Type;
24792483

2484+
/** Note that the resulting nodes cannot be checked. */
2485+
2486+
typeToTypeNode(type: Type, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): TypeNode;
2487+
/** Note that the resulting nodes cannot be checked. */
2488+
signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): SignatureDeclaration;
2489+
/** Note that the resulting nodes cannot be checked. */
2490+
indexInfoToIndexSignatureDeclaration(indexInfo: IndexInfo, kind: IndexKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): IndexSignatureDeclaration;
2491+
24802492
getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[];
24812493
getSymbolAtLocation(node: Node): Symbol;
24822494
getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[];
@@ -2528,6 +2540,16 @@ namespace ts {
25282540
/* @internal */ getTypeCount(): number;
25292541
}
25302542

2543+
export enum NodeBuilderFlags {
2544+
None = 0,
2545+
allowThisInObjectLiteral = 1 << 0,
2546+
allowQualifedNameInPlaceOfIdentifier = 1 << 1,
2547+
allowTypeParameterInQualifiedName = 1 << 2,
2548+
allowAnonymousIdentifier = 1 << 3,
2549+
allowEmptyUnionOrIntersection = 1 << 4,
2550+
allowEmptyTuple = 1 << 5
2551+
}
2552+
25312553
export interface SymbolDisplayBuilder {
25322554
buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void;
25332555
buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void;
@@ -4079,7 +4101,7 @@ namespace ts {
40794101
export type Transformer<T extends Node> = (node: T) => T;
40804102

40814103
/**
4082-
* A function that accepts and possible transforms a node.
4104+
* A function that accepts and possibly transforms a node.
40834105
*/
40844106
export type Visitor = (node: Node) => VisitResult<Node>;
40854107

src/compiler/utilities.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,10 @@ namespace ts {
525525
return getFullWidth(name) === 0 ? "(Missing)" : getTextOfNode(name);
526526
}
527527

528+
export function getNameFromIndexInfo(info: IndexInfo) {
529+
return info.declaration ? declarationNameToString(info.declaration.parameters[0].name) : undefined;
530+
}
531+
528532
export function getTextOfPropertyName(name: PropertyName): string {
529533
switch (name.kind) {
530534
case SyntaxKind.Identifier:
@@ -740,8 +744,8 @@ namespace ts {
740744
//
741745
// let a: A.B.C;
742746
//
743-
// Calling isPartOfTypeNode would consider the qualified name A.B a type node. Only C or
744-
// A.B.C is a type node.
747+
// Calling isPartOfTypeNode would consider the qualified name A.B a type node.
748+
// Only C and A.B.C are type nodes.
745749
if (SyntaxKind.FirstTypeNode <= parent.kind && parent.kind <= SyntaxKind.LastTypeNode) {
746750
return true;
747751
}
@@ -3713,10 +3717,14 @@ namespace ts {
37133717
return (kind >= SyntaxKind.FirstTypeNode && kind <= SyntaxKind.LastTypeNode)
37143718
|| kind === SyntaxKind.AnyKeyword
37153719
|| kind === SyntaxKind.NumberKeyword
3720+
|| kind === SyntaxKind.ObjectKeyword
37163721
|| kind === SyntaxKind.BooleanKeyword
37173722
|| kind === SyntaxKind.StringKeyword
37183723
|| kind === SyntaxKind.SymbolKeyword
3724+
|| kind === SyntaxKind.ThisKeyword
37193725
|| kind === SyntaxKind.VoidKeyword
3726+
|| kind === SyntaxKind.UndefinedKeyword
3727+
|| kind === SyntaxKind.NullKeyword
37203728
|| kind === SyntaxKind.NeverKeyword
37213729
|| kind === SyntaxKind.ExpressionWithTypeArguments;
37223730
}

0 commit comments

Comments
 (0)