| Index: dart/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
|
| diff --git a/dart/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java b/dart/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
|
| index bcbaba3e7c4c925a358bb2fdfec18283154c6cff..742d7d4a82a5a79fb83fb2d0ed5355b9e6de74b8 100644
|
| --- a/dart/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
|
| +++ b/dart/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
|
| @@ -28,7 +28,6 @@ class ClassElementImplementation extends AbstractElement implements ClassElement
|
| private InterfaceType supertype;
|
| private InterfaceType defaultClass;
|
| private List<InterfaceType> interfaces;
|
| - private Set<InterfaceType> immediateSubtypes = new HashSet<InterfaceType>();
|
| private final boolean isInterface;
|
| private final String nativeName;
|
| private final Modifiers modifiers;
|
| @@ -87,34 +86,6 @@ class ClassElementImplementation extends AbstractElement implements ClassElement
|
| return getType().getArguments();
|
| }
|
|
|
| - private void computeTransitiveSubtypes(Set<InterfaceType> computedSubtypes) {
|
| - if (computedSubtypes.addAll(immediateSubtypes)) {
|
| - for (InterfaceType subtype : immediateSubtypes) {
|
| - ClassElementImplementation classElement = (ClassElementImplementation) subtype.getElement();
|
| - classElement.computeTransitiveSubtypes(computedSubtypes);
|
| - }
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public Set<InterfaceType> getSubtypes() {
|
| - if (subtypes == null) {
|
| - // add double-checked locking, with subtypes being declared volatile, for
|
| - // thread-safety
|
| - synchronized (this) {
|
| - if (subtypes == null) {
|
| - // Compute once, this will be an issue when we get to code
|
| - // generation...
|
| - HashSet<InterfaceType> newSubtypes = new HashSet<InterfaceType>();
|
| - newSubtypes.add(getType());
|
| - computeTransitiveSubtypes(newSubtypes);
|
| - subtypes = newSubtypes;
|
| - }
|
| - }
|
| - }
|
| - return subtypes;
|
| - }
|
| -
|
| @Override
|
| public InterfaceType getSupertype() {
|
| return supertype;
|
| @@ -128,11 +99,6 @@ class ClassElementImplementation extends AbstractElement implements ClassElement
|
| @Override
|
| public void setSupertype(InterfaceType supertype) {
|
| this.supertype = supertype;
|
| - if (TypeKind.of(supertype) == TypeKind.INTERFACE) {
|
| - ClassElementImplementation superClassElement =
|
| - (ClassElementImplementation) supertype.getElement();
|
| - superClassElement.immediateSubtypes.add(this.getType());
|
| - }
|
| }
|
|
|
| void setDefaultClass(InterfaceType element) {
|
| @@ -213,11 +179,6 @@ class ClassElementImplementation extends AbstractElement implements ClassElement
|
|
|
| void addInterface(InterfaceType type) {
|
| interfaces.add(type);
|
| -
|
| - if (TypeKind.of(type) == TypeKind.INTERFACE) {
|
| - ClassElementImplementation interfaceElement = (ClassElementImplementation) type.getElement();
|
| - interfaceElement.immediateSubtypes.add(this.getType());
|
| - }
|
| }
|
|
|
| Element findElement(String name) {
|
|
|