| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/dart_api_impl.h" | 5 #include "vm/dart_api_impl.h" |
| 6 #include "vm/dart_api_state.h" | 6 #include "vm/dart_api_state.h" |
| 7 #include "vm/object.h" | 7 #include "vm/object.h" |
| 8 #include "vm/unit_test.h" | 8 #include "vm/unit_test.h" |
| 9 | 9 |
| 10 namespace dart { | 10 namespace dart { |
| 11 | 11 |
| 12 RawField* LookupField(Dart_Handle library, const char* class_name, | 12 RawField* LookupField(Dart_Handle library, const char* class_name, |
| 13 const char* field_name) { | 13 const char* field_name) { |
| 14 RawLibrary* raw_library = Library::RawCast(Api::UnwrapHandle(library)); | 14 RawLibrary* raw_library = Library::RawCast(Api::UnwrapHandle(library)); |
| 15 Library& lib = Library::ZoneHandle(raw_library); | 15 Library& lib = Library::ZoneHandle(raw_library); |
| 16 const String& classname = String::Handle(Symbols::New(class_name)); | 16 const String& classname = String::Handle(Symbols::New(class_name)); |
| 17 Class& cls = Class::Handle(lib.LookupClass(classname)); | 17 Class& cls = Class::Handle(lib.LookupClass(classname)); |
| 18 EXPECT(!cls.IsNull()); // No ambiguity error expected. | 18 EXPECT(!cls.IsNull()); // No ambiguity error expected. |
| 19 | 19 |
| 20 String& fieldname = String::Handle(String::New(field_name)); | 20 String& fieldname = String::Handle(String::New(field_name)); |
| 21 Field& field = Field::ZoneHandle(cls.LookupInstanceField(fieldname)); | 21 Field& field = |
| 22 Field::ZoneHandle(cls.LookupInstanceFieldAllowPrivate(fieldname)); |
| 22 EXPECT(!field.IsNull()); | 23 EXPECT(!field.IsNull()); |
| 23 return field.raw(); | 24 return field.raw(); |
| 24 } | 25 } |
| 25 | 26 |
| 26 | 27 |
| 27 TEST_CASE(GuardFieldSimpleTest) { | 28 TEST_CASE(GuardFieldSimpleTest) { |
| 28 const char* script_chars = | 29 const char* script_chars = |
| 29 "class A {\n" | 30 "class A {\n" |
| 30 " var f1 = 3.0;\n" | 31 " var f1 = 3.0;\n" |
| 31 " var f2 = 3;\n" | 32 " var f2 = 3;\n" |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL); | 273 Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL); |
| 273 EXPECT_VALID(result); | 274 EXPECT_VALID(result); |
| 274 Field& f3 = Field::ZoneHandle(LookupField(lib, "A", "f3")); | 275 Field& f3 = Field::ZoneHandle(LookupField(lib, "A", "f3")); |
| 275 const intptr_t no_length = Field::kNoFixedLength; | 276 const intptr_t no_length = Field::kNoFixedLength; |
| 276 EXPECT_EQ(no_length, f3.guarded_list_length()); | 277 EXPECT_EQ(no_length, f3.guarded_list_length()); |
| 277 EXPECT_EQ(kTypedDataFloat32ArrayCid, f3.guarded_cid()); | 278 EXPECT_EQ(kTypedDataFloat32ArrayCid, f3.guarded_cid()); |
| 278 EXPECT_EQ(false, f3.is_nullable()); | 279 EXPECT_EQ(false, f3.is_nullable()); |
| 279 } | 280 } |
| 280 | 281 |
| 281 } // namespace dart | 282 } // namespace dart |
| OLD | NEW |