CR feedback.
This commit is contained in:
parent
605ee10768
commit
c2e178ee51
|
@ -3623,7 +3623,7 @@ module ts {
|
|||
return links.resolvedType;
|
||||
}
|
||||
|
||||
function getStringLiteralType(node: StringLiteralExpression): StringLiteralType {
|
||||
function getStringLiteralType(node: StringLiteral): StringLiteralType {
|
||||
if (hasProperty(stringLiteralTypes, node.text)) {
|
||||
return stringLiteralTypes[node.text];
|
||||
}
|
||||
|
@ -3633,7 +3633,7 @@ module ts {
|
|||
return type;
|
||||
}
|
||||
|
||||
function getTypeFromStringLiteral(node: StringLiteralExpression): Type {
|
||||
function getTypeFromStringLiteral(node: StringLiteral): Type {
|
||||
let links = getNodeLinks(node);
|
||||
if (!links.resolvedType) {
|
||||
links.resolvedType = getStringLiteralType(node);
|
||||
|
@ -3656,7 +3656,7 @@ module ts {
|
|||
case SyntaxKind.VoidKeyword:
|
||||
return voidType;
|
||||
case SyntaxKind.StringLiteral:
|
||||
return getTypeFromStringLiteral(<StringLiteralExpression>node);
|
||||
return getTypeFromStringLiteral(<StringLiteral>node);
|
||||
case SyntaxKind.TypeReference:
|
||||
return getTypeFromTypeReference(<TypeReferenceNode>node);
|
||||
case SyntaxKind.HeritageClauseElement:
|
||||
|
@ -6731,7 +6731,7 @@ module ts {
|
|||
let argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression
|
||||
? globalTemplateStringsArrayType
|
||||
: arg.kind === SyntaxKind.StringLiteral && !reportErrors
|
||||
? getStringLiteralType(<StringLiteralExpression>arg)
|
||||
? getStringLiteralType(<StringLiteral>arg)
|
||||
: checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined);
|
||||
|
||||
// Use argument expression as error location when reporting errors
|
||||
|
|
|
@ -258,7 +258,7 @@ module ts {
|
|||
handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning));
|
||||
}
|
||||
|
||||
function writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, type: TypeNode | StringLiteralExpression, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) {
|
||||
function writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, type: TypeNode, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) {
|
||||
writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
|
||||
write(": ");
|
||||
if (type) {
|
||||
|
@ -1126,7 +1126,7 @@ module ts {
|
|||
writeLine();
|
||||
}
|
||||
|
||||
function getTypeAnnotationFromAccessor(accessor: AccessorDeclaration): TypeNode | StringLiteralExpression {
|
||||
function getTypeAnnotationFromAccessor(accessor: AccessorDeclaration): TypeNode {
|
||||
if (accessor) {
|
||||
return accessor.kind === SyntaxKind.GetAccessor
|
||||
? accessor.type // Getter - return type
|
||||
|
|
|
@ -1803,7 +1803,7 @@ module ts {
|
|||
function parseParameterType(): TypeNode {
|
||||
if (parseOptional(SyntaxKind.ColonToken)) {
|
||||
return token === SyntaxKind.StringLiteral
|
||||
? <StringLiteralTypeNode>parseLiteralNode(/*internName:*/ true)
|
||||
? <StringLiteral>parseLiteralNode(/*internName:*/ true)
|
||||
: parseType();
|
||||
}
|
||||
|
||||
|
|
|
@ -596,7 +596,11 @@ module ts {
|
|||
type: TypeNode;
|
||||
}
|
||||
|
||||
export interface StringLiteralTypeNode extends LiteralExpression, TypeNode { }
|
||||
// Note that a StringLiteral AST node is both an Expression and a TypeNode. The latter is
|
||||
// because string literals can appear in the type annotation of a parameter node.
|
||||
export interface StringLiteral extends LiteralExpression, TypeNode {
|
||||
_stringLiteralBrand: any;
|
||||
}
|
||||
|
||||
// Note: 'brands' in our syntax nodes serve to give us a small amount of nominal typing.
|
||||
// Consider 'Expression'. Without the brand, 'Expression' is actually no different
|
||||
|
@ -689,10 +693,6 @@ module ts {
|
|||
hasExtendedUnicodeEscape?: boolean;
|
||||
}
|
||||
|
||||
export interface StringLiteralExpression extends LiteralExpression, TypeNode {
|
||||
_stringLiteralExpressionBrand: any;
|
||||
}
|
||||
|
||||
export interface TemplateExpression extends PrimaryExpression {
|
||||
head: LiteralExpression;
|
||||
templateSpans: NodeArray<TemplateSpan>;
|
||||
|
|
Loading…
Reference in a new issue