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

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: 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') | tests/co19/co19-dart2js.status » ('J')
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 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]);
}
}
« no previous file with comments | « no previous file | tests/co19/co19-dart2js.status » ('j') | tests/co19/co19-dart2js.status » ('J')

Powered by Google App Engine
This is Rietveld 408576698