| Index: lib/compiler/implementation/ssa/ssa.dart
|
| diff --git a/lib/compiler/implementation/ssa/ssa.dart b/lib/compiler/implementation/ssa/ssa.dart
|
| index d8e0b6bedc651ce2e0cfa76bdcbe09f7ab3c51fb..dbcf4918b84e5105ec09cae43b4b56e65ee2187c 100644
|
| --- a/lib/compiler/implementation/ssa/ssa.dart
|
| +++ b/lib/compiler/implementation/ssa/ssa.dart
|
| @@ -32,22 +32,25 @@ class RuntimeTypeInformation {
|
| String asJsString(InterfaceType type) {
|
| ClassElement element = type.element;
|
| StringBuffer buffer = new StringBuffer();
|
| - Link<Type> arguments = type.arguments;
|
| - int index = 0;
|
| - element.typeParameters.forEach((name, _) {
|
| - buffer.add("${name.slowToString()}: '${arguments.head}'");
|
| - if (++index < element.typeParameters.length) {
|
| + Link<Type> arguments = type.typeArguments;
|
| + Link<TypeVariableType> typeVariables = element.typeVariables;
|
| + while (!typeVariables.isEmpty()) {
|
| + TypeVariableType typeVariable = typeVariables.head;
|
| + buffer.add("${typeVariable}: '${arguments.head}'");
|
| +
|
| + typeVariables = typeVariables.tail;
|
| + if (!typeVariables.isEmpty()) {
|
| buffer.add(', ');
|
| }
|
| - });
|
| + }
|
| return "{$buffer}";
|
| }
|
|
|
| bool hasTypeArguments(Type type) {
|
| if (type is InterfaceType) {
|
| InterfaceType interfaceType = type;
|
| - return (!interfaceType.arguments.isEmpty() &&
|
| - interfaceType.arguments.tail.isEmpty());
|
| + return (!interfaceType.typeArguments.isEmpty() &&
|
| + interfaceType.typeArguments.tail.isEmpty());
|
| }
|
| return false;
|
| }
|
|
|