| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/ssa/builder.dart b/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| index a82272bdc9b9b269a64f8d0f34c11131f23a01af..151efbdad1df2e09c5906fdb1431f648c53d07a0 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| @@ -1444,7 +1444,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
|
|
| Element target = constructor.targetConstructor.implementation;
|
| Selector.addForwardingElementArgumentsToList(
|
| - constructor,
|
| + constructor,
|
| arguments,
|
| target,
|
| compileArgument,
|
| @@ -1761,7 +1761,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| int kind) {
|
| if (type == null) return original;
|
| type = type.unalias(compiler);
|
| - if (type.kind == TypeKind.INTERFACE && !type.isMalformed && !type.isRaw) {
|
| + if (type.kind == TypeKind.INTERFACE && !type.isRaw) {
|
| HType subtype = new HType.subtype(type, compiler);
|
| HInstruction representations = buildTypeArgumentRepresentations(type);
|
| add(representations);
|
| @@ -2770,12 +2770,12 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| bool isNot = node.isIsNotCheck;
|
| DartType type = elements.getType(node.typeAnnotationFromIsCheckOrCast);
|
| type = type.unalias(compiler);
|
| - if (type.isMalformed) {
|
| - String reasons = Types.fetchReasonsFromMalformedType(type);
|
| + if (type.containsAmbiguousTypes) {
|
| + String reasons = Types.fetchReasonsFromAmbiguousType(type);
|
| if (compiler.enableTypeAssertions) {
|
| generateMalformedSubtypeError(node, expression, type, reasons);
|
| } else {
|
| - generateRuntimeError(node, '$type is malformed: $reasons');
|
| + generateRuntimeError(node, '$type is ambiguous: $reasons');
|
| }
|
| } else {
|
| HInstruction instruction = buildIsNode(node, type, expression);
|
| @@ -3415,10 +3415,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| * Invariant: [argument] must not be malformed in checked mode.
|
| */
|
| HInstruction analyzeTypeArgument(DartType argument) {
|
| - assert(invariant(currentElement,
|
| - !compiler.enableTypeAssertions || !argument.isMalformed,
|
| - message: '$argument is malformed in checked mode'));
|
| - if (argument == compiler.types.dynamicType || argument.isMalformed) {
|
| + if (argument.treatAsDynamic) {
|
| // Represent [dynamic] as [null].
|
| return graph.addConstantNull(compiler);
|
| }
|
| @@ -3474,9 +3471,6 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| */
|
| handleNewSend(NewExpression node, InterfaceType type) {
|
| Send send = node.send;
|
| - assert(invariant(send,
|
| - !compiler.enableTypeAssertions || !type.isMalformed,
|
| - message: '$type is malformed in checked mode'));
|
| bool isListConstructor = false;
|
| computeType(element) {
|
| Element originalElement = elements[send];
|
| @@ -3788,8 +3782,8 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| }
|
| } else {
|
| DartType type = elements.getType(node);
|
| - if (compiler.enableTypeAssertions && type.isMalformed) {
|
| - String reasons = Types.fetchReasonsFromMalformedType(type);
|
| + if (compiler.enableTypeAssertions && type.containsAmbiguousTypes) {
|
| + String reasons = Types.fetchReasonsFromAmbiguousType(type);
|
| // TODO(johnniwinther): Change to resemble type errors from bounds check
|
| // on type arguments.
|
| generateRuntimeError(node, '$type is malformed: $reasons');
|
| @@ -4927,18 +4921,11 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| if (type == null) {
|
| compiler.internalError('On with no type', node: catchBlock.type);
|
| }
|
| - if (type.isMalformed) {
|
| - // TODO(johnniwinther): Handle malformed types in [HIs] instead.
|
| - HInstruction condition =
|
| - graph.addConstantBool(true, compiler);
|
| - stack.add(condition);
|
| - } else {
|
| - // TODO(karlkose): support type arguments here.
|
| - HInstruction condition = new HIs(type,
|
| - <HInstruction>[unwrappedException],
|
| - HIs.RAW_CHECK);
|
| - push(condition);
|
| - }
|
| + // TODO(karlkose): support type arguments here.
|
| + HInstruction condition = new HIs(type,
|
| + <HInstruction>[unwrappedException],
|
| + HIs.RAW_CHECK);
|
| + push(condition);
|
| } else {
|
| VariableDefinitions declaration = catchBlock.formals.nodes.head;
|
| HInstruction condition = null;
|
| @@ -4971,8 +4958,8 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
|
| // malformed.
|
| if (catchBlock.onKeyword != null) {
|
| DartType type = elements.getType(catchBlock.type);
|
| - if (type != null && type.isMalformed) {
|
| - String reasons = Types.fetchReasonsFromMalformedType(type);
|
| + if (type != null && type.containsAmbiguousTypes) {
|
| + String reasons = Types.fetchReasonsFromAmbiguousType(type);
|
| generateMalformedSubtypeError(node,
|
| unwrappedException, type, reasons);
|
| pop();
|
|
|