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

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

Issue 15409004: Update CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD to check also super/mixin types (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Move hasNonFinalField() to ClassElement Created 7 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
Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/ClassElementImpl.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/ClassElementImpl.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/ClassElementImpl.java
index 61c551ba85f93f9899589d3d05051abc1da82f15..8d6db9089b8841e9aa6536153136bbe5557f5ca3 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/ClassElementImpl.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/ClassElementImpl.java
@@ -282,6 +282,32 @@ public class ClassElementImpl extends ElementImpl implements ClassElement {
}
@Override
+ public boolean hasNonFinalField() {
+ // check fields
+ for (FieldElement field : fields) {
+ if (!field.isFinal() && !field.isConst() && !field.isStatic() && !field.isSynthetic()) {
+ return true;
+ }
+ }
+ // check mixins
+ for (InterfaceType mixinType : mixins) {
+ ClassElement mixinElement = mixinType.getElement();
+ if (mixinElement.hasNonFinalField()) {
+ return true;
+ }
+ }
+ // check super
+ if (supertype != null) {
+ ClassElement superElement = supertype.getElement();
+ if (superElement.hasNonFinalField()) {
+ return true;
+ }
+ }
+ // not found
+ return false;
+ }
+
+ @Override
public boolean hasReferenceToSuper() {
return hasModifier(Modifier.REFERENCES_SUPER);
}

Powered by Google App Engine
This is Rietveld 408576698