| Index: runtime/vm/ast.h
|
| diff --git a/runtime/vm/ast.h b/runtime/vm/ast.h
|
| index c27b61a25c207755554b9efeb84d8234a804c6b9..c7b42d0e9099126d7bf8c7560a75fcc87f67a9b1 100644
|
| --- a/runtime/vm/ast.h
|
| +++ b/runtime/vm/ast.h
|
| @@ -8,9 +8,9 @@
|
| #include "platform/assert.h"
|
| #include "vm/allocation.h"
|
| #include "vm/growable_array.h"
|
| -#include "vm/scopes.h"
|
| -#include "vm/object.h"
|
| #include "vm/native_entry.h"
|
| +#include "vm/object.h"
|
| +#include "vm/scopes.h"
|
| #include "vm/token.h"
|
| #include "vm/token_position.h"
|
|
|
| @@ -66,12 +66,10 @@ namespace dart {
|
| V(InlinedFinally) \
|
| V(StringInterpolate)
|
|
|
| -
|
| #define FORWARD_DECLARATION(BaseName) class BaseName##Node;
|
| FOR_EACH_NODE(FORWARD_DECLARATION)
|
| #undef FORWARD_DECLARATION
|
|
|
| -
|
| // Abstract class to implement an AST node visitor. An example is AstPrinter.
|
| class AstNodeVisitor : public ValueObject {
|
| public:
|
| @@ -88,13 +86,11 @@ class AstNodeVisitor : public ValueObject {
|
| DISALLOW_COPY_AND_ASSIGN(AstNodeVisitor);
|
| };
|
|
|
| -
|
| #define DECLARE_COMMON_NODE_FUNCTIONS(type) \
|
| virtual void Visit(AstNodeVisitor* visitor); \
|
| virtual const char* Name() const; \
|
| virtual type* As##type() { return this; }
|
|
|
| -
|
| class AstNode : public ZoneAllocated {
|
| public:
|
| explicit AstNode(TokenPosition token_pos) : token_pos_(token_pos) {
|
| @@ -158,7 +154,6 @@ class AstNode : public ZoneAllocated {
|
| DISALLOW_COPY_AND_ASSIGN(AstNode);
|
| };
|
|
|
| -
|
| class AwaitNode : public AstNode {
|
| public:
|
| AwaitNode(TokenPosition token_pos,
|
| @@ -200,7 +195,6 @@ class AwaitNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(AwaitNode);
|
| };
|
|
|
| -
|
| // AwaitMarker nodes are used to generate markers that the FlowGraphBuilder
|
| // relies on. A marker indicates that a new await state needs to be
|
| // added to a function preamble. This type also triggers storing of the
|
| @@ -237,7 +231,6 @@ class AwaitMarkerNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(AwaitMarkerNode);
|
| };
|
|
|
| -
|
| class SequenceNode : public AstNode {
|
| public:
|
| SequenceNode(TokenPosition token_pos, LocalScope* scope)
|
| @@ -268,7 +261,6 @@ class SequenceNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(SequenceNode);
|
| };
|
|
|
| -
|
| class CloneContextNode : public AstNode {
|
| public:
|
| explicit CloneContextNode(TokenPosition token_pos) : AstNode(token_pos) {}
|
| @@ -281,7 +273,6 @@ class CloneContextNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(CloneContextNode);
|
| };
|
|
|
| -
|
| class ArgumentListNode : public AstNode {
|
| public:
|
| explicit ArgumentListNode(TokenPosition token_pos)
|
| @@ -344,7 +335,6 @@ class ArgumentListNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(ArgumentListNode);
|
| };
|
|
|
| -
|
| class LetNode : public AstNode {
|
| public:
|
| explicit LetNode(TokenPosition token_pos);
|
| @@ -375,7 +365,6 @@ class LetNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(LetNode);
|
| };
|
|
|
| -
|
| class ArrayNode : public AstNode {
|
| public:
|
| ArrayNode(TokenPosition token_pos, const AbstractType& type)
|
| @@ -422,7 +411,6 @@ class ArrayNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ArrayNode);
|
| };
|
|
|
| -
|
| class StringInterpolateNode : public AstNode {
|
| public:
|
| StringInterpolateNode(TokenPosition token_pos, ArrayNode* value)
|
| @@ -444,7 +432,6 @@ class StringInterpolateNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StringInterpolateNode);
|
| };
|
|
|
| -
|
| class LiteralNode : public AstNode {
|
| public:
|
| LiteralNode(TokenPosition token_pos, const Instance& literal)
|
| @@ -478,7 +465,6 @@ class LiteralNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(LiteralNode);
|
| };
|
|
|
| -
|
| class TypeNode : public AstNode {
|
| public:
|
| TypeNode(TokenPosition token_pos,
|
| @@ -520,7 +506,6 @@ class TypeNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(TypeNode);
|
| };
|
|
|
| -
|
| class AssignableNode : public AstNode {
|
| public:
|
| AssignableNode(TokenPosition token_pos,
|
| @@ -553,7 +538,6 @@ class AssignableNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(AssignableNode);
|
| };
|
|
|
| -
|
| class ClosureNode : public AstNode {
|
| public:
|
| ClosureNode(TokenPosition token_pos,
|
| @@ -602,7 +586,6 @@ class ClosureNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ClosureNode);
|
| };
|
|
|
| -
|
| // Primary nodes hold identifiers or values (library, class or function)
|
| // resolved from an identifier. Primary nodes should not ever make it to the
|
| // code generation phase as they will be transformed into the correct call or
|
| @@ -702,7 +685,6 @@ class ReturnNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(ReturnNode);
|
| };
|
|
|
| -
|
| class ComparisonNode : public AstNode {
|
| public:
|
| ComparisonNode(TokenPosition token_pos,
|
| @@ -740,7 +722,6 @@ class ComparisonNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ComparisonNode);
|
| };
|
|
|
| -
|
| class BinaryOpNode : public AstNode {
|
| public:
|
| BinaryOpNode(TokenPosition token_pos,
|
| @@ -784,7 +765,6 @@ class BinaryOpNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(BinaryOpNode);
|
| };
|
|
|
| -
|
| class UnaryOpNode : public AstNode {
|
| public:
|
| // Returns optimized version, e.g., for ('-' '1') ('-1') literal is returned.
|
| @@ -819,7 +799,6 @@ class UnaryOpNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(UnaryOpNode);
|
| };
|
|
|
| -
|
| class ConditionalExprNode : public AstNode {
|
| public:
|
| ConditionalExprNode(TokenPosition token_pos,
|
| @@ -867,7 +846,6 @@ class ConditionalExprNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ConditionalExprNode);
|
| };
|
|
|
| -
|
| class IfNode : public AstNode {
|
| public:
|
| IfNode(TokenPosition token_pos,
|
| @@ -903,7 +881,6 @@ class IfNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(IfNode);
|
| };
|
|
|
| -
|
| class CaseNode : public AstNode {
|
| public:
|
| CaseNode(TokenPosition token_pos,
|
| @@ -947,7 +924,6 @@ class CaseNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(CaseNode);
|
| };
|
|
|
| -
|
| class SwitchNode : public AstNode {
|
| public:
|
| SwitchNode(TokenPosition token_pos, SourceLabel* label, SequenceNode* body)
|
| @@ -972,7 +948,6 @@ class SwitchNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(SwitchNode);
|
| };
|
|
|
| -
|
| class WhileNode : public AstNode {
|
| public:
|
| WhileNode(TokenPosition token_pos,
|
| @@ -1014,7 +989,6 @@ class WhileNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(WhileNode);
|
| };
|
|
|
| -
|
| class DoWhileNode : public AstNode {
|
| public:
|
| DoWhileNode(TokenPosition token_pos,
|
| @@ -1046,7 +1020,6 @@ class DoWhileNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(DoWhileNode);
|
| };
|
|
|
| -
|
| // The condition can be NULL.
|
| class ForNode : public AstNode {
|
| public:
|
| @@ -1103,7 +1076,6 @@ class ForNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ForNode);
|
| };
|
|
|
| -
|
| class JumpNode : public AstNode {
|
| public:
|
| JumpNode(TokenPosition token_pos, Token::Kind kind, SourceLabel* label)
|
| @@ -1142,7 +1114,6 @@ class JumpNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(JumpNode);
|
| };
|
|
|
| -
|
| class StopNode : public AstNode {
|
| public:
|
| StopNode(TokenPosition token_pos, const char* message)
|
| @@ -1162,7 +1133,6 @@ class StopNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StopNode);
|
| };
|
|
|
| -
|
| class LoadLocalNode : public AstNode {
|
| public:
|
| LoadLocalNode(TokenPosition token_pos, const LocalVariable* local)
|
| @@ -1186,7 +1156,6 @@ class LoadLocalNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(LoadLocalNode);
|
| };
|
|
|
| -
|
| class StoreLocalNode : public AstNode {
|
| public:
|
| StoreLocalNode(TokenPosition token_pos,
|
| @@ -1213,7 +1182,6 @@ class StoreLocalNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StoreLocalNode);
|
| };
|
|
|
| -
|
| class LoadInstanceFieldNode : public AstNode {
|
| public:
|
| LoadInstanceFieldNode(TokenPosition token_pos,
|
| @@ -1240,7 +1208,6 @@ class LoadInstanceFieldNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(LoadInstanceFieldNode);
|
| };
|
|
|
| -
|
| class StoreInstanceFieldNode : public AstNode {
|
| public:
|
| StoreInstanceFieldNode(TokenPosition token_pos,
|
| @@ -1279,7 +1246,6 @@ class StoreInstanceFieldNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StoreInstanceFieldNode);
|
| };
|
|
|
| -
|
| class LoadStaticFieldNode : public AstNode {
|
| public:
|
| LoadStaticFieldNode(TokenPosition token_pos, const Field& field)
|
| @@ -1315,7 +1281,6 @@ class LoadStaticFieldNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(LoadStaticFieldNode);
|
| };
|
|
|
| -
|
| class StoreStaticFieldNode : public AstNode {
|
| public:
|
| StoreStaticFieldNode(TokenPosition token_pos,
|
| @@ -1342,7 +1307,6 @@ class StoreStaticFieldNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StoreStaticFieldNode);
|
| };
|
|
|
| -
|
| class LoadIndexedNode : public AstNode {
|
| public:
|
| LoadIndexedNode(TokenPosition token_pos,
|
| @@ -1379,7 +1343,6 @@ class LoadIndexedNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(LoadIndexedNode);
|
| };
|
|
|
| -
|
| class StoreIndexedNode : public AstNode {
|
| public:
|
| StoreIndexedNode(TokenPosition token_pos,
|
| @@ -1420,7 +1383,6 @@ class StoreIndexedNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StoreIndexedNode);
|
| };
|
|
|
| -
|
| class InstanceCallNode : public AstNode {
|
| public:
|
| InstanceCallNode(TokenPosition token_pos,
|
| @@ -1460,7 +1422,6 @@ class InstanceCallNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(InstanceCallNode);
|
| };
|
|
|
| -
|
| class InstanceGetterNode : public AstNode {
|
| public:
|
| InstanceGetterNode(TokenPosition token_pos,
|
| @@ -1499,7 +1460,6 @@ class InstanceGetterNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(InstanceGetterNode);
|
| };
|
|
|
| -
|
| class InstanceSetterNode : public AstNode {
|
| public:
|
| InstanceSetterNode(TokenPosition token_pos,
|
| @@ -1539,7 +1499,6 @@ class InstanceSetterNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(InstanceSetterNode);
|
| };
|
|
|
| -
|
| class InitStaticFieldNode : public AstNode {
|
| public:
|
| InitStaticFieldNode(TokenPosition token_pos, const Field& field)
|
| @@ -1559,7 +1518,6 @@ class InitStaticFieldNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(InitStaticFieldNode);
|
| };
|
|
|
| -
|
| class StaticGetterNode : public AstNode {
|
| public:
|
| StaticGetterNode(TokenPosition token_pos,
|
| @@ -1615,7 +1573,6 @@ class StaticGetterNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StaticGetterNode);
|
| };
|
|
|
| -
|
| class StaticSetterNode : public AstNode {
|
| public:
|
| // Static setter with resolved setter function.
|
| @@ -1678,7 +1635,6 @@ class StaticSetterNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StaticSetterNode);
|
| };
|
|
|
| -
|
| class StaticCallNode : public AstNode {
|
| public:
|
| StaticCallNode(TokenPosition token_pos,
|
| @@ -1707,7 +1663,6 @@ class StaticCallNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(StaticCallNode);
|
| };
|
|
|
| -
|
| class ClosureCallNode : public AstNode {
|
| public:
|
| ClosureCallNode(TokenPosition token_pos,
|
| @@ -1735,7 +1690,6 @@ class ClosureCallNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ClosureCallNode);
|
| };
|
|
|
| -
|
| // There are two kinds of constructor calls: factory calls and constructor
|
| // calls, distinguishable by constructor.IsFactory().
|
| //
|
| @@ -1795,7 +1749,6 @@ class ConstructorCallNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ConstructorCallNode);
|
| };
|
|
|
| -
|
| // The body of a Dart function marked as 'native' consists of this node.
|
| class NativeBodyNode : public AstNode {
|
| public:
|
| @@ -1835,7 +1788,6 @@ class NativeBodyNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(NativeBodyNode);
|
| };
|
|
|
| -
|
| class CatchClauseNode : public AstNode {
|
| public:
|
| static const intptr_t kInvalidTryIndex = -1;
|
| @@ -1902,7 +1854,6 @@ class CatchClauseNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(CatchClauseNode);
|
| };
|
|
|
| -
|
| class TryCatchNode : public AstNode {
|
| public:
|
| TryCatchNode(TokenPosition token_pos,
|
| @@ -1955,7 +1906,6 @@ class TryCatchNode : public AstNode {
|
| DISALLOW_COPY_AND_ASSIGN(TryCatchNode);
|
| };
|
|
|
| -
|
| class ThrowNode : public AstNode {
|
| public:
|
| ThrowNode(TokenPosition token_pos, AstNode* exception, AstNode* stacktrace)
|
| @@ -1982,7 +1932,6 @@ class ThrowNode : public AstNode {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ThrowNode);
|
| };
|
|
|
| -
|
| class InlinedFinallyNode : public AstNode {
|
| public:
|
| InlinedFinallyNode(TokenPosition token_pos,
|
|
|