| Index: sdk/lib/_internal/compiler/implementation/universe/universe.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/universe/universe.dart b/sdk/lib/_internal/compiler/implementation/universe/universe.dart
|
| index e2a679d107f5ba505d60fd3815799e9971161182..53902f44041535f5e01aeac14bfb9ad5465a2a05 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/universe/universe.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/universe/universe.dart
|
| @@ -459,7 +459,7 @@ class TypedSelector extends Selector {
|
| selector.argumentCount,
|
| selector.namedArguments) {
|
| // Invariant: Typed selector can not be based on a malformed type.
|
| - assert(!identical(mask.base.kind, TypeKind.MALFORMED_TYPE));
|
| + assert(mask.isEmpty || !identical(mask.base.kind, TypeKind.MALFORMED_TYPE));
|
| assert(asUntyped.mask == null);
|
| }
|
|
|
| @@ -504,6 +504,12 @@ class TypedSelector extends Selector {
|
| return appliesUntyped(element, compiler);
|
| }
|
|
|
| + if (mask.isEmpty) {
|
| + if (!mask.isNullable) return false;
|
| + return hasElementIn(compiler.backend.jsNullClass, element)
|
| + && appliesUntyped(element, compiler);
|
| + }
|
| +
|
| // TODO(kasperl): Can't we just avoid creating typed selectors
|
| // based of function types?
|
| Element self = mask.base.element;
|
|
|