Index: sdk/lib/_internal/compiler/implementation/dart_types.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/dart_types.dart b/sdk/lib/_internal/compiler/implementation/dart_types.dart |
index 5f00a6239398959059aec7c69a12f529a4a0d9a7..ce0cdfa9e188103f6fd208eafc282bcef89bbd05 100644 |
--- a/sdk/lib/_internal/compiler/implementation/dart_types.dart |
+++ b/sdk/lib/_internal/compiler/implementation/dart_types.dart |
@@ -133,6 +133,15 @@ abstract class DartType { |
bool get containsTypeVariables => typeVariableOccurrence != null; |
accept(DartTypeVisitor visitor, var argument); |
+ |
+ void visitChildren(DartTypeVisitor visitor, var argument) {} |
+ |
+ static void visitList(Link<DartType> types, |
+ DartTypeVisitor visitor, var argument) { |
+ for (Link<DartType> link = types; !link.isEmpty ; link = link.tail) { |
+ link.head.accept(visitor, argument); |
+ } |
+ } |
} |
/** |
@@ -396,6 +405,10 @@ abstract class GenericType extends DartType { |
return _findTypeVariableOccurrence(typeArguments); |
} |
+ void visitChildren(DartTypeVisitor visitor, var argument) { |
+ DartType.visitList(typeArguments, visitor, argument); |
+ } |
+ |
String toString() { |
StringBuffer sb = new StringBuffer(); |
sb.write(name.slowToString()); |
@@ -663,6 +676,13 @@ class FunctionType extends DartType { |
return visitor.visitFunctionType(this, argument); |
} |
+ void visitChildren(DartTypeVisitor visitor, var argument) { |
+ returnType.accept(visitor, argument); |
+ DartType.visitList(parameterTypes, visitor, argument); |
+ DartType.visitList(optionalParameterTypes, visitor, argument); |
+ DartType.visitList(namedParameterTypes, visitor, argument); |
+ } |
+ |
String toString() { |
StringBuffer sb = new StringBuffer(); |
sb.write('('); |