| Index: runtime/vm/kernel.h
|
| diff --git a/runtime/vm/kernel.h b/runtime/vm/kernel.h
|
| index 1ebd8f0ad5cc1e08e9cce072a5bf167d785d9444..a7950be8d390a88bcda65c60bff3d8b0a9f762f0 100644
|
| --- a/runtime/vm/kernel.h
|
| +++ b/runtime/vm/kernel.h
|
| @@ -243,66 +243,6 @@ class TypeParameterList : public List<TypeParameter> {
|
| };
|
|
|
|
|
| -template <typename A, typename B>
|
| -class Tuple {
|
| - public:
|
| - static Tuple<A, B>* ReadFrom(Reader* reader);
|
| -
|
| - Tuple(A* a, B* b) : first_(a), second_(b) {}
|
| -
|
| - A* first() { return first_; }
|
| - B* second() { return second_; }
|
| -
|
| - private:
|
| - Tuple() {}
|
| -
|
| - Ref<A> first_;
|
| - Child<B> second_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(Tuple);
|
| -};
|
| -
|
| -
|
| -class String {
|
| - public:
|
| - // Read a string reference, which is an index into the string table.
|
| - static String* ReadFrom(Reader* reader);
|
| -
|
| - // Read a string implementation given its size.
|
| - static String* ReadRaw(Reader* reader, intptr_t size);
|
| -
|
| - String(intptr_t offset, int size) : offset_(offset), size_(size) {}
|
| -
|
| - intptr_t offset() { return offset_; }
|
| - int size() { return size_; }
|
| -
|
| - bool is_empty() { return size_ == 0; }
|
| -
|
| - private:
|
| - intptr_t offset_;
|
| - int size_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(String);
|
| -};
|
| -
|
| -
|
| -class StringTable {
|
| - public:
|
| - void ReadFrom(Reader* reader);
|
| -
|
| - List<String>& strings() { return strings_; }
|
| -
|
| - private:
|
| - StringTable() {}
|
| -
|
| - friend class Program;
|
| -
|
| - List<String> strings_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(StringTable);
|
| -};
|
| -
|
| -
|
| class Source {
|
| public:
|
| ~Source();
|
| @@ -390,12 +330,12 @@ class CanonicalName {
|
| public:
|
| ~CanonicalName();
|
|
|
| - String* name() { return name_; }
|
| + intptr_t name() { return name_index_; }
|
| CanonicalName* parent() { return parent_; }
|
| bool is_referenced() { return is_referenced_; }
|
| void set_referenced(bool referenced) { is_referenced_ = referenced; }
|
|
|
| - CanonicalName* AddChild(String* string);
|
| + CanonicalName* AddChild(intptr_t string_index);
|
|
|
| static CanonicalName* NewRoot();
|
|
|
| @@ -403,7 +343,7 @@ class CanonicalName {
|
| CanonicalName();
|
|
|
| CanonicalName* parent_;
|
| - String* name_;
|
| + intptr_t name_index_;
|
| MallocGrowableArray<CanonicalName*> children_;
|
| bool is_referenced_;
|
|
|
| @@ -488,9 +428,9 @@ class Library : public LinkedNode {
|
| virtual void AcceptTreeVisitor(TreeVisitor* visitor);
|
| virtual void VisitChildren(Visitor* visitor);
|
|
|
| - String* import_uri() { return import_uri_; }
|
| + intptr_t import_uri() { return import_uri_index_; }
|
| intptr_t source_uri_index() { return source_uri_index_; }
|
| - String* name() { return name_; }
|
| + intptr_t name() { return name_index_; }
|
| List<Typedef>& typedefs() { return typedefs_; }
|
| List<Class>& classes() { return classes_; }
|
| List<Field>& fields() { return fields_; }
|
| @@ -500,13 +440,13 @@ class Library : public LinkedNode {
|
| intptr_t kernel_data_size() { return kernel_data_size_; }
|
|
|
| private:
|
| - Library() : name_(NULL), kernel_data_(NULL), kernel_data_size_(-1) {}
|
| + Library() : name_index_(-1), kernel_data_(NULL), kernel_data_size_(-1) {}
|
|
|
| template <typename T>
|
| friend class List;
|
|
|
| - Ref<String> name_;
|
| - Ref<String> import_uri_;
|
| + intptr_t name_index_;
|
| + intptr_t import_uri_index_;
|
| intptr_t source_uri_index_;
|
| List<Typedef> typedefs_;
|
| List<Class> classes_;
|
| @@ -531,7 +471,7 @@ class Typedef : public LinkedNode {
|
| virtual void VisitChildren(Visitor* visitor);
|
|
|
| Library* parent() { return parent_; }
|
| - String* name() { return name_; }
|
| + intptr_t name() { return name_index_; }
|
| intptr_t source_uri_index() { return source_uri_index_; }
|
| TokenPosition position() { return position_; }
|
| TypeParameterList& type_parameters() { return type_parameters_; }
|
| @@ -545,7 +485,7 @@ class Typedef : public LinkedNode {
|
| friend class List;
|
|
|
| Ref<Library> parent_;
|
| - Ref<String> name_;
|
| + intptr_t name_index_;
|
| intptr_t source_uri_index_;
|
| TokenPosition position_;
|
| TypeParameterList type_parameters_;
|
| @@ -565,7 +505,7 @@ class Class : public LinkedNode {
|
| virtual void AcceptClassVisitor(ClassVisitor* visitor) = 0;
|
|
|
| Library* parent() { return parent_; }
|
| - String* name() { return name_; }
|
| + intptr_t name() { return name_index_; }
|
| intptr_t source_uri_index() { return source_uri_index_; }
|
| bool is_abstract() { return is_abstract_; }
|
| List<Expression>& annotations() { return annotations_; }
|
| @@ -585,7 +525,7 @@ class Class : public LinkedNode {
|
| friend class List;
|
|
|
| Ref<Library> parent_;
|
| - Ref<String> name_;
|
| + intptr_t name_index_;
|
| intptr_t source_uri_index_;
|
| bool is_abstract_;
|
| List<Expression> annotations_;
|
| @@ -1291,8 +1231,8 @@ class NamedExpression : public TreeNode {
|
| public:
|
| static NamedExpression* ReadFrom(Reader* reader);
|
|
|
| - NamedExpression(String* name, Expression* expr)
|
| - : name_(name), expression_(expr) {}
|
| + NamedExpression(intptr_t name_index, Expression* expr)
|
| + : name_index_(name_index), expression_(expr) {}
|
| virtual ~NamedExpression();
|
|
|
| DEFINE_CASTING_OPERATIONS(NamedExpression);
|
| @@ -1300,13 +1240,13 @@ class NamedExpression : public TreeNode {
|
| virtual void AcceptTreeVisitor(TreeVisitor* visitor);
|
| virtual void VisitChildren(Visitor* visitor);
|
|
|
| - String* name() { return name_; }
|
| + intptr_t name() { return name_index_; }
|
| Expression* expression() { return expression_; }
|
|
|
| private:
|
| NamedExpression() {}
|
|
|
| - Ref<String> name_;
|
| + intptr_t name_index_;
|
| Child<Expression> expression_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(NamedExpression);
|
| @@ -1579,17 +1519,17 @@ class StringLiteral : public BasicLiteral {
|
|
|
| virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor);
|
|
|
| - explicit StringLiteral(String* string) : value_(string) {}
|
| + explicit StringLiteral(intptr_t string_index) : value_index_(string_index) {}
|
| virtual ~StringLiteral();
|
|
|
| DEFINE_CASTING_OPERATIONS(StringLiteral);
|
|
|
| - String* value() { return value_; }
|
| + intptr_t value() { return value_index_; }
|
|
|
| protected:
|
| StringLiteral() {}
|
|
|
| - Ref<String> value_;
|
| + intptr_t value_index_;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(StringLiteral);
|
| @@ -1602,7 +1542,7 @@ class BigintLiteral : public StringLiteral {
|
|
|
| virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor);
|
|
|
| - explicit BigintLiteral(String* string) : StringLiteral(string) {}
|
| + explicit BigintLiteral(intptr_t string_index) : StringLiteral(string_index) {}
|
| virtual ~BigintLiteral();
|
|
|
| DEFINE_CASTING_OPERATIONS(BigintLiteral);
|
| @@ -1646,12 +1586,12 @@ class DoubleLiteral : public BasicLiteral {
|
|
|
| virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor);
|
|
|
| - String* value() { return value_; }
|
| + intptr_t value() { return value_index_; }
|
|
|
| private:
|
| DoubleLiteral() {}
|
|
|
| - Ref<String> value_;
|
| + intptr_t value_index_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(DoubleLiteral);
|
| };
|
| @@ -1706,12 +1646,12 @@ class SymbolLiteral : public Expression {
|
| virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor);
|
| virtual void VisitChildren(Visitor* visitor);
|
|
|
| - String* value() { return value_; }
|
| + intptr_t value() { return value_index_; }
|
|
|
| private:
|
| SymbolLiteral() {}
|
|
|
| - Ref<String> value_;
|
| + intptr_t value_index_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SymbolLiteral);
|
| };
|
| @@ -2619,7 +2559,7 @@ class VariableDeclaration : public Statement {
|
| bool IsConst() { return (flags_ & kFlagConst) == kFlagConst; }
|
| bool IsFinal() { return (flags_ & kFlagFinal) == kFlagFinal; }
|
|
|
| - String* name() { return name_; }
|
| + intptr_t name() { return name_index_; }
|
| DartType* type() { return type_; }
|
| Expression* initializer() { return initializer_; }
|
| TokenPosition equals_position() { return equals_position_; }
|
| @@ -2635,7 +2575,7 @@ class VariableDeclaration : public Statement {
|
| friend class List;
|
|
|
| word flags_;
|
| - Ref<String> name_;
|
| + intptr_t name_index_;
|
| Child<DartType> type_;
|
| Child<Expression> initializer_;
|
| TokenPosition equals_position_;
|
| @@ -2680,14 +2620,15 @@ class Name : public Node {
|
| virtual void AcceptVisitor(Visitor* visitor);
|
| virtual void VisitChildren(Visitor* visitor);
|
|
|
| - String* string() { return string_; }
|
| + intptr_t string_index() { return string_index_; }
|
| CanonicalName* library() { return library_reference_; }
|
|
|
| private:
|
| - Name(String* string, CanonicalName* library_reference)
|
| - : string_(string), library_reference_(library_reference) {} // NOLINT
|
| + Name(intptr_t string_index, CanonicalName* library_reference)
|
| + : string_index_(string_index),
|
| + library_reference_(library_reference) {} // NOLINT
|
|
|
| - Ref<String> string_;
|
| + intptr_t string_index_;
|
| Ref<CanonicalName> library_reference_; // Library.
|
|
|
| DISALLOW_COPY_AND_ASSIGN(Name);
|
| @@ -2820,6 +2761,26 @@ class TypedefType : public DartType {
|
| };
|
|
|
|
|
| +class NamedParameter {
|
| + public:
|
| + static NamedParameter* ReadFrom(Reader* reader);
|
| +
|
| + NamedParameter(intptr_t name_index, DartType* type)
|
| + : name_index_(name_index), type_(type) {}
|
| +
|
| + intptr_t name() { return name_index_; }
|
| + DartType* type() { return type_; }
|
| +
|
| + private:
|
| + NamedParameter() : name_index_(-1) {}
|
| +
|
| + intptr_t name_index_;
|
| + Child<DartType> type_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(NamedParameter);
|
| +};
|
| +
|
| +
|
| class FunctionType : public DartType {
|
| public:
|
| static FunctionType* ReadFrom(Reader* reader);
|
| @@ -2835,9 +2796,7 @@ class FunctionType : public DartType {
|
| TypeParameterList& type_parameters() { return type_parameters_; }
|
| int required_parameter_count() { return required_parameter_count_; }
|
| List<DartType>& positional_parameters() { return positional_parameters_; }
|
| - List<Tuple<String, DartType> >& named_parameters() {
|
| - return named_parameters_;
|
| - }
|
| + List<NamedParameter>& named_parameters() { return named_parameters_; }
|
| DartType* return_type() { return return_type_; }
|
|
|
| private:
|
| @@ -2846,7 +2805,7 @@ class FunctionType : public DartType {
|
| TypeParameterList type_parameters_;
|
| int required_parameter_count_;
|
| List<DartType> positional_parameters_;
|
| - List<Tuple<String, DartType> > named_parameters_;
|
| + List<NamedParameter> named_parameters_;
|
| Child<DartType> return_type_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(FunctionType);
|
| @@ -2904,7 +2863,7 @@ class TypeParameter : public TreeNode {
|
| virtual void AcceptTreeVisitor(TreeVisitor* visitor);
|
| virtual void VisitChildren(Visitor* visitor);
|
|
|
| - String* name() { return name_; }
|
| + intptr_t name() { return name_index_; }
|
| DartType* bound() { return bound_; }
|
|
|
| private:
|
| @@ -2914,7 +2873,7 @@ class TypeParameter : public TreeNode {
|
| friend class List;
|
| friend class TypeParameterList;
|
|
|
| - Ref<String> name_;
|
| + intptr_t name_index_;
|
| Child<DartType> bound_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TypeParameter);
|
| @@ -2932,14 +2891,13 @@ class Program : public TreeNode {
|
| virtual void AcceptTreeVisitor(TreeVisitor* visitor);
|
| virtual void VisitChildren(Visitor* visitor);
|
|
|
| - StringTable& string_table() { return string_table_; }
|
| SourceTable& source_table() { return source_table_; }
|
| List<Library>& libraries() { return libraries_; }
|
| CanonicalName* main_method() { return main_method_reference_; }
|
| CanonicalName* canonical_name_root() { return canonical_name_root_; }
|
| MallocGrowableArray<MallocGrowableArray<intptr_t>*> valid_token_positions;
|
| MallocGrowableArray<MallocGrowableArray<intptr_t>*> yield_token_positions;
|
| - intptr_t string_data_offset() { return string_data_offset_; }
|
| + intptr_t string_table_offset() { return string_table_offset_; }
|
|
|
| private:
|
| Program() {}
|
| @@ -2947,12 +2905,10 @@ class Program : public TreeNode {
|
| Child<CanonicalName> canonical_name_root_;
|
| List<Library> libraries_;
|
| Ref<CanonicalName> main_method_reference_; // Procedure.
|
| - StringTable string_table_;
|
| SourceTable source_table_;
|
|
|
| - // The offset from the start of the binary to the start of the UTF-8 encoded
|
| - // string data.
|
| - intptr_t string_data_offset_;
|
| + // The offset from the start of the binary to the start of the string table.
|
| + intptr_t string_table_offset_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(Program);
|
| };
|
| @@ -2965,8 +2921,6 @@ class Reference : public AllStatic {
|
| static CanonicalName* ReadClassFrom(Reader* reader, bool allow_null = false);
|
|
|
| static CanonicalName* ReadTypedefFrom(Reader* reader);
|
| -
|
| - static String* ReadStringFrom(Reader* reader);
|
| };
|
|
|
|
|
|
|