Index: pkg/compiler/lib/src/inferrer/builder.dart |
diff --git a/pkg/compiler/lib/src/inferrer/builder.dart b/pkg/compiler/lib/src/inferrer/builder.dart |
index c9c92be952b9e157a5562d852bdbc135809b2d3f..125472e1ce9d51a877ed6b597ce2b489fc9901c1 100644 |
--- a/pkg/compiler/lib/src/inferrer/builder.dart |
+++ b/pkg/compiler/lib/src/inferrer/builder.dart |
@@ -744,10 +744,13 @@ class ElementGraphBuilder extends ast.Visitor<TypeInformation> |
ast.Node exception = node.exception; |
if (exception != null) { |
ResolutionDartType type = elements.getType(node.type); |
- TypeInformation mask = |
- type == null || type.treatAsDynamic || type.isTypeVariable |
- ? types.dynamicType |
- : types.nonNullSubtype(type.element); |
+ TypeInformation mask; |
+ if (type == null || type.treatAsDynamic || type.isTypeVariable) { |
+ mask = types.dynamicType; |
+ } else { |
+ ResolutionInterfaceType interfaceType = type; |
+ mask = types.nonNullSubtype(interfaceType.element); |
+ } |
locals.update(elements[exception], mask, node); |
} |
ast.Node trace = node.trace; |