Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2343)

Unified Diff: pkg/analyzer/lib/src/generated/parser.dart

Issue 1480433002: Add support for assert statements with messages to the analyzer. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/generated/parser.dart
diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
index 20745254b2dc6f198980ca2ee5d0756d4e9c93ee..560f8dd050a1a243e7472fe3a59c05270d66def1 100644
--- a/pkg/analyzer/lib/src/generated/parser.dart
+++ b/pkg/analyzer/lib/src/generated/parser.dart
@@ -574,6 +574,9 @@ class IncrementalParseDispatcher implements AstVisitor<AstNode> {
if (identical(_oldNode, node.condition)) {
return _parser.parseExpression2();
}
+ if (identical(_oldNode, node.message)) {
+ return _parser.parseExpression2();
+ }
return _notAChild(node);
}
@@ -4378,10 +4381,16 @@ class Parser {
_reportErrorForNode(
ParserErrorCode.ASSERT_DOES_NOT_TAKE_RETHROW, expression);
}
+ Token comma;
+ Expression message;
+ if (_matches(TokenType.COMMA)) {
+ comma = getAndAdvance();
+ message = parseExpression2();
+ }
Token rightParen = _expect(TokenType.CLOSE_PAREN);
Token semicolon = _expect(TokenType.SEMICOLON);
return new AssertStatement(
- keyword, leftParen, expression, rightParen, semicolon);
+ keyword, leftParen, expression, comma, message, rightParen, semicolon);
}
/**
@@ -9862,6 +9871,8 @@ class ResolutionCopier implements AstVisitor<bool> {
_isEqualTokens(node.assertKeyword, toNode.assertKeyword),
_isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
_isEqualNodes(node.condition, toNode.condition),
+ _isEqualTokens(node.comma, toNode.comma),
+ _isEqualNodes(node.message, toNode.message),
_isEqualTokens(node.rightParenthesis, toNode.rightParenthesis),
_isEqualTokens(node.semicolon, toNode.semicolon));
}

Powered by Google App Engine
This is Rietveld 408576698