| Index: runtime/vm/parser.cc
|
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
|
| index bba923f953b752711f0061c3f22e3877d1cc09c6..b4e3ac90af693b1137aa2faa1fd1b18be23d2a80 100644
|
| --- a/runtime/vm/parser.cc
|
| +++ b/runtime/vm/parser.cc
|
| @@ -162,7 +162,7 @@ void ParsedFunction::AddToGuardedFields(const Field* field) const {
|
| return;
|
| }
|
| }
|
| - guarded_fields_->Add(field);
|
| + guarded_fields_->Add(&Field::ZoneHandle(Z, field->Original()));
|
| }
|
|
|
|
|
| @@ -1077,8 +1077,8 @@ RawObject* Parser::ParseMetadata(const Field& meta_data) {
|
| Thread* thread = Thread::Current();
|
| StackZone stack_zone(thread);
|
| Zone* zone = stack_zone.GetZone();
|
| - const Class& owner_class = Class::Handle(zone, meta_data.owner());
|
| - const Script& script = Script::Handle(zone, meta_data.script());
|
| + const Class& owner_class = Class::Handle(zone, meta_data.Owner());
|
| + const Script& script = Script::Handle(zone, meta_data.Script());
|
| const TokenPosition token_pos = meta_data.token_pos();
|
| // Parsing metadata can involve following paths in the parser that are
|
| // normally used for expressions and assume current_function is non-null,
|
| @@ -1218,10 +1218,10 @@ ParsedFunction* Parser::ParseStaticFieldInitializer(const Field& field) {
|
| String& init_name = String::Handle(zone,
|
| Symbols::FromConcat(Symbols::InitPrefix(), field_name));
|
|
|
| - const Script& script = Script::Handle(zone, field.script());
|
| - Object& initializer_owner = Object::Handle(field.owner());
|
| + const Script& script = Script::Handle(zone, field.Script());
|
| + Object& initializer_owner = Object::Handle(field.Owner());
|
| initializer_owner =
|
| - PatchClass::New(Class::Handle(field.owner()), script);
|
| + PatchClass::New(Class::Handle(field.Owner()), script);
|
|
|
| const Function& initializer = Function::ZoneHandle(zone,
|
| Function::New(init_name,
|
| @@ -2548,7 +2548,8 @@ void Parser::CheckFieldsInitialized(const Class& cls) {
|
| if (initializers->NodeAt(i)->IsStoreInstanceFieldNode()) {
|
| StoreInstanceFieldNode* initializer =
|
| initializers->NodeAt(i)->AsStoreInstanceFieldNode();
|
| - if (initializer->field().raw() == field.raw()) {
|
| + ASSERT(field.IsOriginal());
|
| + if (initializer->field().Original() == field.raw()) {
|
| found = true;
|
| break;
|
| }
|
| @@ -2566,13 +2567,13 @@ AstNode* Parser::ParseExternalInitializedField(const Field& field) {
|
| // Only use this function if the initialized field originates
|
| // from a different class. We need to save and restore current
|
| // class, library, and token stream (script).
|
| - ASSERT(current_class().raw() != field.origin());
|
| + ASSERT(current_class().raw() != field.Origin());
|
| const Class& saved_class = Class::Handle(Z, current_class().raw());
|
| const Library& saved_library = Library::Handle(Z, library().raw());
|
| const Script& saved_script = Script::Handle(Z, script().raw());
|
| const TokenPosition saved_token_pos = TokenPos();
|
|
|
| - set_current_class(Class::Handle(Z, field.origin()));
|
| + set_current_class(Class::Handle(Z, field.Origin()));
|
| set_library(Library::Handle(Z, current_class().library()));
|
| SetScript(Script::Handle(Z, current_class().script()), field.token_pos());
|
|
|
| @@ -2620,7 +2621,7 @@ void Parser::ParseInitializedInstanceFields(const Class& cls,
|
| initialized_fields->Add(&field);
|
| }
|
| AstNode* init_expr = NULL;
|
| - if (current_class().raw() != field.origin()) {
|
| + if (current_class().raw() != field.Origin()) {
|
| init_expr = ParseExternalInitializedField(field);
|
| } else {
|
| SetPosition(field.token_pos());
|
| @@ -10682,7 +10683,7 @@ AstNode* Parser::CreateAssignmentNode(AstNode* original,
|
| } else if (original->IsLoadStaticFieldNode()) {
|
| name = original->AsLoadStaticFieldNode()->field().name();
|
| target_cls = &Class::Handle(Z,
|
| - original->AsLoadStaticFieldNode()->field().owner());
|
| + original->AsLoadStaticFieldNode()->field().Owner());
|
| } else if ((left_ident != NULL) &&
|
| (original->IsLiteralNode() ||
|
| original->IsLoadLocalNode())) {
|
| @@ -11180,7 +11181,7 @@ AstNode* Parser::GenerateStaticFieldLookup(const Field& field,
|
| }
|
| // The field is initialized.
|
| ASSERT(field.is_static());
|
| - const Class& field_owner = Class::ZoneHandle(Z, field.owner());
|
| + const Class& field_owner = Class::ZoneHandle(Z, field.Owner());
|
| const String& field_name = String::ZoneHandle(Z, field.name());
|
| const String& getter_name =
|
| String::Handle(Z, Field::GetterSymbol(field_name));
|
| @@ -12023,7 +12024,7 @@ RawInstance* Parser::TryCanonicalize(const Instance& instance,
|
| StaticGetterNode* Parser::RunStaticFieldInitializer(
|
| const Field& field, TokenPosition field_ref_pos) {
|
| ASSERT(field.is_static());
|
| - const Class& field_owner = Class::ZoneHandle(Z, field.owner());
|
| + const Class& field_owner = Class::ZoneHandle(Z, field.Owner());
|
| const String& field_name = String::ZoneHandle(Z, field.name());
|
| const String& getter_name =
|
| String::Handle(Z, Field::GetterSymbol(field_name));
|
|
|