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

Unified Diff: compiler/java/com/google/dart/compiler/parser/DartParser.java

Issue 10542094: Issue 3477. Report error when built-in identifier used as type name (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 6 months 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: compiler/java/com/google/dart/compiler/parser/DartParser.java
diff --git a/compiler/java/com/google/dart/compiler/parser/DartParser.java b/compiler/java/com/google/dart/compiler/parser/DartParser.java
index d9ca7cb4a9b8c6be3935f85d7816b7856fa26c94..172108e27451f8012778b9b96277d6adcd0681ce 100644
--- a/compiler/java/com/google/dart/compiler/parser/DartParser.java
+++ b/compiler/java/com/google/dart/compiler/parser/DartParser.java
@@ -132,6 +132,7 @@ public class DartParser extends CompletionHooksParserBase {
private static final String ABSTRACT_KEYWORD = "abstract";
private static final String ASSERT_KEYWORD = "assert";
private static final String CALL_KEYWORD = "call";
+ private static final String DYNAMIC_KEYWORD = "Dynamic";
private static final String EQUALS_KEYWORD = "equals";
private static final String EXTENDS_KEYWORD = "extends";
private static final String FACTORY_KEYWORD = "factory"; // TODO(zundel): remove
@@ -151,6 +152,7 @@ public class DartParser extends CompletionHooksParserBase {
ABSTRACT_KEYWORD,
ASSERT_KEYWORD,
CALL_KEYWORD,
+ DYNAMIC_KEYWORD,
EQUALS_KEYWORD,
EXTENDS_KEYWORD,
FACTORY_KEYWORD,
@@ -546,6 +548,9 @@ public class DartParser extends CompletionHooksParserBase {
private DartTypeParameter parseTypeParameter() {
beginTypeParameter();
DartIdentifier name = parseIdentifier();
+ if (PSEUDO_KEYWORDS_SET.contains(name.getName())) {
+ reportError(name, ParserErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_VARIABLE_NAME);
+ }
// Try to parse bound.
DartTypeNode bound = null;
if (peek(0) != Token.EOS && peek(0) != Token.COMMA && peek(0) != Token.GT) {
@@ -631,6 +636,9 @@ public class DartParser extends CompletionHooksParserBase {
}
return done(null);
}
+ if (PSEUDO_KEYWORDS_SET.contains(name.getName())) {
+ reportError(name, ParserErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_NAME);
+ }
List<DartTypeParameter> typeParameters = parseTypeParametersOpt();
// Parse the extends and implements clauses.
@@ -820,6 +828,10 @@ public class DartParser extends CompletionHooksParserBase {
}
DartIdentifier name = parseIdentifier();
+ if (PSEUDO_KEYWORDS_SET.contains(name.getName())) {
+ reportError(name, ParserErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME);
+ }
+
List<DartTypeParameter> typeParameters = parseTypeParametersOpt();
List<DartParameter> params = parseFormalParameterList();
expect(Token.SEMICOLON);

Powered by Google App Engine
This is Rietveld 408576698