Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(578)

Unified Diff: runtime/vm/object.cc

Issue 10942025: Convert String and List to abstract classes. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated to tip-of-tree. Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 66bab65176b42fa621294984494670b9fb1d01e9..c0933e1a345e996f848bf397702db689c1f9e118 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -848,15 +848,19 @@ RawError* Object::Init(Isolate* isolate) {
type = Type::NewNonParameterizedType(cls);
object_store->set_double_type(type);
- cls = CreateAndRegisterInterface("String", script, core_lib);
+ name = Symbols::New("String");
+ cls = Class::New<Instance>(name, script, Scanner::kDummyTokenIndex);
+ RegisterClass(cls, name, core_lib);
pending_classes.Add(cls, Heap::kOld);
type = Type::NewNonParameterizedType(cls);
- object_store->set_string_interface(type);
+ object_store->set_string_type(type);
- cls = CreateAndRegisterInterface("List", script, core_lib);
+ name = Symbols::New("List");
+ cls = Class::New<Instance>(name, script, Scanner::kDummyTokenIndex);
+ RegisterClass(cls, name, core_lib);
pending_classes.Add(cls, Heap::kOld);
type = Type::NewNonParameterizedType(cls);
- object_store->set_list_interface(type);
+ object_store->set_list_type(type);
cls = CreateAndRegisterInterface("ByteArray", script, core_lib);
pending_classes.Add(cls, Heap::kOld);
@@ -8349,9 +8353,9 @@ bool AbstractType::IsNumberType() const {
}
-bool AbstractType::IsStringInterface() const {
+bool AbstractType::IsStringType() const {
return HasResolvedTypeClass() &&
- (type_class() == Type::Handle(Type::StringInterface()).type_class());
+ (type_class() == Type::Handle(Type::StringType()).type_class());
}
@@ -8361,9 +8365,9 @@ bool AbstractType::IsFunctionType() const {
}
-bool AbstractType::IsListInterface() const {
+bool AbstractType::IsListType() const {
return HasResolvedTypeClass() &&
- (type_class() == Type::Handle(Type::ListInterface()).type_class());
+ (type_class() == Type::Handle(Type::ListType()).type_class());
}
@@ -8488,8 +8492,8 @@ RawType* Type::Number() {
}
-RawType* Type::StringInterface() {
- return Isolate::Current()->object_store()->string_interface();
+RawType* Type::StringType() {
+ return Isolate::Current()->object_store()->string_type();
}
@@ -8498,8 +8502,8 @@ RawType* Type::Function() {
}
-RawType* Type::ListInterface() {
- return Isolate::Current()->object_store()->list_interface();
+RawType* Type::ListType() {
+ return Isolate::Current()->object_store()->list_type();
}

Powered by Google App Engine
This is Rietveld 408576698