Index: runtime/vm/parser.cc |
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc |
index 1aa98b144985022265652f73f90afa68bc1db8c0..315d5a1fd022fdf7a7c086c545b14b0765911bb1 100644 |
--- a/runtime/vm/parser.cc |
+++ b/runtime/vm/parser.cc |
@@ -1927,8 +1927,8 @@ void Parser::ParseFormalParameter(bool allow_explicit_default_value, |
TokenPosition::kNoSource)); |
signature_function.set_result_type(result_type); |
AddFormalParamsToFunction(&func_params, signature_function); |
- FunctionType& signature_type = |
- FunctionType::ZoneHandle(Z, signature_function.SignatureType()); |
+ Type& signature_type = |
+ Type::ZoneHandle(Z, signature_function.SignatureType()); |
if (!is_top_level_) { |
signature_type ^= ClassFinalizer::FinalizeType( |
current_class(), signature_type, ClassFinalizer::kCanonicalize); |
@@ -2318,7 +2318,7 @@ ClosureNode* Parser::CreateImplicitClosureNode(const Function& func, |
// parameterized class, make sure that the receiver is captured as |
// instantiator. |
if (current_block_->scope->function_level() > 0) { |
- const FunctionType& signature_type = FunctionType::Handle(Z, |
+ const Type& signature_type = Type::Handle(Z, |
implicit_closure_function.SignatureType()); |
const Class& scope_class = Class::Handle(Z, signature_type.type_class()); |
if (scope_class.IsGeneric()) { |
@@ -6580,8 +6580,7 @@ RawFunction* Parser::OpenSyncGeneratorFunction(TokenPosition func_pos) { |
AddFormalParamsToFunction(&closure_params, body); |
// Finalize function type. |
- FunctionType& signature_type = |
- FunctionType::Handle(Z, body.SignatureType()); |
+ Type& signature_type = Type::Handle(Z, body.SignatureType()); |
signature_type ^= ClassFinalizer::FinalizeType( |
current_class(), signature_type, ClassFinalizer::kCanonicalize); |
body.SetSignatureType(signature_type); |
@@ -6713,8 +6712,7 @@ RawFunction* Parser::OpenAsyncFunction(TokenPosition async_func_pos) { |
AddFormalParamsToFunction(&closure_params, closure); |
// Finalize function type. |
- FunctionType& signature_type = |
- FunctionType::Handle(Z, closure.SignatureType()); |
+ Type& signature_type = Type::Handle(Z, closure.SignatureType()); |
signature_type ^= ClassFinalizer::FinalizeType( |
current_class(), signature_type, ClassFinalizer::kCanonicalize); |
closure.SetSignatureType(signature_type); |
@@ -6849,8 +6847,7 @@ RawFunction* Parser::OpenAsyncGeneratorFunction( |
AddFormalParamsToFunction(&closure_params, closure); |
// Finalize function type. |
- FunctionType& signature_type = |
- FunctionType::Handle(Z, closure.SignatureType()); |
+ Type& signature_type = Type::Handle(Z, closure.SignatureType()); |
signature_type ^= ClassFinalizer::FinalizeType( |
current_class(), signature_type, ClassFinalizer::kCanonicalize); |
closure.SetSignatureType(signature_type); |
@@ -7598,7 +7595,7 @@ AstNode* Parser::ParseFunctionStatement(bool is_literal) { |
// passed as a function argument, or returned as a function result. |
LocalVariable* function_variable = NULL; |
- FunctionType& function_type = FunctionType::ZoneHandle(Z); |
+ Type& function_type = Type::ZoneHandle(Z); |
if (variable_name != NULL) { |
// Since the function type depends on the signature of the closure function, |
// it cannot be determined before the formal parameter list of the closure |
@@ -7607,10 +7604,10 @@ AstNode* Parser::ParseFunctionStatement(bool is_literal) { |
// We temporarily use the Closure class as scope class. |
const Class& unknown_scope_class = Class::Handle(Z, |
I->object_store()->closure_class()); |
- function_type = FunctionType::New(unknown_scope_class, |
- TypeArguments::Handle(Z), |
- function, |
- function_pos); |
+ function_type = Type::New(unknown_scope_class, |
+ TypeArguments::Handle(Z), |
+ function_pos); |
+ function_type.set_signature(function); |
function_type.SetIsFinalized(); // No finalization needed. |
// Add the function variable to the scope before parsing the function in |
@@ -7638,8 +7635,7 @@ AstNode* Parser::ParseFunctionStatement(bool is_literal) { |
INC_STAT(thread(), num_functions_parsed, 1); |
// Now that the local function has formal parameters, lookup the signature |
- FunctionType& signature_type = |
- FunctionType::ZoneHandle(Z, function.SignatureType()); |
+ Type& signature_type = Type::ZoneHandle(Z, function.SignatureType()); |
signature_type ^= ClassFinalizer::FinalizeType( |
current_class(), signature_type, ClassFinalizer::kCanonicalize); |
function.SetSignatureType(signature_type); |
@@ -7656,15 +7652,15 @@ AstNode* Parser::ParseFunctionStatement(bool is_literal) { |
CaptureInstantiator(); |
} |
- // A signature type itself cannot be malformed or malbounded, only its |
+ // A local signature type itself cannot be malformed or malbounded, only its |
// signature function's result type or parameter types may be. |
ASSERT(!signature_type.IsMalformed()); |
ASSERT(!signature_type.IsMalbounded()); |
if (variable_name != NULL) { |
// Patch the function type of the variable now that the signature is known. |
- function_type.set_scope_class( |
- Class::Handle(Z, signature_type.scope_class())); |
+ function_type.set_type_class( |
+ Class::Handle(Z, signature_type.type_class())); |
function_type.set_arguments( |
TypeArguments::Handle(Z, signature_type.arguments())); |
ASSERT(function_type.signature() == function.raw()); |
@@ -13184,8 +13180,7 @@ RawFunction* Parser::BuildConstructorClosureFunction( |
AddFormalParamsToFunction(¶ms, closure); |
// Finalize function type. |
- FunctionType& signature_type = |
- FunctionType::Handle(Z, closure.SignatureType()); |
+ Type& signature_type = Type::Handle(Z, closure.SignatureType()); |
signature_type ^= ClassFinalizer::FinalizeType( |
current_class(), signature_type, ClassFinalizer::kCanonicalize); |
closure.SetSignatureType(signature_type); |