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

Unified Diff: lib/compiler/implementation/resolver.dart

Issue 10908236: Convert static error to warning for calls to toplevel methods, getters and setters. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Changed test. Created 8 years, 3 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 | « no previous file | tests/co19/co19-dart2js.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/compiler/implementation/resolver.dart
diff --git a/lib/compiler/implementation/resolver.dart b/lib/compiler/implementation/resolver.dart
index f610736b99e9c503c70a70f16208c05c099a12b6..755d9fdcc0ee7e094f36a868780e6178e811cda3 100644
--- a/lib/compiler/implementation/resolver.dart
+++ b/lib/compiler/implementation/resolver.dart
@@ -1054,7 +1054,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.
@@ -1301,6 +1305,9 @@ 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 of
+ // [resolveSend] to select better warning messages for getters and
+ // setters.
return warnAndCreateErroneousElement(node, name,
MessageKind.METHOD_NOT_FOUND,
[receiverClass.name, name]);
@@ -1404,8 +1411,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]);
}
}
@@ -1468,10 +1478,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]);
}
}
« no previous file with comments | « no previous file | tests/co19/co19-dart2js.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698