| Index: runtime/vm/flow_graph_builder.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_builder.cc (revision 19513)
|
| +++ runtime/vm/flow_graph_builder.cc (working copy)
|
| @@ -1062,13 +1062,17 @@
|
| // instantiated).
|
| result = new ConstantInstr(negate_result ? Bool::True() : Bool::False());
|
| } else {
|
| - if (literal_value.IsInstanceOf(type, TypeArguments::Handle(), NULL)) {
|
| + Error& malformed_error = Error::Handle();
|
| + if (literal_value.IsInstanceOf(type,
|
| + TypeArguments::Handle(),
|
| + &malformed_error)) {
|
| result = new ConstantInstr(negate_result ?
|
| Bool::False() : Bool::True());
|
| } else {
|
| result = new ConstantInstr(negate_result ?
|
| Bool::True() : Bool::False());
|
| }
|
| + ASSERT(malformed_error.IsNull());
|
| }
|
| ReturnDefinition(result);
|
| return;
|
| @@ -1927,18 +1931,13 @@
|
| requires_type_arguments &&
|
| !node->type_arguments().IsNull() &&
|
| !node->type_arguments().IsInstantiated() &&
|
| - !node->type_arguments().IsWithinBoundsOf(cls,
|
| - node->type_arguments(),
|
| - NULL)) {
|
| + node->type_arguments().IsBounded()) {
|
| Value* type_arguments = NULL;
|
| Value* instantiator = NULL;
|
| BuildConstructorTypeArguments(node, &type_arguments, &instantiator, NULL);
|
|
|
| // The uninstantiated type arguments cannot be verified to be within their
|
| // bounds at compile time, so verify them at runtime.
|
| - // Although the type arguments may be uninstantiated at compile time, they
|
| - // may represent the identity vector and may be replaced by the instantiated
|
| - // type arguments of the instantiator at run time.
|
| allocate_comp = new AllocateObjectWithBoundsCheckInstr(node,
|
| type_arguments,
|
| instantiator);
|
|
|