Chromium Code Reviews| Index: lib/compiler/implementation/resolver.dart |
| diff --git a/lib/compiler/implementation/resolver.dart b/lib/compiler/implementation/resolver.dart |
| index 20fdff4c87c125aa2d3b166b974f73d14bca8f2f..a1674498e2bbffb1c55114b9f8ae03e7395507d4 100644 |
| --- a/lib/compiler/implementation/resolver.dart |
| +++ b/lib/compiler/implementation/resolver.dart |
| @@ -1046,7 +1046,11 @@ class ResolverVisitor extends CommonResolverVisitor<Element> { |
| } else { |
| Element element = lookup(node, node.source); |
| if (element === null) { |
| - if (!inInstanceContext) error(node, MessageKind.CANNOT_RESOLVE, [node]); |
| + if (!inInstanceContext) { |
| + element = warnAndCreateErroneousElement(node, node.source, |
| + MessageKind.CANNOT_RESOLVE, |
| + [node]); |
| + } |
| } else { |
| if ((element.kind.category & allowedCategory) == 0) { |
| // TODO(ahe): Improve error message. Need UX input. |
| @@ -1293,6 +1297,8 @@ class ResolverVisitor extends CommonResolverVisitor<Element> { |
| ClassElement receiverClass = resolvedReceiver; |
| target = receiverClass.ensureResolved(compiler).lookupLocalMember(name); |
| if (target === null) { |
| + // TODO(karlklose): this should be reported by the caller to select |
|
ngeoffray
2012/09/13 09:18:30
the caller of [resolveSend] ...
karlklose
2012/09/13 12:00:43
Done.
|
| + // better warning messages for getters and setters. |
| return warnAndCreateErroneousElement(node, name, |
| MessageKind.METHOD_NOT_FOUND, |
| [receiverClass.name, name]); |
| @@ -1396,8 +1402,11 @@ class ResolverVisitor extends CommonResolverVisitor<Element> { |
| && target.kind == ElementKind.ABSTRACT_FIELD) { |
| AbstractFieldElement field = target; |
| target = field.getter; |
| - if (Elements.isUnresolved(target) && !inInstanceContext) { |
| - error(node.selector, MessageKind.CANNOT_RESOLVE_GETTER); |
| + if (target == null && !inInstanceContext) { |
| + target = |
| + warnAndCreateErroneousElement(node.selector, field.name, |
| + MessageKind.CANNOT_RESOLVE_GETTER, |
| + [node.selector]); |
| } |
| } |
| @@ -1460,10 +1469,16 @@ class ResolverVisitor extends CommonResolverVisitor<Element> { |
| setter = field.setter; |
| getter = field.getter; |
| if (setter == null && !inInstanceContext) { |
| - error(node.selector, MessageKind.CANNOT_RESOLVE_SETTER); |
| + setter = |
| + warnAndCreateErroneousElement(node.selector, field.name, |
| + MessageKind.CANNOT_RESOLVE_SETTER, |
| + [node.selector]); |
| } |
| if (isComplex && getter == null && !inInstanceContext) { |
| - error(node.selector, MessageKind.CANNOT_RESOLVE_GETTER); |
| + getter = |
| + warnAndCreateErroneousElement(node.selector, field.name, |
| + MessageKind.CANNOT_RESOLVE_GETTER, |
| + [node.selector]); |
| } |
| } |