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

Unified Diff: runtime/vm/object.h

Issue 2818273002: Remove parent_level field of function type parameters. (Closed)
Patch Set: address comments Created 3 years, 8 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
« no previous file with comments | « runtime/vm/kernel_to_il.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object.h
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 2cfe03a353338712fb7f0a3521bd107fec88089d..15855144967c669180bf5762432dbf08f43398bf 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -364,6 +364,10 @@ class Object {
ASSERT(null_type_arguments_ != NULL);
return *null_type_arguments_;
}
+ static const TypeArguments& empty_type_arguments() {
+ ASSERT(empty_type_arguments_ != NULL);
+ return *empty_type_arguments_;
+ }
static const Array& empty_array() {
ASSERT(empty_array_ != NULL);
@@ -788,6 +792,7 @@ class Object {
static String* null_string_;
static Instance* null_instance_;
static TypeArguments* null_type_arguments_;
+ static TypeArguments* empty_type_arguments_;
static Array* empty_array_;
static Array* zero_array_;
static Context* empty_context_;
@@ -1559,8 +1564,6 @@ enum Genericity {
kAny, // Consider type params of current class and functions.
kCurrentClass, // Consider type params of current class only.
kFunctions, // Consider type params of current and parent functions.
- kCurrentFunction, // Consider type params of current function only.
- kParentFunctions // Consider type params of parent functions only.
};
@@ -1772,6 +1775,7 @@ class TypeArguments : public Object {
friend class AbstractType;
friend class Class;
friend class ClearTypeHashVisitor;
+ friend class Object;
};
@@ -2278,6 +2282,9 @@ class Function : public Object {
return NumTypeParameters(Thread::Current());
}
+ // Return the number of type parameters declared in parent generic functions.
+ intptr_t NumParentTypeParameters() const;
+
// Return a TypeParameter if the type_name is a type parameter of this
// function or of one of its parent functions.
// Unless NULL, adjust function_level accordingly (in and out parameter).
@@ -6138,7 +6145,6 @@ class TypeParameter : public AbstractType {
RawString* name() const { return raw_ptr()->name_; }
intptr_t index() const { return raw_ptr()->index_; }
void set_index(intptr_t value) const;
- intptr_t parent_level() const { return raw_ptr()->parent_level_; }
RawAbstractType* bound() const { return raw_ptr()->bound_; }
void set_bound(const AbstractType& value) const;
// Returns true if bounded_type is below upper_bound, otherwise return false
@@ -6184,7 +6190,6 @@ class TypeParameter : public AbstractType {
static RawTypeParameter* New(const Class& parameterized_class,
const Function& parameterized_function,
intptr_t index,
- intptr_t parent_level,
const String& name,
const AbstractType& bound,
TokenPosition token_pos);
@@ -6197,7 +6202,6 @@ class TypeParameter : public AbstractType {
void set_parameterized_function(const Function& value) const;
void set_name(const String& value) const;
void set_token_pos(TokenPosition token_pos) const;
- void set_parent_level(intptr_t value) const;
void set_type_state(int8_t state) const;
static RawTypeParameter* New();
@@ -8355,9 +8359,18 @@ class LinkedHashMap : public Instance {
class Closure : public Instance {
public:
- RawTypeArguments* instantiator() const { return raw_ptr()->instantiator_; }
- static intptr_t instantiator_offset() {
- return OFFSET_OF(RawClosure, instantiator_);
+ RawTypeArguments* instantiator_type_arguments() const {
+ return raw_ptr()->instantiator_type_arguments_;
+ }
+ static intptr_t instantiator_type_arguments_offset() {
+ return OFFSET_OF(RawClosure, instantiator_type_arguments_);
+ }
+
+ RawTypeArguments* function_type_arguments() const {
+ return raw_ptr()->function_type_arguments_;
+ }
+ static intptr_t function_type_arguments_offset() {
+ return OFFSET_OF(RawClosure, function_type_arguments_);
}
RawFunction* function() const { return raw_ptr()->function_; }
@@ -8377,7 +8390,8 @@ class Closure : public Instance {
return true;
}
- static RawClosure* New(const TypeArguments& instantiator,
+ static RawClosure* New(const TypeArguments& instantiator_type_arguments,
+ const TypeArguments& function_type_arguments,
const Function& function,
const Context& context,
Heap::Space space = Heap::kNew);
« no previous file with comments | « runtime/vm/kernel_to_il.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698