Index: runtime/vm/raw_object.h |
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h |
index 74792a043909e258b7be46682ffdaeae1e5fe258..ec56555d8676f647bcf6d6c4d7e0238d4470014c 100644 |
--- a/runtime/vm/raw_object.h |
+++ b/runtime/vm/raw_object.h |
@@ -19,7 +19,6 @@ namespace dart { |
#define CLASS_LIST_NO_OBJECT_NOR_STRING_NOR_ARRAY(V) \ |
V(Class) \ |
V(UnresolvedClass) \ |
- V(TypeArguments) \ |
V(PatchClass) \ |
V(Function) \ |
V(ClosureData) \ |
@@ -53,6 +52,7 @@ namespace dart { |
V(UnwindError) \ |
V(Instance) \ |
V(LibraryPrefix) \ |
+ V(TypeArguments) \ |
V(AbstractType) \ |
V(Type) \ |
V(TypeRef) \ |
@@ -782,37 +782,6 @@ class RawUnresolvedClass : public RawObject { |
TokenPosition token_pos_; |
}; |
-class RawTypeArguments : public RawObject { |
- private: |
- RAW_HEAP_OBJECT_IMPLEMENTATION(TypeArguments); |
- |
- RawObject** from() { |
- return reinterpret_cast<RawObject**>(&ptr()->instantiations_); |
- } |
- // The instantiations_ array remains empty for instantiated type arguments. |
- RawArray* instantiations_; // Array of paired canonical vectors: |
- // Even index: instantiator. |
- // Odd index: instantiated (without bound error). |
- // Instantiations leading to bound errors do not get cached. |
- RawSmi* length_; |
- |
- RawSmi* hash_; |
- |
- // Variable length data follows here. |
- RawAbstractType* const* types() const { |
- OPEN_ARRAY_START(RawAbstractType*, RawAbstractType*); |
- } |
- RawAbstractType** types() { |
- OPEN_ARRAY_START(RawAbstractType*, RawAbstractType*); |
- } |
- RawObject** to(intptr_t length) { |
- return reinterpret_cast<RawObject**>(&ptr()->types()[length - 1]); |
- } |
- |
- friend class Object; |
- friend class SnapshotReader; |
-}; |
- |
class RawPatchClass : public RawObject { |
private: |
RAW_HEAP_OBJECT_IMPLEMENTATION(PatchClass); |
@@ -1692,6 +1661,37 @@ class RawLibraryPrefix : public RawInstance { |
bool is_loaded_; |
}; |
+class RawTypeArguments : public RawInstance { |
+ private: |
+ RAW_HEAP_OBJECT_IMPLEMENTATION(TypeArguments); |
+ |
+ RawObject** from() { |
+ return reinterpret_cast<RawObject**>(&ptr()->instantiations_); |
+ } |
+ // The instantiations_ array remains empty for instantiated type arguments. |
+ RawArray* instantiations_; // Array of paired canonical vectors: |
+ // Even index: instantiator. |
+ // Odd index: instantiated (without bound error). |
+ // Instantiations leading to bound errors do not get cached. |
+ RawSmi* length_; |
+ |
+ RawSmi* hash_; |
+ |
+ // Variable length data follows here. |
+ RawAbstractType* const* types() const { |
+ OPEN_ARRAY_START(RawAbstractType*, RawAbstractType*); |
+ } |
+ RawAbstractType** types() { |
+ OPEN_ARRAY_START(RawAbstractType*, RawAbstractType*); |
+ } |
+ RawObject** to(intptr_t length) { |
+ return reinterpret_cast<RawObject**>(&ptr()->types()[length - 1]); |
+ } |
+ |
+ friend class Object; |
+ friend class SnapshotReader; |
+}; |
+ |
class RawAbstractType : public RawInstance { |
protected: |
enum TypeState { |