| Index: runtime/vm/class_finalizer.cc
 | 
| ===================================================================
 | 
| --- runtime/vm/class_finalizer.cc	(revision 13204)
 | 
| +++ runtime/vm/class_finalizer.cc	(working copy)
 | 
| @@ -746,6 +746,16 @@
 | 
|        type_argument = arguments.TypeAt(i);
 | 
|        type_argument = FinalizeType(cls, type_argument, finalization);
 | 
|        if (type_argument.IsMalformed()) {
 | 
| +        // Malformed type arguments to a constructor of a generic type are
 | 
| +        // reported as a compile-time error.
 | 
| +        if (finalization >= kCanonicalizeForCreation) {
 | 
| +          const Script& script = Script::Handle(cls.script());
 | 
| +          const String& type_name =
 | 
| +              String::Handle(parameterized_type.UserVisibleName());
 | 
| +          ReportError(script, parameterized_type.token_pos(),
 | 
| +                      "type '%s' has malformed type argument",
 | 
| +                      type_name.ToCString());
 | 
| +        }
 | 
|          // In production mode, malformed type arguments are mapped to Dynamic.
 | 
|          // In checked mode, a type with malformed type arguments is malformed.
 | 
|          if (FLAG_enable_type_checks || FLAG_error_on_malformed_type) {
 | 
| @@ -775,6 +785,14 @@
 | 
|    // However, type parameter bounds are checked below, even for a raw type.
 | 
|    if (!arguments.IsNull() && (arguments.Length() != num_type_parameters)) {
 | 
|      // Wrong number of type arguments. The type is malformed.
 | 
| +    if (finalization >= kCanonicalizeForCreation) {
 | 
| +      const Script& script = Script::Handle(cls.script());
 | 
| +      const String& type_name =
 | 
| +          String::Handle(parameterized_type.UserVisibleName());
 | 
| +      ReportError(script, parameterized_type.token_pos(),
 | 
| +                  "wrong number of type arguments in type '%s'",
 | 
| +                  type_name.ToCString());
 | 
| +    }
 | 
|      FinalizeMalformedType(
 | 
|          Error::Handle(),  // No previous error.
 | 
|          cls, parameterized_type, finalization,
 | 
| 
 |