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

Unified Diff: frog/leg/resolver.dart

Issue 9146036: Address review comments. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 11 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
« no previous file with comments | « frog/leg/namer.dart ('k') | frog/leg/warnings.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/leg/resolver.dart
===================================================================
--- frog/leg/resolver.dart (revision 3549)
+++ frog/leg/resolver.dart (working copy)
@@ -638,7 +638,7 @@
if (node.isConst()) cancel(node, 'const expressions are not implemented');
if (node.send.selector.asTypeAnnotation() === null) {
cancel(
- node, 'named constructors with type parameters are not implemented');
+ node, 'named constructors with type arguments are not implemented');
}
visit(node.send.argumentsNode);
@@ -871,18 +871,19 @@
visit(Node node) => node.accept(this);
- visitSend(Node node) {
+ visitSend(Send node) {
// The lhs is a property access. The parser never accepts this
// code right now if it's not a field initializer.
if (kind !== ElementKind.PARAMETER || node.receiver === null) {
- resolver.cancel('internal error');
+ resolver.cancel(node, 'internal error');
}
- if (resolver.element.kind !== ElementKind.GENERATIVE_CONSTRUCTOR) {
+ if (node.receiver.asIdentifier() === null ||
+ !node.receiver.asIdentifier().isThis()) {
+ resolver.error(node, MessageKind.INVALID_PARAMETER, []);
+ } else if (resolver.enclosingElement.kind !==
+ ElementKind.GENERATIVE_CONSTRUCTOR) {
resolver.error(node, MessageKind.FIELD_PARAMETER_NOT_ALLOWED, []);
- } else if (node.receiver.asIdentifier() === null ||
- !node.receiver.asIdentifier().isThis()) {
- resolver.error(node, MessageKind.INVALID_FIELD_PARAMETER, []);
} else {
SourceString name = node.selector.asIdentifier().source;
Element field = resolver.currentClass.lookupLocalMember(name);
@@ -890,9 +891,8 @@
resolver.error(node, MessageKind.NOT_A_FIELD, [name]);
} else if (!field.isInstanceMember()) {
resolver.error(node, MessageKind.NOT_INSTANCE_FIELD, [name]);
- } else {
- resolver.defineElement(node, field);
}
+ resolver.defineElement(node, field);
}
return null;
}
« no previous file with comments | « frog/leg/namer.dart ('k') | frog/leg/warnings.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698