| Index: runtime/vm/parser.cc
|
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
|
| index 86b677490b6d4dadbb29233929fd2534e929cd2c..4ac7c03415ef4704278f77c65dfde0e4ba4030c7 100644
|
| --- a/runtime/vm/parser.cc
|
| +++ b/runtime/vm/parser.cc
|
| @@ -66,6 +66,8 @@ DECLARE_FLAG(bool, warn_on_javascript_compatibility);
|
| #define I (isolate())
|
| #define Z (zone())
|
|
|
| +// Quick synthetic token position.
|
| +#define ST(token_pos) Token::ToSynthetic(token_pos)
|
|
|
| #if defined(DEBUG)
|
| class TraceParser : public ValueObject {
|
| @@ -239,7 +241,7 @@ void ParsedFunction::AllocateVariables() {
|
|
|
| struct CatchParamDesc {
|
| CatchParamDesc()
|
| - : token_pos(Scanner::kNoSourcePos), type(NULL), name(NULL), var(NULL) { }
|
| + : token_pos(Token::kNoSourcePos), type(NULL), name(NULL), var(NULL) { }
|
| intptr_t token_pos;
|
| const AbstractType* type;
|
| const String* name;
|
| @@ -519,7 +521,7 @@ RawInteger* Parser::CurrentIntegerLiteral() const {
|
| struct ParamDesc {
|
| ParamDesc()
|
| : type(NULL),
|
| - name_pos(Scanner::kNoSourcePos),
|
| + name_pos(Token::kNoSourcePos),
|
| name(NULL),
|
| default_value(NULL),
|
| metadata(NULL),
|
| @@ -624,10 +626,10 @@ struct MemberDesc {
|
| has_factory = false;
|
| has_operator = false;
|
| has_native = false;
|
| - metadata_pos = Scanner::kNoSourcePos;
|
| + metadata_pos = Token::kNoSourcePos;
|
| operator_token = Token::kILLEGAL;
|
| type = NULL;
|
| - name_pos = Scanner::kNoSourcePos;
|
| + name_pos = Token::kNoSourcePos;
|
| name = NULL;
|
| redirect_name = NULL;
|
| dict_name = NULL;
|
| @@ -1312,7 +1314,7 @@ SequenceNode* Parser::ParseInstanceGetter(const Function& func) {
|
| LoadInstanceFieldNode* load_field =
|
| new LoadInstanceFieldNode(ident_pos, load_receiver, field);
|
|
|
| - ReturnNode* return_node = new ReturnNode(Scanner::kNoSourcePos, load_field);
|
| + ReturnNode* return_node = new ReturnNode(ST(ident_pos), load_field);
|
| current_block_->statements->Add(return_node);
|
| return CloseBlock();
|
| }
|
| @@ -1356,7 +1358,7 @@ SequenceNode* Parser::ParseInstanceSetter(const Function& func) {
|
| StoreInstanceFieldNode* store_field =
|
| new StoreInstanceFieldNode(ident_pos, receiver, field, value);
|
| current_block_->statements->Add(store_field);
|
| - current_block_->statements->Add(new ReturnNode(Scanner::kNoSourcePos));
|
| + current_block_->statements->Add(new ReturnNode(ST(ident_pos)));
|
| return CloseBlock();
|
| }
|
|
|
| @@ -1484,7 +1486,7 @@ SequenceNode* Parser::ParseMethodExtractor(const Function& func) {
|
| ParamList params;
|
|
|
| const intptr_t ident_pos = func.token_pos();
|
| - ASSERT(func.token_pos() == 0);
|
| + ASSERT(func.token_pos() == ClassifyingTokenPositions::kMethodExtractor);
|
| ASSERT(current_class().raw() == func.Owner());
|
| params.AddReceiver(ReceiverType(current_class()), ident_pos);
|
| ASSERT(func.num_fixed_parameters() == 1); // Receiver.
|
| @@ -1504,7 +1506,7 @@ SequenceNode* Parser::ParseMethodExtractor(const Function& func) {
|
| load_receiver,
|
| NULL);
|
|
|
| - ReturnNode* return_node = new ReturnNode(Scanner::kNoSourcePos, closure);
|
| + ReturnNode* return_node = new ReturnNode(ident_pos, closure);
|
| current_block_->statements->Add(return_node);
|
| return CloseBlock();
|
| }
|
| @@ -2879,7 +2881,7 @@ SequenceNode* Parser::MakeImplicitConstructor(const Function& func) {
|
| OpenFunctionBlock(func);
|
|
|
| LocalVariable* receiver = new LocalVariable(
|
| - Scanner::kNoSourcePos, Symbols::This(), *ReceiverType(current_class()));
|
| + Token::kNoSourcePos, Symbols::This(), *ReceiverType(current_class()));
|
| current_block_->scope->InsertParameterAt(0, receiver);
|
|
|
| // Parse expressions of instance fields that have an explicit
|
| @@ -2922,20 +2924,20 @@ SequenceNode* Parser::MakeImplicitConstructor(const Function& func) {
|
|
|
| // Prepare user-defined arguments to be forwarded to super call.
|
| // The first user-defined argument is at position 1.
|
| - forwarding_args = new ArgumentListNode(Scanner::kNoSourcePos);
|
| + forwarding_args = new ArgumentListNode(ST(ctor_pos));
|
| for (int i = 1; i < func.NumParameters(); i++) {
|
| LocalVariable* param = new LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| String::ZoneHandle(Z, func.ParameterNameAt(i)),
|
| Object::dynamic_type());
|
| current_block_->scope->InsertParameterAt(i, param);
|
| - forwarding_args->Add(new LoadLocalNode(Scanner::kNoSourcePos, param));
|
| + forwarding_args->Add(new LoadLocalNode(ST(ctor_pos), param));
|
| }
|
| }
|
|
|
| AstNode* super_call = GenerateSuperConstructorCall(
|
| current_class(),
|
| - Scanner::kNoSourcePos,
|
| + ctor_pos,
|
| receiver,
|
| forwarding_args);
|
| if (super_call != NULL) {
|
| @@ -2944,7 +2946,7 @@ SequenceNode* Parser::MakeImplicitConstructor(const Function& func) {
|
| CheckFieldsInitialized(current_class());
|
|
|
| // Empty constructor body.
|
| - current_block_->statements->Add(new ReturnNode(Scanner::kNoSourcePos));
|
| + current_block_->statements->Add(new ReturnNode(ST(ctor_pos)));
|
| SequenceNode* statements = CloseBlock();
|
| return statements;
|
| }
|
| @@ -3321,7 +3323,7 @@ SequenceNode* Parser::ParseFunc(const Function& func, bool check_semicolon) {
|
|
|
| BoolScope allow_await(&this->await_is_keyword_,
|
| func.IsAsyncOrGenerator() || func.is_generated_body());
|
| - intptr_t end_token_pos = Scanner::kNoSourcePos;
|
| + intptr_t end_token_pos = Token::kNoSourcePos;
|
| if (CurrentToken() == Token::kLBRACE) {
|
| ConsumeToken();
|
| if (String::Handle(Z, func.name()).Equals(Symbols::EqualOperator())) {
|
| @@ -3414,24 +3416,24 @@ SequenceNode* Parser::ParseFunc(const Function& func, bool check_semicolon) {
|
|
|
| void Parser::AddEqualityNullCheck() {
|
| AstNode* argument =
|
| - new LoadLocalNode(Scanner::kNoSourcePos,
|
| + new LoadLocalNode(Token::kNoSourcePos,
|
| current_block_->scope->parent()->VariableAt(1));
|
| LiteralNode* null_operand =
|
| - new LiteralNode(Scanner::kNoSourcePos, Instance::ZoneHandle(Z));
|
| + new LiteralNode(Token::kNoSourcePos, Instance::ZoneHandle(Z));
|
| ComparisonNode* check_arg =
|
| - new ComparisonNode(Scanner::kNoSourcePos,
|
| + new ComparisonNode(Token::kNoSourcePos,
|
| Token::kEQ_STRICT,
|
| argument,
|
| null_operand);
|
| ComparisonNode* result =
|
| - new ComparisonNode(Scanner::kNoSourcePos,
|
| + new ComparisonNode(Token::kNoSourcePos,
|
| Token::kEQ_STRICT,
|
| - LoadReceiver(Scanner::kNoSourcePos),
|
| + LoadReceiver(Token::kNoSourcePos),
|
| null_operand);
|
| - SequenceNode* arg_is_null = new SequenceNode(Scanner::kNoSourcePos,
|
| + SequenceNode* arg_is_null = new SequenceNode(Token::kNoSourcePos,
|
| current_block_->scope);
|
| - arg_is_null->Add(new ReturnNode(Scanner::kNoSourcePos, result));
|
| - IfNode* if_arg_null = new IfNode(Scanner::kNoSourcePos,
|
| + arg_is_null->Add(new ReturnNode(Token::kNoSourcePos, result));
|
| + IfNode* if_arg_null = new IfNode(Token::kNoSourcePos,
|
| check_arg,
|
| arg_is_null,
|
| NULL);
|
| @@ -5078,7 +5080,7 @@ void Parser::ConsumeRightAngleBracket() {
|
|
|
| intptr_t Parser::SkipMetadata() {
|
| if (CurrentToken() != Token::kAT) {
|
| - return Scanner::kNoSourcePos;
|
| + return Token::kNoSourcePos;
|
| }
|
| intptr_t metadata_pos = TokenPos();
|
| while (CurrentToken() == Token::kAT) {
|
| @@ -5837,7 +5839,7 @@ void Parser::ParseLibraryImportExport(const Object& tl_owner,
|
| CheckToken(Token::kAS, "'as' expected");
|
| }
|
| String& prefix = String::Handle(Z);
|
| - intptr_t prefix_pos = Scanner::kNoSourcePos;
|
| + intptr_t prefix_pos = Token::kNoSourcePos;
|
| if (is_import && (CurrentToken() == Token::kAS)) {
|
| ConsumeToken();
|
| prefix_pos = TokenPos();
|
| @@ -6193,10 +6195,10 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| // Add the exception and stack trace parameters to the scope.
|
| CatchParamDesc exception_param;
|
| CatchParamDesc stack_trace_param;
|
| - exception_param.token_pos = Scanner::kNoSourcePos;
|
| + exception_param.token_pos = Token::kNoSourcePos;
|
| exception_param.type = &Object::dynamic_type();
|
| exception_param.name = &Symbols::ExceptionParameter();
|
| - stack_trace_param.token_pos = Scanner::kNoSourcePos;
|
| + stack_trace_param.token_pos = Token::kNoSourcePos;
|
| stack_trace_param.type = &Object::dynamic_type();
|
| stack_trace_param.name = &Symbols::StackTraceParameter();
|
|
|
| @@ -6216,9 +6218,9 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| // Generate code to load the exception object (:exception_var) into
|
| // the exception variable specified in this block.
|
| current_block_->statements->Add(new(Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| exception_param.var,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, exception_var)));
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, exception_var)));
|
| }
|
|
|
| LocalVariable* stack_trace_var =
|
| @@ -6229,9 +6231,9 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| // to load the stack trace object (:stack_trace_var) into the stack
|
| // trace variable specified in this block.
|
| current_block_->statements->Add(new(Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| stack_trace_param.var,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, stack_trace_var)));
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, stack_trace_var)));
|
| }
|
| LocalVariable* saved_exception_var = try_scope->LocalLookupVariable(
|
| Symbols::SavedExceptionVar());
|
| @@ -6250,15 +6252,15 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| current_block_->scope->LookupVariable(Symbols::Controller(), false);
|
| ASSERT(controller != NULL);
|
| ArgumentListNode* args =
|
| - new(Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| - args->Add(new(Z) LoadLocalNode(Scanner::kNoSourcePos, exception_param.var));
|
| - args->Add(new(Z) LoadLocalNode(Scanner::kNoSourcePos, stack_trace_param.var));
|
| + new(Z) ArgumentListNode(Token::kNoSourcePos);
|
| + args->Add(new(Z) LoadLocalNode(Token::kNoSourcePos, exception_param.var));
|
| + args->Add(new(Z) LoadLocalNode(Token::kNoSourcePos, stack_trace_param.var));
|
| current_block_->statements->Add(
|
| new(Z) InstanceCallNode(try_end_pos,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, controller),
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, controller),
|
| Symbols::AddError(),
|
| args));
|
| - ReturnNode* return_node = new(Z) ReturnNode(Scanner::kNoSourcePos);
|
| + ReturnNode* return_node = new(Z) ReturnNode(Token::kNoSourcePos);
|
| AddNodeForFinallyInlining(return_node);
|
| current_block_->statements->Add(return_node);
|
| AstNode* catch_block = CloseBlock();
|
| @@ -6283,10 +6285,10 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| do {
|
| OpenBlock();
|
| ArgumentListNode* no_args =
|
| - new(Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| + new(Z) ArgumentListNode(Token::kNoSourcePos);
|
| current_block_->statements->Add(
|
| new(Z) InstanceCallNode(try_end_pos,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, controller),
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, controller),
|
| Symbols::Close(),
|
| no_args));
|
|
|
| @@ -6294,7 +6296,7 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| AwaitMarkerNode* await_marker =
|
| new(Z) AwaitMarkerNode(async_temp_scope_,
|
| current_block_->scope,
|
| - Scanner::kNoSourcePos);
|
| + Token::kNoSourcePos);
|
| current_block_->statements->Add(await_marker);
|
| ReturnNode* continuation_ret = new(Z) ReturnNode(try_end_pos);
|
| continuation_ret->set_return_type(ReturnNode::kContinuationTarget);
|
| @@ -6325,7 +6327,7 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| handler_types.Add(Object::dynamic_type());
|
|
|
| CatchClauseNode* catch_clause = new(Z) CatchClauseNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| catch_handler_list,
|
| Array::ZoneHandle(Z, Array::MakeArray(handler_types)),
|
| context_var,
|
| @@ -6339,7 +6341,7 @@ SequenceNode* Parser::CloseAsyncGeneratorTryBlock(SequenceNode *body) {
|
| const intptr_t try_index = try_statement->try_index();
|
|
|
| AstNode* try_catch_node =
|
| - new(Z) TryCatchNode(Scanner::kNoSourcePos,
|
| + new(Z) TryCatchNode(Token::kNoSourcePos,
|
| body,
|
| context_var,
|
| catch_clause,
|
| @@ -6364,10 +6366,10 @@ SequenceNode* Parser::CloseAsyncTryBlock(SequenceNode* try_block) {
|
| OpenBlock(); // Catch block.
|
| CatchParamDesc exception_param;
|
| CatchParamDesc stack_trace_param;
|
| - exception_param.token_pos = Scanner::kNoSourcePos;
|
| + exception_param.token_pos = Token::kNoSourcePos;
|
| exception_param.type = &Object::dynamic_type();
|
| exception_param.name = &Symbols::ExceptionParameter();
|
| - stack_trace_param.token_pos = Scanner::kNoSourcePos;
|
| + stack_trace_param.token_pos = Token::kNoSourcePos;
|
| stack_trace_param.type = &Object::dynamic_type();
|
| stack_trace_param.name = &Symbols::StackTraceParameter();
|
|
|
| @@ -6385,9 +6387,9 @@ SequenceNode* Parser::CloseAsyncTryBlock(SequenceNode* try_block) {
|
| // the exception variable specified in this block.
|
| ASSERT(exception_var != NULL);
|
| current_block_->statements->Add(new(Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| exception_param.var,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, exception_var)));
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, exception_var)));
|
| }
|
|
|
| LocalVariable* stack_trace_var =
|
| @@ -6398,9 +6400,9 @@ SequenceNode* Parser::CloseAsyncTryBlock(SequenceNode* try_block) {
|
| // trace variable specified in this block.
|
| ASSERT(stack_trace_var != NULL);
|
| current_block_->statements->Add(new(Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| stack_trace_param.var,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, stack_trace_var)));
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, stack_trace_var)));
|
| }
|
| LocalVariable* saved_exception_var = try_scope->LocalLookupVariable(
|
| Symbols::SavedExceptionVar());
|
| @@ -6418,17 +6420,17 @@ SequenceNode* Parser::CloseAsyncTryBlock(SequenceNode* try_block) {
|
| Symbols::AsyncCompleter(), false);
|
| ASSERT(async_completer != NULL);
|
| ArgumentListNode* completer_args =
|
| - new (Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| + new (Z) ArgumentListNode(Token::kNoSourcePos);
|
| completer_args->Add(
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos, exception_param.var));
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos, exception_param.var));
|
| completer_args->Add(
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos, stack_trace_param.var));
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos, stack_trace_param.var));
|
| current_block_->statements->Add(new (Z) InstanceCallNode(
|
| TokenPos(),
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_completer),
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos, async_completer),
|
| Symbols::CompleterCompleteError(),
|
| completer_args));
|
| - ReturnNode* return_node = new (Z) ReturnNode(Scanner::kNoSourcePos);
|
| + ReturnNode* return_node = new (Z) ReturnNode(Token::kNoSourcePos);
|
| // Behavior like a continuation return, i.e,. don't call a completer.
|
| return_node->set_return_type(ReturnNode::kContinuation);
|
| current_block_->statements->Add(return_node);
|
| @@ -6445,7 +6447,7 @@ SequenceNode* Parser::CloseAsyncTryBlock(SequenceNode* try_block) {
|
| const intptr_t try_index = try_statement->try_index();
|
|
|
| CatchClauseNode* catch_clause = new (Z) CatchClauseNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| catch_handler_list,
|
| Array::ZoneHandle(Z, Array::MakeArray(handler_types)),
|
| context_var,
|
| @@ -6456,7 +6458,7 @@ SequenceNode* Parser::CloseAsyncTryBlock(SequenceNode* try_block) {
|
| CatchClauseNode::kInvalidTryIndex,
|
| true);
|
| AstNode* try_catch_node = new (Z) TryCatchNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| try_block,
|
| context_var,
|
| catch_clause,
|
| @@ -6594,9 +6596,9 @@ SequenceNode* Parser::CloseSyncGenFunction(const Function& closure,
|
| LocalVariable* jump_var =
|
| current_block_->scope->LookupVariable(Symbols::AwaitJumpVar(), false);
|
| LiteralNode* init_value =
|
| - new(Z) LiteralNode(Scanner::kNoSourcePos, Smi::ZoneHandle(Smi::New(-1)));
|
| + new(Z) LiteralNode(Token::kNoSourcePos, Smi::ZoneHandle(Smi::New(-1)));
|
| current_block_->statements->Add(
|
| - new(Z) StoreLocalNode(Scanner::kNoSourcePos, jump_var, init_value));
|
| + new(Z) StoreLocalNode(Token::kNoSourcePos, jump_var, init_value));
|
|
|
| // return new SyncIterable(body_closure);
|
| const Class& iterable_class =
|
| @@ -6610,17 +6612,17 @@ SequenceNode* Parser::CloseSyncGenFunction(const Function& closure,
|
| const String& closure_name = String::Handle(Z, closure.name());
|
| ASSERT(closure_name.IsSymbol());
|
|
|
| - ArgumentListNode* arguments = new(Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| + ArgumentListNode* arguments = new(Z) ArgumentListNode(Token::kNoSourcePos);
|
| ClosureNode* closure_obj = new(Z) ClosureNode(
|
| - Scanner::kNoSourcePos, closure, NULL, closure_body->scope());
|
| + Token::kNoSourcePos, closure, NULL, closure_body->scope());
|
| arguments->Add(closure_obj);
|
| ConstructorCallNode* new_iterable =
|
| - new(Z) ConstructorCallNode(Scanner::kNoSourcePos,
|
| + new(Z) ConstructorCallNode(Token::kNoSourcePos,
|
| TypeArguments::ZoneHandle(Z),
|
| iterable_constructor,
|
| arguments);
|
| ReturnNode* return_node =
|
| - new (Z) ReturnNode(Scanner::kNoSourcePos, new_iterable);
|
| + new (Z) ReturnNode(Token::kNoSourcePos, new_iterable);
|
| current_block_->statements->Add(return_node);
|
| return CloseBlock();
|
| }
|
| @@ -6722,10 +6724,10 @@ void Parser::AddContinuationVariables() {
|
| // var :await_jump_var;
|
| // var :await_ctx_var;
|
| LocalVariable* await_jump_var = new (Z) LocalVariable(
|
| - Scanner::kNoSourcePos, Symbols::AwaitJumpVar(), Object::dynamic_type());
|
| + Token::kNoSourcePos, Symbols::AwaitJumpVar(), Object::dynamic_type());
|
| current_block_->scope->AddVariable(await_jump_var);
|
| LocalVariable* await_ctx_var = new (Z) LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| Symbols::AwaitContextVar(),
|
| Object::dynamic_type());
|
| current_block_->scope->AddVariable(await_ctx_var);
|
| @@ -6739,20 +6741,20 @@ void Parser::AddAsyncClosureVariables() {
|
| // var :async_catch_error_callback;
|
| // var :async_completer;
|
| LocalVariable* async_op_var = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos, Symbols::AsyncOperation(), Object::dynamic_type());
|
| + Token::kNoSourcePos, Symbols::AsyncOperation(), Object::dynamic_type());
|
| current_block_->scope->AddVariable(async_op_var);
|
| LocalVariable* async_then_callback_var = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| Symbols::AsyncThenCallback(),
|
| Object::dynamic_type());
|
| current_block_->scope->AddVariable(async_then_callback_var);
|
| LocalVariable* async_catch_error_callback_var = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| Symbols::AsyncCatchErrorCallback(),
|
| Object::dynamic_type());
|
| current_block_->scope->AddVariable(async_catch_error_callback_var);
|
| LocalVariable* async_completer = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| Symbols::AsyncCompleter(),
|
| Object::dynamic_type());
|
| current_block_->scope->AddVariable(async_completer);
|
| @@ -6771,18 +6773,18 @@ void Parser::AddAsyncGeneratorVariables() {
|
| // These variables are used to store the async generator closure containing
|
| // the body of the async* function. They are used by the await operator.
|
| LocalVariable* controller_var = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos, Symbols::Controller(), Object::dynamic_type());
|
| + Token::kNoSourcePos, Symbols::Controller(), Object::dynamic_type());
|
| current_block_->scope->AddVariable(controller_var);
|
| LocalVariable* async_op_var = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos, Symbols::AsyncOperation(), Object::dynamic_type());
|
| + Token::kNoSourcePos, Symbols::AsyncOperation(), Object::dynamic_type());
|
| current_block_->scope->AddVariable(async_op_var);
|
| LocalVariable* async_then_callback_var = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| Symbols::AsyncThenCallback(),
|
| Object::dynamic_type());
|
| current_block_->scope->AddVariable(async_then_callback_var);
|
| LocalVariable* async_catch_error_callback_var = new(Z) LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| Symbols::AsyncCatchErrorCallback(),
|
| Object::dynamic_type());
|
| current_block_->scope->AddVariable(async_catch_error_callback_var);
|
| @@ -6909,18 +6911,18 @@ SequenceNode* Parser::CloseAsyncGeneratorFunction(const Function& closure_func,
|
| LocalVariable* jump_var =
|
| current_block_->scope->LookupVariable(Symbols::AwaitJumpVar(), false);
|
| LiteralNode* init_value =
|
| - new(Z) LiteralNode(Scanner::kNoSourcePos, Smi::ZoneHandle(Smi::New(-1)));
|
| + new(Z) LiteralNode(Token::kNoSourcePos, Smi::ZoneHandle(Smi::New(-1)));
|
| current_block_->statements->Add(
|
| - new(Z) StoreLocalNode(Scanner::kNoSourcePos, jump_var, init_value));
|
| + new(Z) StoreLocalNode(Token::kNoSourcePos, jump_var, init_value));
|
|
|
| // Add to AST:
|
| // :async_op = <closure>; (containing the original body)
|
| LocalVariable* async_op_var =
|
| current_block_->scope->LookupVariable(Symbols::AsyncOperation(), false);
|
| ClosureNode* closure_obj = new(Z) ClosureNode(
|
| - Scanner::kNoSourcePos, closure_func, NULL, closure_body->scope());
|
| + Token::kNoSourcePos, closure_func, NULL, closure_body->scope());
|
| StoreLocalNode* store_async_op = new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| async_op_var,
|
| closure_obj);
|
|
|
| @@ -6932,18 +6934,18 @@ SequenceNode* Parser::CloseAsyncGeneratorFunction(const Function& closure_func,
|
| Symbols::AsyncThenWrapperHelper()));
|
| ASSERT(!async_then_wrapper_helper.IsNull());
|
| ArgumentListNode* async_then_wrapper_helper_args = new (Z) ArgumentListNode(
|
| - Scanner::kNoSourcePos);
|
| + Token::kNoSourcePos);
|
| async_then_wrapper_helper_args->Add(
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_op_var));
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos, async_op_var));
|
| StaticCallNode* then_wrapper_call = new (Z) StaticCallNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| async_then_wrapper_helper,
|
| async_then_wrapper_helper_args);
|
| LocalVariable* async_then_callback_var =
|
| current_block_->scope->LookupVariable(
|
| Symbols::AsyncThenCallback(), false);
|
| StoreLocalNode* store_async_then_callback = new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| async_then_callback_var,
|
| then_wrapper_call);
|
|
|
| @@ -6956,43 +6958,43 @@ SequenceNode* Parser::CloseAsyncGeneratorFunction(const Function& closure_func,
|
| Symbols::AsyncErrorWrapperHelper()));
|
| ASSERT(!async_error_wrapper_helper.IsNull());
|
| ArgumentListNode* async_error_wrapper_helper_args = new (Z) ArgumentListNode(
|
| - Scanner::kNoSourcePos);
|
| + Token::kNoSourcePos);
|
| async_error_wrapper_helper_args->Add(
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_op_var));
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos, async_op_var));
|
| StaticCallNode* error_wrapper_call = new (Z) StaticCallNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| async_error_wrapper_helper,
|
| async_error_wrapper_helper_args);
|
| LocalVariable* async_catch_error_callback_var =
|
| current_block_->scope->LookupVariable(
|
| Symbols::AsyncCatchErrorCallback(), false);
|
| StoreLocalNode* store_async_catch_error_callback = new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| async_catch_error_callback_var,
|
| error_wrapper_call);
|
|
|
| current_block_->statements->Add(store_async_catch_error_callback);
|
|
|
| // :controller = new _AsyncStarStreamController(body_closure);
|
| - ArgumentListNode* arguments = new(Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| - arguments->Add(new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_op_var));
|
| + ArgumentListNode* arguments = new(Z) ArgumentListNode(Token::kNoSourcePos);
|
| + arguments->Add(new (Z) LoadLocalNode(Token::kNoSourcePos, async_op_var));
|
| ConstructorCallNode* controller_constructor_call =
|
| - new(Z) ConstructorCallNode(Scanner::kNoSourcePos,
|
| + new(Z) ConstructorCallNode(Token::kNoSourcePos,
|
| TypeArguments::ZoneHandle(Z),
|
| controller_constructor,
|
| arguments);
|
| LocalVariable* controller_var =
|
| current_block_->scope->LookupVariable(Symbols::Controller(), false);
|
| StoreLocalNode* store_controller =
|
| - new(Z) StoreLocalNode(Scanner::kNoSourcePos,
|
| + new(Z) StoreLocalNode(Token::kNoSourcePos,
|
| controller_var,
|
| controller_constructor_call);
|
| current_block_->statements->Add(store_controller);
|
|
|
| // return :controller.stream;
|
| - ReturnNode* return_node = new(Z) ReturnNode(Scanner::kNoSourcePos,
|
| - new(Z) InstanceGetterNode(Scanner::kNoSourcePos,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + ReturnNode* return_node = new(Z) ReturnNode(Token::kNoSourcePos,
|
| + new(Z) InstanceGetterNode(Token::kNoSourcePos,
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos,
|
| controller_var),
|
| Symbols::Stream()));
|
| current_block_->statements->Add(return_node);
|
| @@ -7086,17 +7088,18 @@ SequenceNode* Parser::CloseAsyncFunction(const Function& closure,
|
| LocalVariable* async_completer = current_block_->scope->LookupVariable(
|
| Symbols::AsyncCompleter(), false);
|
|
|
| + const intptr_t token_pos = ST(closure_body->token_pos());
|
| // Add to AST:
|
| // :async_completer = new Completer.sync();
|
| ArgumentListNode* empty_args =
|
| - new (Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| + new (Z) ArgumentListNode(token_pos);
|
| ConstructorCallNode* completer_constructor_node = new (Z) ConstructorCallNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| TypeArguments::ZoneHandle(Z),
|
| completer_constructor,
|
| empty_args);
|
| StoreLocalNode* store_completer = new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| async_completer,
|
| completer_constructor_node);
|
| current_block_->statements->Add(store_completer);
|
| @@ -7105,18 +7108,19 @@ SequenceNode* Parser::CloseAsyncFunction(const Function& closure,
|
| LocalVariable* jump_var =
|
| current_block_->scope->LookupVariable(Symbols::AwaitJumpVar(), false);
|
| LiteralNode* init_value =
|
| - new(Z) LiteralNode(Scanner::kNoSourcePos, Smi::ZoneHandle(Smi::New(-1)));
|
| + new(Z) LiteralNode(token_pos,
|
| + Smi::ZoneHandle(Smi::New(-1)));
|
| current_block_->statements->Add(
|
| - new(Z) StoreLocalNode(Scanner::kNoSourcePos, jump_var, init_value));
|
| + new(Z) StoreLocalNode(token_pos, jump_var, init_value));
|
|
|
| // Add to AST:
|
| // :async_op = <closure>; (containing the original body)
|
| LocalVariable* async_op_var = current_block_->scope->LookupVariable(
|
| Symbols::AsyncOperation(), false);
|
| ClosureNode* cn = new(Z) ClosureNode(
|
| - Scanner::kNoSourcePos, closure, NULL, closure_body->scope());
|
| + token_pos, closure, NULL, closure_body->scope());
|
| StoreLocalNode* store_async_op = new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| async_op_var,
|
| cn);
|
| current_block_->statements->Add(store_async_op);
|
| @@ -7128,18 +7132,18 @@ SequenceNode* Parser::CloseAsyncFunction(const Function& closure,
|
| Symbols::AsyncThenWrapperHelper()));
|
| ASSERT(!async_then_wrapper_helper.IsNull());
|
| ArgumentListNode* async_then_wrapper_helper_args = new (Z) ArgumentListNode(
|
| - Scanner::kNoSourcePos);
|
| + token_pos);
|
| async_then_wrapper_helper_args->Add(
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_op_var));
|
| + new (Z) LoadLocalNode(token_pos, async_op_var));
|
| StaticCallNode* then_wrapper_call = new (Z) StaticCallNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| async_then_wrapper_helper,
|
| async_then_wrapper_helper_args);
|
| LocalVariable* async_then_callback_var =
|
| current_block_->scope->LookupVariable(
|
| Symbols::AsyncThenCallback(), false);
|
| StoreLocalNode* store_async_then_callback = new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| async_then_callback_var,
|
| then_wrapper_call);
|
|
|
| @@ -7152,18 +7156,18 @@ SequenceNode* Parser::CloseAsyncFunction(const Function& closure,
|
| Symbols::AsyncErrorWrapperHelper()));
|
| ASSERT(!async_error_wrapper_helper.IsNull());
|
| ArgumentListNode* async_error_wrapper_helper_args = new (Z) ArgumentListNode(
|
| - Scanner::kNoSourcePos);
|
| + token_pos);
|
| async_error_wrapper_helper_args->Add(
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_op_var));
|
| + new (Z) LoadLocalNode(token_pos, async_op_var));
|
| StaticCallNode* error_wrapper_call = new (Z) StaticCallNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| async_error_wrapper_helper,
|
| async_error_wrapper_helper_args);
|
| LocalVariable* async_catch_error_callback_var =
|
| current_block_->scope->LookupVariable(
|
| Symbols::AsyncCatchErrorCallback(), false);
|
| StoreLocalNode* store_async_catch_error_callback = new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| async_catch_error_callback_var,
|
| error_wrapper_call);
|
|
|
| @@ -7171,22 +7175,22 @@ SequenceNode* Parser::CloseAsyncFunction(const Function& closure,
|
|
|
| // Add to AST:
|
| // new Future.microtask(:async_op);
|
| - ArgumentListNode* arguments = new (Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| + ArgumentListNode* arguments = new (Z) ArgumentListNode(token_pos);
|
| arguments->Add(new (Z) LoadLocalNode(
|
| - Scanner::kNoSourcePos, async_op_var));
|
| + token_pos, async_op_var));
|
| ConstructorCallNode* future_node = new (Z) ConstructorCallNode(
|
| - Scanner::kNoSourcePos, TypeArguments::ZoneHandle(Z), constructor,
|
| + token_pos, TypeArguments::ZoneHandle(Z), constructor,
|
| arguments);
|
| current_block_->statements->Add(future_node);
|
|
|
| // Add to AST:
|
| // return :async_completer.future;
|
| ReturnNode* return_node = new (Z) ReturnNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| new (Z) InstanceGetterNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| new (Z) LoadLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + token_pos,
|
| async_completer),
|
| Symbols::CompleterFuture()));
|
| current_block_->statements->Add(return_node);
|
| @@ -7519,7 +7523,7 @@ AstNode* Parser::ParseFunctionStatement(bool is_literal) {
|
| result_type = Type::DynamicType();
|
|
|
| const intptr_t function_pos = TokenPos();
|
| - intptr_t metadata_pos = Scanner::kNoSourcePos;
|
| + intptr_t metadata_pos = Token::kNoSourcePos;
|
| if (is_literal) {
|
| ASSERT(CurrentToken() == Token::kLPAREN);
|
| function_name = &Symbols::AnonymousClosure();
|
| @@ -8520,11 +8524,11 @@ AstNode* Parser::DartPrint(const char* str) {
|
| const Function& print_fn = Function::ZoneHandle(
|
| Z, lib.LookupFunctionAllowPrivate(Symbols::print()));
|
| ASSERT(!print_fn.IsNull());
|
| - ArgumentListNode* one_arg = new(Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| + ArgumentListNode* one_arg = new(Z) ArgumentListNode(Token::kNoSourcePos);
|
| String& msg = String::ZoneHandle(Symbols::NewFormatted("%s", str));
|
| - one_arg->Add(new(Z) LiteralNode(Scanner::kNoSourcePos, msg));
|
| + one_arg->Add(new(Z) LiteralNode(Token::kNoSourcePos, msg));
|
| AstNode* print_call =
|
| - new(Z) StaticCallNode(Scanner::kNoSourcePos, print_fn, one_arg);
|
| + new(Z) StaticCallNode(Token::kNoSourcePos, print_fn, one_arg);
|
| return print_call;
|
| }
|
|
|
| @@ -8729,9 +8733,9 @@ AstNode* Parser::ParseAwaitForStatement(String* label_name) {
|
|
|
| if (outer_saved_try_ctx != NULL) {
|
| catch_block->Add(new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| outer_saved_try_ctx,
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos,
|
| outer_async_saved_try_ctx)));
|
| }
|
|
|
| @@ -8763,17 +8767,17 @@ AstNode* Parser::ParseAwaitForStatement(String* label_name) {
|
| do {
|
| OpenBlock();
|
| ArgumentListNode* no_args =
|
| - new(Z) ArgumentListNode(Scanner::kNoSourcePos);
|
| + new(Z) ArgumentListNode(Token::kNoSourcePos);
|
| current_block_->statements->Add(
|
| - new(Z) InstanceCallNode(Scanner::kNoSourcePos,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, iterator_var),
|
| + new(Z) InstanceCallNode(Token::kNoSourcePos,
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, iterator_var),
|
| Symbols::Cancel(),
|
| no_args));
|
| finally_clause = CloseBlock();
|
| AstNode* node_to_inline = try_statement->GetNodeToInlineFinally(node_index);
|
| if (node_to_inline != NULL) {
|
| InlinedFinallyNode* node =
|
| - new(Z) InlinedFinallyNode(Scanner::kNoSourcePos,
|
| + new(Z) InlinedFinallyNode(Token::kNoSourcePos,
|
| finally_clause,
|
| context_var,
|
| outer_try_index);
|
| @@ -8829,7 +8833,7 @@ AstNode* Parser::ParseForInStatement(intptr_t forin_pos,
|
| ReportError("Loop variable cannot be 'const'");
|
| }
|
| const String* loop_var_name = NULL;
|
| - intptr_t loop_var_pos = Scanner::kNoSourcePos;
|
| + intptr_t loop_var_pos = Token::kNoSourcePos;
|
| bool new_loop_var = false;
|
| AbstractType& loop_var_type = AbstractType::ZoneHandle(Z);
|
| if (LookaheadToken(1) == Token::kIN) {
|
| @@ -9130,16 +9134,16 @@ void Parser::SaveExceptionAndStacktrace(SequenceNode* statements,
|
| ASSERT(saved_exception_var != NULL);
|
| ASSERT(exception_var != NULL);
|
| statements->Add(new(Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| saved_exception_var,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, exception_var)));
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, exception_var)));
|
|
|
| ASSERT(saved_stack_trace_var != NULL);
|
| ASSERT(stack_trace_var != NULL);
|
| statements->Add(new(Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| saved_stack_trace_var,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, stack_trace_var)));
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, stack_trace_var)));
|
| }
|
|
|
|
|
| @@ -9174,9 +9178,9 @@ SequenceNode* Parser::EnsureFinallyClause(
|
| try_stack_->try_index());
|
| current_block_->statements->Add(
|
| new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| saved_try_ctx,
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos,
|
| async_saved_try_ctx)));
|
| }
|
| }
|
| @@ -9447,9 +9451,9 @@ SequenceNode* Parser::ParseCatchClauses(
|
| try_block->try_index());
|
| async_code->Add(
|
| new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| saved_try_ctx,
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos,
|
| async_saved_try_ctx)));
|
| }
|
| }
|
| @@ -9476,16 +9480,16 @@ void Parser::SetupSavedTryContext(LocalVariable* saved_try_context) {
|
| Symbols::AsyncSavedTryCtxVarPrefix().ToCString(),
|
| last_used_try_index_ - 1));
|
| LocalVariable* async_saved_try_ctx = new (Z) LocalVariable(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| async_saved_try_ctx_name,
|
| Object::dynamic_type());
|
| ASSERT(async_temp_scope_ != NULL);
|
| async_temp_scope_->AddVariable(async_saved_try_ctx);
|
| ASSERT(saved_try_context != NULL);
|
| current_block_->statements->Add(new(Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| async_saved_try_ctx,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, saved_try_context)));
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, saved_try_context)));
|
| }
|
|
|
|
|
| @@ -9814,9 +9818,9 @@ AstNode* Parser::ParseYieldStatement() {
|
| ASSERT(iterator_param != NULL);
|
| // Generate :iterator.current = expr;
|
| AstNode* iterator =
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, iterator_param);
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, iterator_param);
|
| AstNode* store_current =
|
| - new(Z) InstanceSetterNode(Scanner::kNoSourcePos,
|
| + new(Z) InstanceSetterNode(Token::kNoSourcePos,
|
| iterator,
|
| String::ZoneHandle(Symbols::Current().raw()),
|
| expr);
|
| @@ -9824,7 +9828,7 @@ AstNode* Parser::ParseYieldStatement() {
|
| if (is_yield_each) {
|
| // Generate :iterator.isYieldEach = true;
|
| AstNode* set_is_yield_each =
|
| - new(Z) InstanceSetterNode(Scanner::kNoSourcePos,
|
| + new(Z) InstanceSetterNode(Token::kNoSourcePos,
|
| iterator,
|
| String::ZoneHandle(Symbols::IsYieldEach().raw()),
|
| new(Z) LiteralNode(TokenPos(), Bool::True()));
|
| @@ -9833,7 +9837,7 @@ AstNode* Parser::ParseYieldStatement() {
|
| AwaitMarkerNode* await_marker =
|
| new(Z) AwaitMarkerNode(async_temp_scope_,
|
| current_block_->scope,
|
| - Scanner::kNoSourcePos);
|
| + Token::kNoSourcePos);
|
| yield->AddNode(await_marker);
|
| // Return true to indicate that a value has been generated.
|
| ReturnNode* return_true = new(Z) ReturnNode(yield_pos,
|
| @@ -9854,15 +9858,15 @@ AstNode* Parser::ParseYieldStatement() {
|
| &outer_async_saved_try_ctx);
|
| if (saved_try_ctx != NULL) {
|
| yield->AddNode(new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| saved_try_ctx,
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos,
|
| async_saved_try_ctx)));
|
| if (outer_saved_try_ctx != NULL) {
|
| yield->AddNode(new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| outer_saved_try_ctx,
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos,
|
| outer_async_saved_try_ctx)));
|
| }
|
| } else {
|
| @@ -9880,7 +9884,7 @@ AstNode* Parser::ParseYieldStatement() {
|
| add_args->Add(expr);
|
| AstNode* add_call =
|
| new(Z) InstanceCallNode(yield_pos,
|
| - new(Z) LoadLocalNode(Scanner::kNoSourcePos, controller_var),
|
| + new(Z) LoadLocalNode(Token::kNoSourcePos, controller_var),
|
| is_yield_each ? Symbols::AddStream() : Symbols::add(),
|
| add_args);
|
|
|
| @@ -9892,18 +9896,18 @@ AstNode* Parser::ParseYieldStatement() {
|
| // restore saved_try_context
|
|
|
| SequenceNode* true_branch =
|
| - new(Z) SequenceNode(Scanner::kNoSourcePos, NULL);
|
| + new(Z) SequenceNode(Token::kNoSourcePos, NULL);
|
| AstNode* return_from_generator = new(Z) ReturnNode(yield_pos);
|
| true_branch->Add(return_from_generator);
|
| AddNodeForFinallyInlining(return_from_generator);
|
| AstNode* if_is_cancelled =
|
| - new(Z) IfNode(Scanner::kNoSourcePos, add_call, true_branch, NULL);
|
| + new(Z) IfNode(Token::kNoSourcePos, add_call, true_branch, NULL);
|
| yield->AddNode(if_is_cancelled);
|
|
|
| AwaitMarkerNode* await_marker =
|
| new(Z) AwaitMarkerNode(async_temp_scope_,
|
| current_block_->scope,
|
| - Scanner::kNoSourcePos);
|
| + Token::kNoSourcePos);
|
| yield->AddNode(await_marker);
|
| ReturnNode* continuation_return = new(Z) ReturnNode(yield_pos);
|
| continuation_return->set_return_type(ReturnNode::kContinuationTarget);
|
| @@ -9922,15 +9926,15 @@ AstNode* Parser::ParseYieldStatement() {
|
| &outer_async_saved_try_ctx);
|
| if (saved_try_ctx != NULL) {
|
| yield->AddNode(new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| saved_try_ctx,
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos,
|
| async_saved_try_ctx)));
|
| if (outer_saved_try_ctx != NULL) {
|
| yield->AddNode(new (Z) StoreLocalNode(
|
| - Scanner::kNoSourcePos,
|
| + Token::kNoSourcePos,
|
| outer_saved_try_ctx,
|
| - new (Z) LoadLocalNode(Scanner::kNoSourcePos,
|
| + new (Z) LoadLocalNode(Token::kNoSourcePos,
|
| outer_async_saved_try_ctx)));
|
| }
|
| } else {
|
| @@ -9944,7 +9948,7 @@ AstNode* Parser::ParseYieldStatement() {
|
| AstNode* Parser::ParseStatement() {
|
| TRACE_PARSER("ParseStatement");
|
| AstNode* statement = NULL;
|
| - intptr_t label_pos = Scanner::kNoSourcePos;
|
| + intptr_t label_pos = Token::kNoSourcePos;
|
| String* label_name = NULL;
|
| if (IsIdentifier()) {
|
| if (LookaheadToken(1) == Token::kCOLON) {
|
| @@ -10533,7 +10537,7 @@ AstNode* Parser::OptimizeBinaryOpNode(intptr_t op_pos,
|
| // Handle a ?? b.
|
| LetNode* result = new(Z) LetNode(op_pos);
|
| LocalVariable* left_temp = result->AddInitializer(lhs);
|
| - const intptr_t no_pos = Scanner::kNoSourcePos;
|
| + const intptr_t no_pos = Token::kNoSourcePos;
|
| LiteralNode* null_operand =
|
| new(Z) LiteralNode(no_pos, Object::null_instance());
|
| LoadLocalNode* load_left_temp = new(Z) LoadLocalNode(no_pos, left_temp);
|
|
|