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

Unified Diff: compiler/java/com/google/dart/compiler/resolver/Resolver.java

Issue 10943012: Issue 5153. Setter should not conflict with method (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
Index: compiler/java/com/google/dart/compiler/resolver/Resolver.java
diff --git a/compiler/java/com/google/dart/compiler/resolver/Resolver.java b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
index 7746fe2fd1f14d44f2bbb1c7e48721fe35af90ad..f97d14298bf0f599419fe475eceb6afe2e07cd50 100644
--- a/compiler/java/com/google/dart/compiler/resolver/Resolver.java
+++ b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
@@ -1128,6 +1128,9 @@ public class Resolver {
String name = x.getName();
Element element = scope.findElement(scope.getLibrary(), name);
if (element == null) {
+ element = scope.findElement(scope.getLibrary(), "setter " + name);
+ }
+ if (element == null) {
// A private identifier could refer to a field in a different library. In this case
// we want to provide a more useful error message in the type analyzer.
if (DartIdentifier.isPrivateName(name)) {
@@ -1265,6 +1268,9 @@ public class Resolver {
case CLASS:
// Must be a static field.
element = Elements.findElement(((ClassElement) qualifier), x.getPropertyName());
+ if (element == null) {
+ element = Elements.findElement(((ClassElement) qualifier), "setter " + x.getPropertyName());
+ }
if (isIllegalPrivateAccess(x.getName(), qualifier, element, x.getPropertyName())) {
// break;
return null;
@@ -1480,6 +1486,9 @@ public class Resolver {
public Element visitUnqualifiedInvocation(DartUnqualifiedInvocation x) {
Scope scope = getContext().getScope();
Element element = scope.findElement(scope.getLibrary(), x.getTarget().getName());
+ if (element == null) {
+ element = scope.findElement(scope.getLibrary(), "setter " + x.getTarget().getName());
+ }
if (element == null && x.getTarget().getName().equals("assert")
&& x.getArguments().size() == 1) {
element = scope.findElement(scope.getLibrary(), Elements.ASSERT_FUNCTION_NAME);

Powered by Google App Engine
This is Rietveld 408576698