| Index: sdk/lib/_internal/compiler/implementation/ssa/codegen.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (revision 18249)
|
| +++ sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (working copy)
|
| @@ -1567,9 +1567,16 @@
|
| int receiverIndex = node.isInterceptorCall ? 1 : 0;
|
| HType receiverHType = types[node.inputs[receiverIndex]];
|
| DartType receiverType = receiverHType.computeType(compiler);
|
| - if (receiverType != null &&
|
| - !identical(receiverType.kind, TypeKind.MALFORMED_TYPE)) {
|
| - return new TypedSelector(receiverType, defaultSelector);
|
| + if (receiverType != null && !receiverType.isMalformed) {
|
| + TypedSelectorKind kind;
|
| + if (receiverHType.isExact()) {
|
| + kind = TypedSelectorKind.EXACT;
|
| + } else if (receiverHType.isInterfaceType()) {
|
| + kind = TypedSelectorKind.INTERFACE;
|
| + } else {
|
| + kind = TypedSelectorKind.SUBCLASS;
|
| + }
|
| + return new TypedSelector(receiverType, kind, defaultSelector);
|
| } else {
|
| return defaultSelector;
|
| }
|
|
|