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

Unified Diff: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/element/ClassElement.java

Issue 296043003: Fix for issue 14527 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add more tests Created 6 years, 7 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 | editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/ClassElementImpl.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/element/ClassElement.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/element/ClassElement.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/element/ClassElement.java
index 4ea86ebefd841e77b68f3f241c245cb5571fa76c..97ac4be0c235692965aaadd88c428062f58ddada 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/element/ClassElement.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/element/ClassElement.java
@@ -253,6 +253,27 @@ public interface ClassElement extends Element {
public boolean isValidMixin();
/**
+ * Return the element representing the method that results from looking up the given method in
+ * this class with respect to the given library, ignoring abstract methods, or {@code null} if the
+ * look up fails. The behavior of this method is defined by the Dart Language Specification in
+ * section 12.15.1: <blockquote> The result of looking up method <i>m</i> in class <i>C</i> with
+ * respect to library <i>L</i> is:
+ * <ul>
+ * <li>If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
+ * that method is the result of the lookup. Otherwise, if <i>C</i> has a superclass <i>S</i>, then
+ * the result of the lookup is the result of looking up method <i>m</i> in <i>S</i> with respect
+ * to <i>L</i>. Otherwise, we say that the lookup has failed.</li>
+ * </ul>
+ * </blockquote>
+ *
+ * @param methodName the name of the method being looked up
+ * @param library the library with respect to which the lookup is being performed
+ * @return the result of looking up the given method in this class with respect to the given
+ * library
+ */
+ public MethodElement lookUpConcreteMethod(String methodName, LibraryElement library);
+
+ /**
* Return the element representing the getter that results from looking up the given getter in
* this class with respect to the given library, or {@code null} if the look up fails. The
* behavior of this method is defined by the Dart Language Specification in section 12.15.1:
@@ -275,6 +296,73 @@ public interface ClassElement extends Element {
public PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library);
/**
+ * Return the element representing the getter that results from looking up the given getter in the
+ * superclass of this class with respect to the given library, ignoring abstract getters, or
+ * {@code null} if the look up fails. The behavior of this method is defined by the Dart Language
+ * Specification in section 12.15.1: <blockquote>The result of looking up getter (respectively
+ * setter) <i>m</i> in class <i>C</i> with respect to library <i>L</i> is:
+ * <ul>
+ * <li>If <i>C</i> declares an instance getter (respectively setter) named <i>m</i> that is
+ * accessible to <i>L</i>, then that getter (respectively setter) is the result of the lookup.
+ * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lookup is the result
+ * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respect to <i>L</i>.
+ * Otherwise, we say that the lookup has failed.</li>
+ * </ul>
+ * </blockquote>
+ *
+ * @param getterName the name of the getter being looked up
+ * @param library the library with respect to which the lookup is being performed
+ * @return the result of looking up the given getter in this class with respect to the given
+ * library
+ */
+ public PropertyAccessorElement lookUpInheritedConcreteGetter(String getterName,
+ LibraryElement library);
+
+ /**
+ * Return the element representing the method that results from looking up the given method in the
+ * superclass of this class with respect to the given library, ignoring abstract methods, or
+ * {@code null} if the look up fails. The behavior of this method is defined by the Dart Language
+ * Specification in section 12.15.1: <blockquote> The result of looking up method <i>m</i> in
+ * class <i>C</i> with respect to library <i>L</i> is:
+ * <ul>
+ * <li>If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
+ * that method is the result of the lookup. Otherwise, if <i>C</i> has a superclass <i>S</i>, then
+ * the result of the lookup is the result of looking up method <i>m</i> in <i>S</i> with respect
+ * to <i>L</i>. Otherwise, we say that the lookup has failed.</li>
+ * </ul>
+ * </blockquote>
+ *
+ * @param methodName the name of the method being looked up
+ * @param library the library with respect to which the lookup is being performed
+ * @return the result of looking up the given method in the superclass of this class with respect
+ * to the given library
+ */
+ public MethodElement lookUpInheritedConcreteMethod(String methodName, LibraryElement library);
+
+ /**
+ * Return the element representing the setter that results from looking up the given setter in the
+ * superclass of this class with respect to the given library, ignoring abstract setters, or
+ * {@code null} if the look up fails. The behavior of this method is defined by the Dart Language
+ * Specification in section 12.16: <blockquote> The result of looking up getter (respectively
+ * setter) <i>m</i> in class <i>C</i> with respect to library <i>L</i> is:
+ * <ul>
+ * <li>If <i>C</i> declares an instance getter (respectively setter) named <i>m</i> that is
+ * accessible to <i>L</i>, then that getter (respectively setter) is the result of the lookup.
+ * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lookup is the result
+ * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respect to <i>L</i>.
+ * Otherwise, we say that the lookup has failed.</li>
+ * </ul>
+ * </blockquote>
+ *
+ * @param setterName the name of the setter being looked up
+ * @param library the library with respect to which the lookup is being performed
+ * @return the result of looking up the given setter in this class with respect to the given
+ * library
+ */
+ public PropertyAccessorElement lookUpInheritedConcreteSetter(String setterName,
+ LibraryElement library);
+
+ /**
* Return the element representing the method that results from looking up the given method in the
* superclass of this class with respect to the given library, or {@code null} if the look up
* fails. The behavior of this method is defined by the Dart Language Specification in section
« no previous file with comments | « no previous file | editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/ClassElementImpl.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698