| Index: runtime/vm/parser.cc
|
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
|
| index 836b50d8fdc514d1c23202e1344fb63174f4583a..38774661d77cfa039cede98c3fd78a9bc9acd83b 100644
|
| --- a/runtime/vm/parser.cc
|
| +++ b/runtime/vm/parser.cc
|
| @@ -2235,10 +2235,10 @@ void Parser::ParseFormalParameter(bool allow_explicit_default_value,
|
| // signature functions (except typedef signature functions), therefore
|
| // we do not need to keep the correct script via a patch class. Use the
|
| // actual current class as owner of the signature function.
|
| - Function& signature_function =
|
| - Function::Handle(Z, Function::NewSignatureFunction(
|
| - current_class(), TokenPosition::kNoSource));
|
| - signature_function.set_parent_function(innermost_function());
|
| + Function& signature_function = Function::Handle(
|
| + Z,
|
| + Function::NewSignatureFunction(current_class(), innermost_function(),
|
| + TokenPosition::kNoSource));
|
| innermost_function_ = signature_function.raw();
|
|
|
| // Finish parsing the function type parameter.
|
| @@ -5438,8 +5438,8 @@ void Parser::ParseTypedef(const GrowableObjectArray& pending_classes,
|
| Z, ParseFunctionType(result_type, ClassFinalizer::kDoNotResolve));
|
| signature_function = function_type.signature();
|
| } else {
|
| - signature_function =
|
| - Function::NewSignatureFunction(function_type_alias, alias_name_pos);
|
| + signature_function = Function::NewSignatureFunction(
|
| + function_type_alias, Function::Handle(Z), alias_name_pos);
|
| innermost_function_ = signature_function.raw();
|
| ParamList params;
|
| // Parse the formal parameters of the function type.
|
| @@ -13311,10 +13311,9 @@ RawType* Parser::ParseFunctionType(
|
| }
|
| do {
|
| ConsumeToken();
|
| - const Function& signature_function =
|
| - Function::Handle(Z, Function::NewSignatureFunction(
|
| - current_class(), TokenPosition::kNoSource));
|
| - signature_function.set_parent_function(innermost_function());
|
| + const Function& signature_function = Function::Handle(
|
| + Z, Function::NewSignatureFunction(current_class(), innermost_function(),
|
| + TokenPosition::kNoSource));
|
| innermost_function_ = signature_function.raw();
|
| signature_function.set_result_type(type);
|
| // Parse optional type parameters.
|
|
|