Index: dart/sdk/lib/_internal/compiler/implementation/dart_types.dart |
diff --git a/dart/sdk/lib/_internal/compiler/implementation/dart_types.dart b/dart/sdk/lib/_internal/compiler/implementation/dart_types.dart |
index fd9ed6332f635feec4f5ec9ea1e389ff90b904ab..873b926fb7b2b9721d63cc94350db40132fd4012 100644 |
--- a/dart/sdk/lib/_internal/compiler/implementation/dart_types.dart |
+++ b/dart/sdk/lib/_internal/compiler/implementation/dart_types.dart |
@@ -94,10 +94,6 @@ abstract class DartType { |
*/ |
bool forEachMalformedType(bool f(MalformedType type)) => true; |
- // TODO(ahe): This is implicitly inherited from Object. What is the purpose |
- // of duplicating it here? |
- bool operator ==(other); |
- |
/** |
* Is [: true :] if this type has no explict type arguments. |
*/ |
@@ -346,10 +342,6 @@ class MalformedType extends DartType { |
return visitor.visitMalformedType(this, argument); |
} |
- // TODO(ahe): This is the default implementation that would be inherited if |
- // DartType didn't declare an abstract method. What is the purpose? |
- bool operator ==(other) => identical(this, other); |
- |
String toString() { |
var sb = new StringBuffer(); |
if (typeArguments != null) { |
@@ -456,7 +448,8 @@ abstract class GenericType extends DartType { |
bool operator ==(other) { |
if (other is !GenericType) return false; |
- return identical(element, other.element) |
+ return kind == other.kind |
+ && element == other.element |
&& typeArguments == other.typeArguments; |
} |
@@ -465,7 +458,6 @@ abstract class GenericType extends DartType { |
GenericType asRaw() => element.rawType; |
} |
-// TODO(johnniwinther): Add common supertype for InterfaceType and TypedefType. |
class InterfaceType extends GenericType { |
final ClassElement element; |
@@ -553,17 +545,6 @@ class InterfaceType extends GenericType { |
return null; |
} |
- bool operator ==(other) { |
- // TODO(johnniwinther,karlklose): This is a bad implementation of |
- // operator==. This implementation is not compatible with the |
- // implementation in the superclass: another subclass of GenericType might |
- // compare equal to an instance of this class if the other subclass forgets |
- // to implement operator==. This is brittle and easy to avoid, ask ahe@ |
- // for concrete suggestions. |
- if (other is !InterfaceType) return false; |
- return super == other; |
- } |
- |
int get hashCode => super.hashCode; |
InterfaceType asRaw() => super.asRaw(); |
@@ -826,12 +807,6 @@ class TypedefType extends GenericType { |
return definition.subst(typeArguments, declaration.typeArguments); |
} |
- bool operator ==(other) { |
- // TODO(johnniwinther,karlklose): See InterfaceType.operator==. |
- if (other is !TypedefType) return false; |
- return super == other; |
- } |
- |
int get hashCode => super.hashCode; |
TypedefType asRaw() => super.asRaw(); |