Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
index b4f385e97411f2048b1abd98c64c785a4f0bbead..8d93df53e28ca74ea38502be8f37e6b39469a198 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
@@ -145,18 +145,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
@override |
Expression toValue(Object node) { |
- if (node is UnresolvedIdentifier) { |
- if (isDartLibrary && |
- node.name.name == "main" && |
- library.uri.path == "_builtin" && |
- member?.name == "_getMainClosure") { |
- // TODO(ahe): https://github.com/dart-lang/sdk/issues/28989 |
- return new NullLiteral()..fileOffset = node.fileOffset; |
- } |
- return throwNoSuchMethodError( |
- node.name.name, new Arguments.empty(), node.fileOffset, |
- isGetter: true); |
- } else if (node is FastaAccessor) { |
+ if (node is FastaAccessor) { |
return node.buildSimpleRead(); |
} else if (node is TypeVariableBuilder) { |
TypeParameterType type = node.buildTypesWithBuiltArguments(library, null); |
@@ -531,9 +520,6 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
addCompileTimeError(charOffset, "Not a constant expression."); |
} |
return receiver.doInvocation(charOffset, arguments); |
- } else if (receiver is UnresolvedIdentifier) { |
- return throwNoSuchMethodError( |
- receiver.name.name, arguments, receiver.fileOffset); |
} else { |
return buildMethodInvocation( |
toValue(receiver), callName, arguments, charOffset); |
@@ -761,11 +747,14 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
addCompileTimeError(charOffset, "Not a constant expression."); |
} |
return new ThisPropertyAccessor(this, charOffset, n, null, null); |
+ } else if (isDartLibrary && |
+ name == "main" && |
+ library.uri.path == "_builtin" && |
+ member?.name == "_getMainClosure") { |
+ // TODO(ahe): https://github.com/dart-lang/sdk/issues/28989 |
+ return new NullLiteral()..fileOffset = charOffset; |
} else { |
- if (constantExpressionRequired) { |
- addCompileTimeError(charOffset, "Not a constant expression."); |
- } |
- return new UnresolvedIdentifier(n)..fileOffset = charOffset; |
+ return new UnresolvedAccessor(this, n, charOffset); |
} |
} else if (builder.isTypeDeclaration) { |
if (constantExpressionRequired && builder.isTypeVariable) { |
@@ -1305,9 +1294,6 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
if (name is FastaAccessor) { |
warning("'${beginToken.lexeme}' isn't a type.", beginToken.charOffset); |
push(const DynamicType()); |
- } else if (name is UnresolvedIdentifier) { |
- warning("'${name.name}' isn't a type.", beginToken.charOffset); |
- push(const DynamicType()); |
} else if (name is TypeVariableBuilder) { |
if (constantExpressionRequired) { |
addCompileTimeError( |
@@ -2458,15 +2444,6 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
} |
// TODO(ahe): Shouldn't need to be an expression. |
-class UnresolvedIdentifier extends InvalidExpression { |
- final Name name; |
- |
- UnresolvedIdentifier(this.name); |
- |
- String toString() => "unresolved-identifier($name)"; |
-} |
- |
-// TODO(ahe): Shouldn't need to be an expression. |
class Identifier extends InvalidExpression { |
final String name; |
@@ -2917,8 +2894,6 @@ String debugName(String className, String name, [String prefix]) { |
String getNodeName(Object node) { |
if (node is Identifier) { |
return node.name; |
- } else if (node is UnresolvedIdentifier) { |
- return node.name.name; |
} else if (node is TypeDeclarationBuilder) { |
return node.name; |
} else if (node is PrefixBuilder) { |