| 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('(');
|
|
|