| Index: runtime/vm/parser.cc
|
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
|
| index d5f5ca30c09ecea8c50f0b56a13fd3f366162c85..0e28cc09180b361e78704382f18d1ce0a7ddfa75 100644
|
| --- a/runtime/vm/parser.cc
|
| +++ b/runtime/vm/parser.cc
|
| @@ -3988,11 +3988,13 @@ void Parser::ParseFieldDefinition(ClassDesc* members, MemberDesc* field) {
|
| }
|
|
|
| // Create the field object.
|
| + const bool is_reflectable =
|
| + !(library_.is_dart_scheme() && library_.IsPrivate(*field->name));
|
| class_field = Field::New(*field->name,
|
| field->has_static,
|
| field->has_final,
|
| field->has_const,
|
| - false, // Not synthetic.
|
| + is_reflectable,
|
| current_class(),
|
| field->name_pos);
|
| class_field.set_type(*field->type);
|
| @@ -4671,7 +4673,7 @@ void Parser::ParseEnumDefinition(const Class& cls) {
|
| false, // Not static.
|
| true, // Field is final.
|
| false, // Not const.
|
| - false, // Not synthetic.
|
| + true, // Is reflectable.
|
| cls,
|
| cls.token_pos());
|
| index_field.set_type(int_type);
|
| @@ -4743,7 +4745,7 @@ void Parser::ParseEnumDefinition(const Class& cls) {
|
| /* is_static = */ true,
|
| /* is_final = */ true,
|
| /* is_const = */ true,
|
| - /* is_synthetic = */ false,
|
| + /* is_reflectable = */ true,
|
| cls,
|
| cls.token_pos());
|
| enum_value.set_type(dynamic_type);
|
| @@ -4781,7 +4783,7 @@ void Parser::ParseEnumDefinition(const Class& cls) {
|
| /* is_static = */ true,
|
| /* is_final = */ true,
|
| /* is_const = */ true,
|
| - /* is_synthetic = */ false,
|
| + /* is_reflectable = */ true,
|
| cls,
|
| cls.token_pos());
|
| values_field.set_type(Type::Handle(Z, Type::ArrayType()));
|
| @@ -5365,7 +5367,6 @@ void Parser::ParseTopLevelVariable(TopLevel* top_level,
|
| // Const fields are implicitly final.
|
| const bool is_final = is_const || (CurrentToken() == Token::kFINAL);
|
| const bool is_static = true;
|
| - const bool is_synthetic = false;
|
| const AbstractType& type = AbstractType::ZoneHandle(Z,
|
| ParseConstFinalVarOrType(ClassFinalizer::kResolveTypeParameters));
|
| Field& field = Field::Handle(Z);
|
| @@ -5393,7 +5394,9 @@ void Parser::ParseTopLevelVariable(TopLevel* top_level,
|
| var_name.ToCString());
|
| }
|
|
|
| - field = Field::New(var_name, is_static, is_final, is_const, is_synthetic,
|
| + const bool is_reflectable =
|
| + !(library_.is_dart_scheme() && library_.IsPrivate(var_name));
|
| + field = Field::New(var_name, is_static, is_final, is_const, is_reflectable,
|
| current_class(), name_pos);
|
| field.set_type(type);
|
| field.set_value(Instance::Handle(Z, Instance::null()));
|
|
|