Index: sdk/lib/_internal/compiler/implementation/dart_backend/placeholder_collector.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/dart_backend/placeholder_collector.dart b/sdk/lib/_internal/compiler/implementation/dart_backend/placeholder_collector.dart |
index 93262f8a178fce7b3124af69a839a76a986a2954..24859f4358a7b7a3c3f0cdab8da7715518357a2c 100644 |
--- a/sdk/lib/_internal/compiler/implementation/dart_backend/placeholder_collector.dart |
+++ b/sdk/lib/_internal/compiler/implementation/dart_backend/placeholder_collector.dart |
@@ -365,8 +365,14 @@ class PlaceholderCollector extends Visitor { |
Element constructor = treeElements[send]; |
assert(constructor != null); |
assert(send.receiver == null); |
- if (!Elements.isErroneousElement(constructor) && |
- !Elements.isMalformedElement(constructor)) { |
+ |
+ // For constructors that refer to malformed class types retrieve |
+ // class type like it is done in [ SsaBuilder.visitNewSend ]. |
+ if (type.kind == TypeKind.MALFORMED_TYPE) { |
+ type = constructor.getEnclosingClass().thisType; |
+ } |
+ |
+ if (!Elements.isUnresolved(constructor)) { |
makeConstructorPlaceholder(node.send.selector, constructor, type); |
// TODO(smok): Should this be in visitNamedArgument? |
// Field names can be exposed as names of optional arguments, e.g. |