Skip to content

Commit c2e178e

Browse files
CR feedback.
1 parent 605ee10 commit c2e178e

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

src/compiler/checker.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3623,7 +3623,7 @@ module ts {
36233623
return links.resolvedType;
36243624
}
36253625

3626-
function getStringLiteralType(node: StringLiteralExpression): StringLiteralType {
3626+
function getStringLiteralType(node: StringLiteral): StringLiteralType {
36273627
if (hasProperty(stringLiteralTypes, node.text)) {
36283628
return stringLiteralTypes[node.text];
36293629
}
@@ -3633,7 +3633,7 @@ module ts {
36333633
return type;
36343634
}
36353635

3636-
function getTypeFromStringLiteral(node: StringLiteralExpression): Type {
3636+
function getTypeFromStringLiteral(node: StringLiteral): Type {
36373637
let links = getNodeLinks(node);
36383638
if (!links.resolvedType) {
36393639
links.resolvedType = getStringLiteralType(node);
@@ -3656,7 +3656,7 @@ module ts {
36563656
case SyntaxKind.VoidKeyword:
36573657
return voidType;
36583658
case SyntaxKind.StringLiteral:
3659-
return getTypeFromStringLiteral(<StringLiteralExpression>node);
3659+
return getTypeFromStringLiteral(<StringLiteral>node);
36603660
case SyntaxKind.TypeReference:
36613661
return getTypeFromTypeReference(<TypeReferenceNode>node);
36623662
case SyntaxKind.HeritageClauseElement:
@@ -6731,7 +6731,7 @@ module ts {
67316731
let argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression
67326732
? globalTemplateStringsArrayType
67336733
: arg.kind === SyntaxKind.StringLiteral && !reportErrors
6734-
? getStringLiteralType(<StringLiteralExpression>arg)
6734+
? getStringLiteralType(<StringLiteral>arg)
67356735
: checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined);
67366736

67376737
// Use argument expression as error location when reporting errors

src/compiler/declarationEmitter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ module ts {
258258
handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning));
259259
}
260260

261-
function writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, type: TypeNode | StringLiteralExpression, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) {
261+
function writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, type: TypeNode, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) {
262262
writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
263263
write(": ");
264264
if (type) {
@@ -1126,7 +1126,7 @@ module ts {
11261126
writeLine();
11271127
}
11281128

1129-
function getTypeAnnotationFromAccessor(accessor: AccessorDeclaration): TypeNode | StringLiteralExpression {
1129+
function getTypeAnnotationFromAccessor(accessor: AccessorDeclaration): TypeNode {
11301130
if (accessor) {
11311131
return accessor.kind === SyntaxKind.GetAccessor
11321132
? accessor.type // Getter - return type

src/compiler/parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1803,7 +1803,7 @@ module ts {
18031803
function parseParameterType(): TypeNode {
18041804
if (parseOptional(SyntaxKind.ColonToken)) {
18051805
return token === SyntaxKind.StringLiteral
1806-
? <StringLiteralTypeNode>parseLiteralNode(/*internName:*/ true)
1806+
? <StringLiteral>parseLiteralNode(/*internName:*/ true)
18071807
: parseType();
18081808
}
18091809

src/compiler/types.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,11 @@ module ts {
596596
type: TypeNode;
597597
}
598598

599-
export interface StringLiteralTypeNode extends LiteralExpression, TypeNode { }
599+
// Note that a StringLiteral AST node is both an Expression and a TypeNode. The latter is
600+
// because string literals can appear in the type annotation of a parameter node.
601+
export interface StringLiteral extends LiteralExpression, TypeNode {
602+
_stringLiteralBrand: any;
603+
}
600604

601605
// Note: 'brands' in our syntax nodes serve to give us a small amount of nominal typing.
602606
// Consider 'Expression'. Without the brand, 'Expression' is actually no different
@@ -689,10 +693,6 @@ module ts {
689693
hasExtendedUnicodeEscape?: boolean;
690694
}
691695

692-
export interface StringLiteralExpression extends LiteralExpression, TypeNode {
693-
_stringLiteralExpressionBrand: any;
694-
}
695-
696696
export interface TemplateExpression extends PrimaryExpression {
697697
head: LiteralExpression;
698698
templateSpans: NodeArray<TemplateSpan>;

0 commit comments

Comments
 (0)