mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-30 01:04:49 -05:00
Move property initializer checks to the grammar checker.
This commit is contained in:
@@ -2994,9 +2994,6 @@ module ts {
|
||||
property.initializer = parseInitializer(/*inParameter*/ false);
|
||||
parseSemicolon();
|
||||
|
||||
if (inAmbientContext && property.initializer && errorCountBeforePropertyDeclaration === file.parseDiagnostics.length) {
|
||||
grammarErrorAtPos(initializerStart, initializerFirstTokenLength, Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);
|
||||
}
|
||||
return finishNode(property);
|
||||
}
|
||||
}
|
||||
@@ -3739,6 +3736,7 @@ module ts {
|
||||
case SyntaxKind.Parameter: return visitParameter(<ParameterDeclaration>node);
|
||||
case SyntaxKind.PostfixOperator: return visitPostfixOperator(<UnaryExpression>node);
|
||||
case SyntaxKind.PrefixOperator: return visitPrefixOperator(<UnaryExpression>node);
|
||||
case SyntaxKind.Property: return visitProperty(<PropertyDeclaration>node);
|
||||
case SyntaxKind.PropertyAssignment: return visitPropertyAssignment(<PropertyDeclaration>node);
|
||||
case SyntaxKind.ReturnStatement: return visitReturnStatement(<ReturnStatement>node);
|
||||
case SyntaxKind.SetAccessor: return visitSetAccessor(<MethodDeclaration>node);
|
||||
@@ -4381,6 +4379,12 @@ module ts {
|
||||
}
|
||||
}
|
||||
|
||||
function visitProperty(node: PropertyDeclaration) {
|
||||
if (inAmbientContext && node.initializer) {
|
||||
grammarErrorOnFirstToken(node.initializer, Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);
|
||||
}
|
||||
}
|
||||
|
||||
function visitPropertyAssignment(node: PropertyDeclaration) {
|
||||
checkForInvalidQuestionMark(node, Diagnostics.An_object_member_cannot_be_declared_optional);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user