| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef RUNTIME_VM_KERNEL_H_ | 5 #ifndef RUNTIME_VM_KERNEL_H_ |
| 6 #define RUNTIME_VM_KERNEL_H_ | 6 #define RUNTIME_VM_KERNEL_H_ |
| 7 | 7 |
| 8 #if !defined(DART_PRECOMPILED_RUNTIME) | 8 #if !defined(DART_PRECOMPILED_RUNTIME) |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "vm/allocation.h" | 10 #include "vm/allocation.h" |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 M(TreeNode) \ | 111 M(TreeNode) \ |
| 112 KERNEL_TREE_NODES_DO(M) | 112 KERNEL_TREE_NODES_DO(M) |
| 113 | 113 |
| 114 #define KERNEL_VISITORS_DO(M) \ | 114 #define KERNEL_VISITORS_DO(M) \ |
| 115 M(ExpressionVisitor) \ | 115 M(ExpressionVisitor) \ |
| 116 M(StatementVisitor) \ | 116 M(StatementVisitor) \ |
| 117 M(MemberVisitor) \ | 117 M(MemberVisitor) \ |
| 118 M(ClassVisitor) \ | 118 M(ClassVisitor) \ |
| 119 M(InitializerVisitor) \ | 119 M(InitializerVisitor) \ |
| 120 M(DartTypeVisitor) \ | 120 M(DartTypeVisitor) \ |
| 121 M(ClassReferenceVisitor) \ | |
| 122 M(MemberReferenceVisitor) \ | |
| 123 M(TreeVisitor) \ | 121 M(TreeVisitor) \ |
| 124 M(Visitor) | 122 M(Visitor) |
| 125 | 123 |
| 126 namespace dart { | 124 namespace dart { |
| 127 | 125 |
| 128 class Field; | 126 class Field; |
| 129 class ParsedFunction; | 127 class ParsedFunction; |
| 130 class Zone; | 128 class Zone; |
| 131 | 129 |
| 132 namespace kernel { | 130 namespace kernel { |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 class LinkedNode; | 361 class LinkedNode; |
| 364 class Member; | 362 class Member; |
| 365 class Procedure; | 363 class Procedure; |
| 366 | 364 |
| 367 class CanonicalName { | 365 class CanonicalName { |
| 368 public: | 366 public: |
| 369 ~CanonicalName(); | 367 ~CanonicalName(); |
| 370 | 368 |
| 371 String* name() { return name_; } | 369 String* name() { return name_; } |
| 372 CanonicalName* parent() { return parent_; } | 370 CanonicalName* parent() { return parent_; } |
| 373 LinkedNode* definition() { return definition_; } | |
| 374 bool is_referenced() { return is_referenced_; } | 371 bool is_referenced() { return is_referenced_; } |
| 375 void set_referenced(bool referenced) { is_referenced_ = referenced; } | 372 void set_referenced(bool referenced) { is_referenced_ = referenced; } |
| 376 | 373 |
| 377 void BindTo(LinkedNode* definition); | |
| 378 void Unbind(); | |
| 379 CanonicalName* AddChild(String* name); | 374 CanonicalName* AddChild(String* name); |
| 380 | 375 |
| 381 Library* AsLibrary(); | 376 bool IsAdministrative(); |
| 382 Class* AsClass(); | 377 bool IsPrivate(); |
| 383 Member* AsMember(); | 378 |
| 384 Field* AsField(); | 379 bool IsRoot(); |
| 385 Constructor* AsConstructor(); | 380 bool IsLibrary(); |
| 386 Procedure* AsProcedure(); | 381 bool IsClass(); |
| 382 bool IsMember(); |
| 383 bool IsField(); |
| 384 bool IsConstructor(); |
| 385 bool IsProcedure(); |
| 386 bool IsMethod(); |
| 387 bool IsGetter(); |
| 388 bool IsSetter(); |
| 389 bool IsFactory(); |
| 390 |
| 391 // For a member (field, constructor, or procedure) return the canonical name |
| 392 // of the enclosing class or library. |
| 393 CanonicalName* EnclosingName(); |
| 387 | 394 |
| 388 static CanonicalName* NewRoot(); | 395 static CanonicalName* NewRoot(); |
| 389 | 396 |
| 390 private: | 397 private: |
| 391 CanonicalName(); | 398 CanonicalName(); |
| 392 | 399 |
| 393 bool is_referenced_; | 400 bool is_referenced_; |
| 394 Ref<CanonicalName> parent_; | 401 Ref<CanonicalName> parent_; |
| 395 Ref<String> name_; | 402 Ref<String> name_; |
| 396 Ref<LinkedNode> definition_; | |
| 397 MallocGrowableArray<CanonicalName*> children_; | 403 MallocGrowableArray<CanonicalName*> children_; |
| 398 | 404 |
| 399 DISALLOW_COPY_AND_ASSIGN(CanonicalName); | 405 DISALLOW_COPY_AND_ASSIGN(CanonicalName); |
| 400 }; | 406 }; |
| 401 | 407 |
| 402 | 408 |
| 403 class Node { | 409 class Node { |
| 404 public: | 410 public: |
| 405 virtual ~Node(); | 411 virtual ~Node(); |
| 406 | 412 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 | 456 |
| 451 class LinkedNode : public TreeNode { | 457 class LinkedNode : public TreeNode { |
| 452 public: | 458 public: |
| 453 virtual ~LinkedNode(); | 459 virtual ~LinkedNode(); |
| 454 | 460 |
| 455 CanonicalName* canonical_name() { return canonical_name_; } | 461 CanonicalName* canonical_name() { return canonical_name_; } |
| 456 | 462 |
| 457 protected: | 463 protected: |
| 458 LinkedNode() {} | 464 LinkedNode() {} |
| 459 | 465 |
| 460 private: | |
| 461 Ref<CanonicalName> canonical_name_; | 466 Ref<CanonicalName> canonical_name_; |
| 462 | 467 |
| 468 private: |
| 463 friend class CanonicalName; | 469 friend class CanonicalName; |
| 464 | 470 |
| 465 DISALLOW_COPY_AND_ASSIGN(LinkedNode); | 471 DISALLOW_COPY_AND_ASSIGN(LinkedNode); |
| 466 }; | 472 }; |
| 467 | 473 |
| 468 | 474 |
| 469 class Library : public LinkedNode { | 475 class Library : public LinkedNode { |
| 470 public: | 476 public: |
| 471 Library* ReadFrom(Reader* reader); | 477 Library* ReadFrom(Reader* reader); |
| 472 | 478 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 526 class Class : public LinkedNode { | 532 class Class : public LinkedNode { |
| 527 public: | 533 public: |
| 528 Class* ReadFrom(Reader* reader); | 534 Class* ReadFrom(Reader* reader); |
| 529 | 535 |
| 530 virtual ~Class(); | 536 virtual ~Class(); |
| 531 | 537 |
| 532 DEFINE_CASTING_OPERATIONS(Class); | 538 DEFINE_CASTING_OPERATIONS(Class); |
| 533 | 539 |
| 534 virtual void AcceptTreeVisitor(TreeVisitor* visitor); | 540 virtual void AcceptTreeVisitor(TreeVisitor* visitor); |
| 535 virtual void AcceptClassVisitor(ClassVisitor* visitor) = 0; | 541 virtual void AcceptClassVisitor(ClassVisitor* visitor) = 0; |
| 536 virtual void AcceptReferenceVisitor(ClassReferenceVisitor* visitor) = 0; | |
| 537 | 542 |
| 538 Library* parent() { return parent_; } | 543 Library* parent() { return parent_; } |
| 539 String* name() { return name_; } | 544 String* name() { return name_; } |
| 540 intptr_t source_uri_index() { return source_uri_index_; } | 545 intptr_t source_uri_index() { return source_uri_index_; } |
| 541 bool is_abstract() { return is_abstract_; } | 546 bool is_abstract() { return is_abstract_; } |
| 542 List<Expression>& annotations() { return annotations_; } | 547 List<Expression>& annotations() { return annotations_; } |
| 543 TokenPosition position() { return position_; } | 548 TokenPosition position() { return position_; } |
| 544 | 549 |
| 545 virtual List<TypeParameter>& type_parameters() = 0; | 550 virtual List<TypeParameter>& type_parameters() = 0; |
| 546 virtual List<InterfaceType>& implemented_classes() = 0; | 551 virtual List<InterfaceType>& implemented_classes() = 0; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 568 | 573 |
| 569 class NormalClass : public Class { | 574 class NormalClass : public Class { |
| 570 public: | 575 public: |
| 571 NormalClass* ReadFrom(Reader* reader); | 576 NormalClass* ReadFrom(Reader* reader); |
| 572 | 577 |
| 573 virtual ~NormalClass(); | 578 virtual ~NormalClass(); |
| 574 | 579 |
| 575 DEFINE_CASTING_OPERATIONS(NormalClass); | 580 DEFINE_CASTING_OPERATIONS(NormalClass); |
| 576 | 581 |
| 577 virtual void AcceptClassVisitor(ClassVisitor* visitor); | 582 virtual void AcceptClassVisitor(ClassVisitor* visitor); |
| 578 virtual void AcceptReferenceVisitor(ClassReferenceVisitor* visitor); | |
| 579 virtual void VisitChildren(Visitor* visitor); | 583 virtual void VisitChildren(Visitor* visitor); |
| 580 | 584 |
| 581 virtual TypeParameterList& type_parameters() { return type_parameters_; } | 585 virtual TypeParameterList& type_parameters() { return type_parameters_; } |
| 582 InterfaceType* super_class() { return super_class_; } | 586 InterfaceType* super_class() { return super_class_; } |
| 583 virtual List<InterfaceType>& implemented_classes() { | 587 virtual List<InterfaceType>& implemented_classes() { |
| 584 return implemented_classes_; | 588 return implemented_classes_; |
| 585 } | 589 } |
| 586 virtual List<Constructor>& constructors() { return constructors_; } | 590 virtual List<Constructor>& constructors() { return constructors_; } |
| 587 virtual List<Procedure>& procedures() { return procedures_; } | 591 virtual List<Procedure>& procedures() { return procedures_; } |
| 588 virtual List<Field>& fields() { return fields_; } | 592 virtual List<Field>& fields() { return fields_; } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 606 | 610 |
| 607 class MixinClass : public Class { | 611 class MixinClass : public Class { |
| 608 public: | 612 public: |
| 609 MixinClass* ReadFrom(Reader* reader); | 613 MixinClass* ReadFrom(Reader* reader); |
| 610 | 614 |
| 611 virtual ~MixinClass(); | 615 virtual ~MixinClass(); |
| 612 | 616 |
| 613 DEFINE_CASTING_OPERATIONS(MixinClass); | 617 DEFINE_CASTING_OPERATIONS(MixinClass); |
| 614 | 618 |
| 615 virtual void AcceptClassVisitor(ClassVisitor* visitor); | 619 virtual void AcceptClassVisitor(ClassVisitor* visitor); |
| 616 virtual void AcceptReferenceVisitor(ClassReferenceVisitor* visitor); | |
| 617 virtual void VisitChildren(Visitor* visitor); | 620 virtual void VisitChildren(Visitor* visitor); |
| 618 | 621 |
| 619 virtual TypeParameterList& type_parameters() { return type_parameters_; } | 622 virtual TypeParameterList& type_parameters() { return type_parameters_; } |
| 620 InterfaceType* first() { return first_; } | 623 InterfaceType* first() { return first_; } |
| 621 InterfaceType* second() { return second_; } | 624 InterfaceType* second() { return second_; } |
| 622 virtual List<InterfaceType>& implemented_classes() { | 625 virtual List<InterfaceType>& implemented_classes() { |
| 623 return implemented_classes_; | 626 return implemented_classes_; |
| 624 } | 627 } |
| 625 virtual List<Constructor>& constructors() { return constructors_; } | 628 virtual List<Constructor>& constructors() { return constructors_; } |
| 626 virtual List<Field>& fields() { return fields_; } | 629 virtual List<Field>& fields() { return fields_; } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 647 | 650 |
| 648 | 651 |
| 649 class Member : public LinkedNode { | 652 class Member : public LinkedNode { |
| 650 public: | 653 public: |
| 651 virtual ~Member(); | 654 virtual ~Member(); |
| 652 | 655 |
| 653 DEFINE_CASTING_OPERATIONS(Member); | 656 DEFINE_CASTING_OPERATIONS(Member); |
| 654 | 657 |
| 655 virtual void AcceptTreeVisitor(TreeVisitor* visitor); | 658 virtual void AcceptTreeVisitor(TreeVisitor* visitor); |
| 656 virtual void AcceptMemberVisitor(MemberVisitor* visitor) = 0; | 659 virtual void AcceptMemberVisitor(MemberVisitor* visitor) = 0; |
| 657 virtual void AcceptReferenceVisitor(MemberReferenceVisitor* visitor) = 0; | |
| 658 | 660 |
| 659 TreeNode* parent() { return parent_; } | 661 TreeNode* parent() { return parent_; } |
| 660 Name* name() { return name_; } | 662 Name* name() { return name_; } |
| 661 List<Expression>& annotations() { return annotations_; } | 663 List<Expression>& annotations() { return annotations_; } |
| 662 TokenPosition position() { return position_; } | 664 TokenPosition position() { return position_; } |
| 663 TokenPosition end_position() { return end_position_; } | 665 TokenPosition end_position() { return end_position_; } |
| 664 | 666 |
| 665 protected: | 667 protected: |
| 666 Member() | 668 Member() |
| 667 : position_(TokenPosition::kNoSource), | 669 : position_(TokenPosition::kNoSource), |
| (...skipping 21 matching lines...) Expand all Loading... |
| 689 kFlagStatic = 1 << 2, | 691 kFlagStatic = 1 << 2, |
| 690 }; | 692 }; |
| 691 | 693 |
| 692 Field* ReadFrom(Reader* reader); | 694 Field* ReadFrom(Reader* reader); |
| 693 | 695 |
| 694 virtual ~Field(); | 696 virtual ~Field(); |
| 695 | 697 |
| 696 DEFINE_CASTING_OPERATIONS(Field); | 698 DEFINE_CASTING_OPERATIONS(Field); |
| 697 | 699 |
| 698 virtual void AcceptMemberVisitor(MemberVisitor* visitor); | 700 virtual void AcceptMemberVisitor(MemberVisitor* visitor); |
| 699 virtual void AcceptReferenceVisitor(MemberReferenceVisitor* visitor); | |
| 700 virtual void VisitChildren(Visitor* visitor); | 701 virtual void VisitChildren(Visitor* visitor); |
| 701 | 702 |
| 702 bool IsConst() { return (flags_ & kFlagConst) == kFlagConst; } | 703 bool IsConst() { return (flags_ & kFlagConst) == kFlagConst; } |
| 703 bool IsFinal() { return (flags_ & kFlagFinal) == kFlagFinal; } | 704 bool IsFinal() { return (flags_ & kFlagFinal) == kFlagFinal; } |
| 704 bool IsStatic() { return (flags_ & kFlagStatic) == kFlagStatic; } | 705 bool IsStatic() { return (flags_ & kFlagStatic) == kFlagStatic; } |
| 705 intptr_t source_uri_index() { return source_uri_index_; } | 706 intptr_t source_uri_index() { return source_uri_index_; } |
| 706 | 707 |
| 707 DartType* type() { return type_; } | 708 DartType* type() { return type_; } |
| 708 Expression* initializer() { return initializer_; } | 709 Expression* initializer() { return initializer_; } |
| 709 | 710 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 729 kFlagExternal = 1 << 1, | 730 kFlagExternal = 1 << 1, |
| 730 }; | 731 }; |
| 731 | 732 |
| 732 Constructor* ReadFrom(Reader* reader); | 733 Constructor* ReadFrom(Reader* reader); |
| 733 | 734 |
| 734 virtual ~Constructor(); | 735 virtual ~Constructor(); |
| 735 | 736 |
| 736 DEFINE_CASTING_OPERATIONS(Constructor); | 737 DEFINE_CASTING_OPERATIONS(Constructor); |
| 737 | 738 |
| 738 virtual void AcceptMemberVisitor(MemberVisitor* visitor); | 739 virtual void AcceptMemberVisitor(MemberVisitor* visitor); |
| 739 virtual void AcceptReferenceVisitor(MemberReferenceVisitor* visitor); | |
| 740 virtual void VisitChildren(Visitor* visitor); | 740 virtual void VisitChildren(Visitor* visitor); |
| 741 | 741 |
| 742 bool IsExternal() { return (flags_ & kFlagExternal) == kFlagExternal; } | 742 bool IsExternal() { return (flags_ & kFlagExternal) == kFlagExternal; } |
| 743 bool IsConst() { return (flags_ & kFlagConst) == kFlagConst; } | 743 bool IsConst() { return (flags_ & kFlagConst) == kFlagConst; } |
| 744 | 744 |
| 745 FunctionNode* function() { return function_; } | 745 FunctionNode* function() { return function_; } |
| 746 List<Initializer>& initializers() { return initializers_; } | 746 List<Initializer>& initializers() { return initializers_; } |
| 747 | 747 |
| 748 private: | 748 private: |
| 749 template <typename T> | 749 template <typename T> |
| (...skipping 29 matching lines...) Expand all Loading... |
| 779 kIncompleteProcedure = 255 | 779 kIncompleteProcedure = 255 |
| 780 }; | 780 }; |
| 781 | 781 |
| 782 Procedure* ReadFrom(Reader* reader); | 782 Procedure* ReadFrom(Reader* reader); |
| 783 | 783 |
| 784 virtual ~Procedure(); | 784 virtual ~Procedure(); |
| 785 | 785 |
| 786 DEFINE_CASTING_OPERATIONS(Procedure); | 786 DEFINE_CASTING_OPERATIONS(Procedure); |
| 787 | 787 |
| 788 virtual void AcceptMemberVisitor(MemberVisitor* visitor); | 788 virtual void AcceptMemberVisitor(MemberVisitor* visitor); |
| 789 virtual void AcceptReferenceVisitor(MemberReferenceVisitor* visitor); | |
| 790 virtual void VisitChildren(Visitor* visitor); | 789 virtual void VisitChildren(Visitor* visitor); |
| 791 | 790 |
| 792 ProcedureKind kind() { return kind_; } | 791 ProcedureKind kind() { return kind_; } |
| 793 FunctionNode* function() { return function_; } | 792 FunctionNode* function() { return function_; } |
| 794 | 793 |
| 795 bool IsStatic() { return (flags_ & kFlagStatic) == kFlagStatic; } | 794 bool IsStatic() { return (flags_ & kFlagStatic) == kFlagStatic; } |
| 796 bool IsAbstract() { return (flags_ & kFlagAbstract) == kFlagAbstract; } | 795 bool IsAbstract() { return (flags_ & kFlagAbstract) == kFlagAbstract; } |
| 797 bool IsExternal() { return (flags_ & kFlagExternal) == kFlagExternal; } | 796 bool IsExternal() { return (flags_ & kFlagExternal) == kFlagExternal; } |
| 798 bool IsConst() { return (flags_ & kFlagConst) == kFlagConst; } | 797 bool IsConst() { return (flags_ & kFlagConst) == kFlagConst; } |
| 799 intptr_t source_uri_index() { return source_uri_index_; } | 798 intptr_t source_uri_index() { return source_uri_index_; } |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 853 public: | 852 public: |
| 854 static FieldInitializer* ReadFromImpl(Reader* reader); | 853 static FieldInitializer* ReadFromImpl(Reader* reader); |
| 855 | 854 |
| 856 virtual ~FieldInitializer(); | 855 virtual ~FieldInitializer(); |
| 857 | 856 |
| 858 DEFINE_CASTING_OPERATIONS(FieldInitializer); | 857 DEFINE_CASTING_OPERATIONS(FieldInitializer); |
| 859 | 858 |
| 860 virtual void AcceptInitializerVisitor(InitializerVisitor* visitor); | 859 virtual void AcceptInitializerVisitor(InitializerVisitor* visitor); |
| 861 virtual void VisitChildren(Visitor* visitor); | 860 virtual void VisitChildren(Visitor* visitor); |
| 862 | 861 |
| 863 Field* field() { return field_reference_->AsField(); } | 862 CanonicalName* field() { return field_reference_; } |
| 864 Expression* value() { return value_; } | 863 Expression* value() { return value_; } |
| 865 | 864 |
| 866 private: | 865 private: |
| 867 FieldInitializer() {} | 866 FieldInitializer() {} |
| 868 | 867 |
| 869 Ref<CanonicalName> field_reference_; | 868 Ref<CanonicalName> field_reference_; // Field. |
| 870 Child<Expression> value_; | 869 Child<Expression> value_; |
| 871 | 870 |
| 872 DISALLOW_COPY_AND_ASSIGN(FieldInitializer); | 871 DISALLOW_COPY_AND_ASSIGN(FieldInitializer); |
| 873 }; | 872 }; |
| 874 | 873 |
| 875 | 874 |
| 876 class SuperInitializer : public Initializer { | 875 class SuperInitializer : public Initializer { |
| 877 public: | 876 public: |
| 878 static SuperInitializer* ReadFromImpl(Reader* reader); | 877 static SuperInitializer* ReadFromImpl(Reader* reader); |
| 879 | 878 |
| 880 virtual ~SuperInitializer(); | 879 virtual ~SuperInitializer(); |
| 881 | 880 |
| 882 DEFINE_CASTING_OPERATIONS(SuperInitializer); | 881 DEFINE_CASTING_OPERATIONS(SuperInitializer); |
| 883 | 882 |
| 884 virtual void AcceptInitializerVisitor(InitializerVisitor* visitor); | 883 virtual void AcceptInitializerVisitor(InitializerVisitor* visitor); |
| 885 virtual void VisitChildren(Visitor* visitor); | 884 virtual void VisitChildren(Visitor* visitor); |
| 886 | 885 |
| 887 Constructor* target() { return target_reference_->AsConstructor(); } | 886 CanonicalName* target() { return target_reference_; } |
| 888 Arguments* arguments() { return arguments_; } | 887 Arguments* arguments() { return arguments_; } |
| 889 | 888 |
| 890 private: | 889 private: |
| 891 SuperInitializer() {} | 890 SuperInitializer() {} |
| 892 | 891 |
| 893 Ref<CanonicalName> target_reference_; | 892 Ref<CanonicalName> target_reference_; // Constructor. |
| 894 Child<Arguments> arguments_; | 893 Child<Arguments> arguments_; |
| 895 | 894 |
| 896 DISALLOW_COPY_AND_ASSIGN(SuperInitializer); | 895 DISALLOW_COPY_AND_ASSIGN(SuperInitializer); |
| 897 }; | 896 }; |
| 898 | 897 |
| 899 | 898 |
| 900 class RedirectingInitializer : public Initializer { | 899 class RedirectingInitializer : public Initializer { |
| 901 public: | 900 public: |
| 902 static RedirectingInitializer* ReadFromImpl(Reader* reader); | 901 static RedirectingInitializer* ReadFromImpl(Reader* reader); |
| 903 | 902 |
| 904 virtual ~RedirectingInitializer(); | 903 virtual ~RedirectingInitializer(); |
| 905 | 904 |
| 906 DEFINE_CASTING_OPERATIONS(RedirectingInitializer); | 905 DEFINE_CASTING_OPERATIONS(RedirectingInitializer); |
| 907 | 906 |
| 908 virtual void AcceptInitializerVisitor(InitializerVisitor* visitor); | 907 virtual void AcceptInitializerVisitor(InitializerVisitor* visitor); |
| 909 virtual void VisitChildren(Visitor* visitor); | 908 virtual void VisitChildren(Visitor* visitor); |
| 910 | 909 |
| 911 Constructor* target() { return target_reference_->AsConstructor(); } | 910 CanonicalName* target() { return target_reference_; } |
| 912 Arguments* arguments() { return arguments_; } | 911 Arguments* arguments() { return arguments_; } |
| 913 | 912 |
| 914 private: | 913 private: |
| 915 RedirectingInitializer() {} | 914 RedirectingInitializer() {} |
| 916 | 915 |
| 917 Ref<CanonicalName> target_reference_; | 916 Ref<CanonicalName> target_reference_; // Constructor. |
| 918 Child<Arguments> arguments_; | 917 Child<Arguments> arguments_; |
| 919 | 918 |
| 920 DISALLOW_COPY_AND_ASSIGN(RedirectingInitializer); | 919 DISALLOW_COPY_AND_ASSIGN(RedirectingInitializer); |
| 921 }; | 920 }; |
| 922 | 921 |
| 923 | 922 |
| 924 class LocalInitializer : public Initializer { | 923 class LocalInitializer : public Initializer { |
| 925 public: | 924 public: |
| 926 static LocalInitializer* ReadFromImpl(Reader* reader); | 925 static LocalInitializer* ReadFromImpl(Reader* reader); |
| 927 | 926 |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1140 static DirectPropertyGet* ReadFrom(Reader* reader); | 1139 static DirectPropertyGet* ReadFrom(Reader* reader); |
| 1141 | 1140 |
| 1142 virtual ~DirectPropertyGet(); | 1141 virtual ~DirectPropertyGet(); |
| 1143 | 1142 |
| 1144 DEFINE_CASTING_OPERATIONS(DirectPropertyGet); | 1143 DEFINE_CASTING_OPERATIONS(DirectPropertyGet); |
| 1145 | 1144 |
| 1146 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); | 1145 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); |
| 1147 virtual void VisitChildren(Visitor* visitor); | 1146 virtual void VisitChildren(Visitor* visitor); |
| 1148 | 1147 |
| 1149 Expression* receiver() { return receiver_; } | 1148 Expression* receiver() { return receiver_; } |
| 1150 Member* target() { return target_reference_->AsMember(); } | 1149 CanonicalName* target() { return target_reference_; } |
| 1151 | 1150 |
| 1152 private: | 1151 private: |
| 1153 DirectPropertyGet() {} | 1152 DirectPropertyGet() {} |
| 1154 | 1153 |
| 1155 Child<Expression> receiver_; | 1154 Child<Expression> receiver_; |
| 1156 Ref<CanonicalName> target_reference_; | 1155 Ref<CanonicalName> target_reference_; // Member. |
| 1157 | 1156 |
| 1158 DISALLOW_COPY_AND_ASSIGN(DirectPropertyGet); | 1157 DISALLOW_COPY_AND_ASSIGN(DirectPropertyGet); |
| 1159 }; | 1158 }; |
| 1160 | 1159 |
| 1161 | 1160 |
| 1162 class DirectPropertySet : public Expression { | 1161 class DirectPropertySet : public Expression { |
| 1163 public: | 1162 public: |
| 1164 static DirectPropertySet* ReadFrom(Reader* reader); | 1163 static DirectPropertySet* ReadFrom(Reader* reader); |
| 1165 | 1164 |
| 1166 virtual ~DirectPropertySet(); | 1165 virtual ~DirectPropertySet(); |
| 1167 | 1166 |
| 1168 DEFINE_CASTING_OPERATIONS(DirectPropertySet); | 1167 DEFINE_CASTING_OPERATIONS(DirectPropertySet); |
| 1169 | 1168 |
| 1170 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); | 1169 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); |
| 1171 virtual void VisitChildren(Visitor* visitor); | 1170 virtual void VisitChildren(Visitor* visitor); |
| 1172 | 1171 |
| 1173 Expression* receiver() { return receiver_; } | 1172 Expression* receiver() { return receiver_; } |
| 1174 Member* target() { return target_reference_->AsMember(); } | 1173 CanonicalName* target() { return target_reference_; } |
| 1175 Expression* value() { return value_; } | 1174 Expression* value() { return value_; } |
| 1176 | 1175 |
| 1177 private: | 1176 private: |
| 1178 DirectPropertySet() {} | 1177 DirectPropertySet() {} |
| 1179 | 1178 |
| 1180 Child<Expression> receiver_; | 1179 Child<Expression> receiver_; |
| 1181 Ref<CanonicalName> target_reference_; | 1180 Ref<CanonicalName> target_reference_; // Member. |
| 1182 Child<Expression> value_; | 1181 Child<Expression> value_; |
| 1183 | 1182 |
| 1184 DISALLOW_COPY_AND_ASSIGN(DirectPropertySet); | 1183 DISALLOW_COPY_AND_ASSIGN(DirectPropertySet); |
| 1185 }; | 1184 }; |
| 1186 | 1185 |
| 1187 | 1186 |
| 1188 class StaticGet : public Expression { | 1187 class StaticGet : public Expression { |
| 1189 public: | 1188 public: |
| 1190 static StaticGet* ReadFrom(Reader* reader); | 1189 static StaticGet* ReadFrom(Reader* reader); |
| 1191 | 1190 |
| 1192 virtual ~StaticGet(); | 1191 virtual ~StaticGet(); |
| 1193 | 1192 |
| 1194 DEFINE_CASTING_OPERATIONS(StaticGet); | 1193 DEFINE_CASTING_OPERATIONS(StaticGet); |
| 1195 | 1194 |
| 1196 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); | 1195 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); |
| 1197 virtual void VisitChildren(Visitor* visitor); | 1196 virtual void VisitChildren(Visitor* visitor); |
| 1198 | 1197 |
| 1199 Member* target() { return target_reference_->AsMember(); } | 1198 CanonicalName* target() { return target_reference_; } |
| 1200 | 1199 |
| 1201 private: | 1200 private: |
| 1202 StaticGet() {} | 1201 StaticGet() {} |
| 1203 | 1202 |
| 1204 Ref<CanonicalName> target_reference_; | 1203 Ref<CanonicalName> target_reference_; // Member. |
| 1205 | 1204 |
| 1206 DISALLOW_COPY_AND_ASSIGN(StaticGet); | 1205 DISALLOW_COPY_AND_ASSIGN(StaticGet); |
| 1207 }; | 1206 }; |
| 1208 | 1207 |
| 1209 | 1208 |
| 1210 class StaticSet : public Expression { | 1209 class StaticSet : public Expression { |
| 1211 public: | 1210 public: |
| 1212 static StaticSet* ReadFrom(Reader* reader); | 1211 static StaticSet* ReadFrom(Reader* reader); |
| 1213 | 1212 |
| 1214 virtual ~StaticSet(); | 1213 virtual ~StaticSet(); |
| 1215 | 1214 |
| 1216 DEFINE_CASTING_OPERATIONS(StaticSet); | 1215 DEFINE_CASTING_OPERATIONS(StaticSet); |
| 1217 | 1216 |
| 1218 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); | 1217 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); |
| 1219 virtual void VisitChildren(Visitor* visitor); | 1218 virtual void VisitChildren(Visitor* visitor); |
| 1220 | 1219 |
| 1221 Member* target() { return target_reference_->AsMember(); } | 1220 CanonicalName* target() { return target_reference_; } |
| 1222 Expression* expression() { return expression_; } | 1221 Expression* expression() { return expression_; } |
| 1223 | 1222 |
| 1224 private: | 1223 private: |
| 1225 StaticSet() {} | 1224 StaticSet() {} |
| 1226 | 1225 |
| 1227 Ref<CanonicalName> target_reference_; | 1226 Ref<CanonicalName> target_reference_; // Member. |
| 1228 Child<Expression> expression_; | 1227 Child<Expression> expression_; |
| 1229 | 1228 |
| 1230 DISALLOW_COPY_AND_ASSIGN(StaticSet); | 1229 DISALLOW_COPY_AND_ASSIGN(StaticSet); |
| 1231 }; | 1230 }; |
| 1232 | 1231 |
| 1233 | 1232 |
| 1234 class Arguments : public TreeNode { | 1233 class Arguments : public TreeNode { |
| 1235 public: | 1234 public: |
| 1236 static Arguments* ReadFrom(Reader* reader); | 1235 static Arguments* ReadFrom(Reader* reader); |
| 1237 | 1236 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 static DirectMethodInvocation* ReadFrom(Reader* reader); | 1316 static DirectMethodInvocation* ReadFrom(Reader* reader); |
| 1318 | 1317 |
| 1319 virtual ~DirectMethodInvocation(); | 1318 virtual ~DirectMethodInvocation(); |
| 1320 | 1319 |
| 1321 DEFINE_CASTING_OPERATIONS(DirectMethodInvocation); | 1320 DEFINE_CASTING_OPERATIONS(DirectMethodInvocation); |
| 1322 | 1321 |
| 1323 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); | 1322 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); |
| 1324 virtual void VisitChildren(Visitor* visitor); | 1323 virtual void VisitChildren(Visitor* visitor); |
| 1325 | 1324 |
| 1326 Expression* receiver() { return receiver_; } | 1325 Expression* receiver() { return receiver_; } |
| 1327 Procedure* target() { return target_reference_->AsProcedure(); } | 1326 CanonicalName* target() { return target_reference_; } |
| 1328 Arguments* arguments() { return arguments_; } | 1327 Arguments* arguments() { return arguments_; } |
| 1329 | 1328 |
| 1330 private: | 1329 private: |
| 1331 DirectMethodInvocation() {} | 1330 DirectMethodInvocation() {} |
| 1332 | 1331 |
| 1333 Child<Expression> receiver_; | 1332 Child<Expression> receiver_; |
| 1334 Ref<CanonicalName> target_reference_; | 1333 Ref<CanonicalName> target_reference_; // Procedure. |
| 1335 Child<Arguments> arguments_; | 1334 Child<Arguments> arguments_; |
| 1336 | 1335 |
| 1337 DISALLOW_COPY_AND_ASSIGN(DirectMethodInvocation); | 1336 DISALLOW_COPY_AND_ASSIGN(DirectMethodInvocation); |
| 1338 }; | 1337 }; |
| 1339 | 1338 |
| 1340 | 1339 |
| 1341 class StaticInvocation : public Expression { | 1340 class StaticInvocation : public Expression { |
| 1342 public: | 1341 public: |
| 1343 static StaticInvocation* ReadFrom(Reader* reader, bool is_const); | 1342 static StaticInvocation* ReadFrom(Reader* reader, bool is_const); |
| 1344 ~StaticInvocation(); | 1343 ~StaticInvocation(); |
| 1345 | 1344 |
| 1346 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); | 1345 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); |
| 1347 virtual void VisitChildren(Visitor* visitor); | 1346 virtual void VisitChildren(Visitor* visitor); |
| 1348 | 1347 |
| 1349 Procedure* procedure() { return procedure_reference_->AsProcedure(); } | 1348 CanonicalName* procedure() { return procedure_reference_; } |
| 1350 Arguments* arguments() { return arguments_; } | 1349 Arguments* arguments() { return arguments_; } |
| 1351 bool is_const() { return is_const_; } | 1350 bool is_const() { return is_const_; } |
| 1352 | 1351 |
| 1353 private: | 1352 private: |
| 1354 StaticInvocation() {} | 1353 StaticInvocation() {} |
| 1355 | 1354 |
| 1356 Ref<CanonicalName> procedure_reference_; | 1355 Ref<CanonicalName> procedure_reference_; // Procedure. |
| 1357 Child<Arguments> arguments_; | 1356 Child<Arguments> arguments_; |
| 1358 bool is_const_; | 1357 bool is_const_; |
| 1359 | 1358 |
| 1360 DISALLOW_COPY_AND_ASSIGN(StaticInvocation); | 1359 DISALLOW_COPY_AND_ASSIGN(StaticInvocation); |
| 1361 }; | 1360 }; |
| 1362 | 1361 |
| 1363 | 1362 |
| 1364 class ConstructorInvocation : public Expression { | 1363 class ConstructorInvocation : public Expression { |
| 1365 public: | 1364 public: |
| 1366 static ConstructorInvocation* ReadFrom(Reader* reader, bool is_const); | 1365 static ConstructorInvocation* ReadFrom(Reader* reader, bool is_const); |
| 1367 | 1366 |
| 1368 virtual ~ConstructorInvocation(); | 1367 virtual ~ConstructorInvocation(); |
| 1369 | 1368 |
| 1370 DEFINE_CASTING_OPERATIONS(ConstructorInvocation); | 1369 DEFINE_CASTING_OPERATIONS(ConstructorInvocation); |
| 1371 | 1370 |
| 1372 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); | 1371 virtual void AcceptExpressionVisitor(ExpressionVisitor* visitor); |
| 1373 virtual void VisitChildren(Visitor* visitor); | 1372 virtual void VisitChildren(Visitor* visitor); |
| 1374 | 1373 |
| 1375 bool is_const() { return is_const_; } | 1374 bool is_const() { return is_const_; } |
| 1376 Constructor* target() { return target_reference_->AsConstructor(); } | 1375 CanonicalName* target() { return target_reference_; } |
| 1377 Arguments* arguments() { return arguments_; } | 1376 Arguments* arguments() { return arguments_; } |
| 1378 | 1377 |
| 1379 private: | 1378 private: |
| 1380 ConstructorInvocation() {} | 1379 ConstructorInvocation() {} |
| 1381 | 1380 |
| 1382 bool is_const_; | 1381 bool is_const_; |
| 1383 Ref<CanonicalName> target_reference_; | 1382 Ref<CanonicalName> target_reference_; // Constructor. |
| 1384 Child<Arguments> arguments_; | 1383 Child<Arguments> arguments_; |
| 1385 | 1384 |
| 1386 DISALLOW_COPY_AND_ASSIGN(ConstructorInvocation); | 1385 DISALLOW_COPY_AND_ASSIGN(ConstructorInvocation); |
| 1387 }; | 1386 }; |
| 1388 | 1387 |
| 1389 | 1388 |
| 1390 class Not : public Expression { | 1389 class Not : public Expression { |
| 1391 public: | 1390 public: |
| 1392 static Not* ReadFrom(Reader* reader); | 1391 static Not* ReadFrom(Reader* reader); |
| 1393 | 1392 |
| (...skipping 1128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2522 static Name* ReadFrom(Reader* reader); | 2521 static Name* ReadFrom(Reader* reader); |
| 2523 | 2522 |
| 2524 virtual ~Name(); | 2523 virtual ~Name(); |
| 2525 | 2524 |
| 2526 DEFINE_CASTING_OPERATIONS(Name); | 2525 DEFINE_CASTING_OPERATIONS(Name); |
| 2527 | 2526 |
| 2528 virtual void AcceptVisitor(Visitor* visitor); | 2527 virtual void AcceptVisitor(Visitor* visitor); |
| 2529 virtual void VisitChildren(Visitor* visitor); | 2528 virtual void VisitChildren(Visitor* visitor); |
| 2530 | 2529 |
| 2531 String* string() { return string_; } | 2530 String* string() { return string_; } |
| 2532 Library* library() { | 2531 CanonicalName* library() { return library_reference_; } |
| 2533 if (library_reference_ == NULL) return NULL; | |
| 2534 return library_reference_->AsLibrary(); | |
| 2535 } | |
| 2536 CanonicalName* library_reference() { return library_reference_; } | |
| 2537 | 2532 |
| 2538 private: | 2533 private: |
| 2539 Name(String* string, CanonicalName* library_reference) | 2534 Name(String* string, CanonicalName* library_reference) |
| 2540 : string_(string), library_reference_(library_reference) {} // NOLINT | 2535 : string_(string), library_reference_(library_reference) {} // NOLINT |
| 2541 | 2536 |
| 2542 Ref<String> string_; | 2537 Ref<String> string_; |
| 2543 Ref<CanonicalName> library_reference_; | 2538 Ref<CanonicalName> library_reference_; // Library. |
| 2544 | 2539 |
| 2545 DISALLOW_COPY_AND_ASSIGN(Name); | 2540 DISALLOW_COPY_AND_ASSIGN(Name); |
| 2546 }; | 2541 }; |
| 2547 | 2542 |
| 2548 | 2543 |
| 2549 class DartType : public Node { | 2544 class DartType : public Node { |
| 2550 public: | 2545 public: |
| 2551 static DartType* ReadFrom(Reader* reader); | 2546 static DartType* ReadFrom(Reader* reader); |
| 2552 | 2547 |
| 2553 virtual ~DartType(); | 2548 virtual ~DartType(); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2626 | 2621 |
| 2627 explicit InterfaceType(CanonicalName* class_reference) | 2622 explicit InterfaceType(CanonicalName* class_reference) |
| 2628 : class_reference_(class_reference) {} | 2623 : class_reference_(class_reference) {} |
| 2629 virtual ~InterfaceType(); | 2624 virtual ~InterfaceType(); |
| 2630 | 2625 |
| 2631 DEFINE_CASTING_OPERATIONS(InterfaceType); | 2626 DEFINE_CASTING_OPERATIONS(InterfaceType); |
| 2632 | 2627 |
| 2633 virtual void AcceptDartTypeVisitor(DartTypeVisitor* visitor); | 2628 virtual void AcceptDartTypeVisitor(DartTypeVisitor* visitor); |
| 2634 virtual void VisitChildren(Visitor* visitor); | 2629 virtual void VisitChildren(Visitor* visitor); |
| 2635 | 2630 |
| 2636 Class* klass() { return class_reference_->AsClass(); } | 2631 CanonicalName* klass() { return class_reference_; } |
| 2637 CanonicalName* class_reference() { return class_reference_; } | |
| 2638 List<DartType>& type_arguments() { return type_arguments_; } | 2632 List<DartType>& type_arguments() { return type_arguments_; } |
| 2639 | 2633 |
| 2640 private: | 2634 private: |
| 2641 InterfaceType() {} | 2635 InterfaceType() {} |
| 2642 | 2636 |
| 2643 Ref<CanonicalName> class_reference_; | 2637 Ref<CanonicalName> class_reference_; // Class. |
| 2644 List<DartType> type_arguments_; | 2638 List<DartType> type_arguments_; |
| 2645 | 2639 |
| 2646 DISALLOW_COPY_AND_ASSIGN(InterfaceType); | 2640 DISALLOW_COPY_AND_ASSIGN(InterfaceType); |
| 2647 }; | 2641 }; |
| 2648 | 2642 |
| 2649 | 2643 |
| 2650 class FunctionType : public DartType { | 2644 class FunctionType : public DartType { |
| 2651 public: | 2645 public: |
| 2652 static FunctionType* ReadFrom(Reader* reader); | 2646 static FunctionType* ReadFrom(Reader* reader); |
| 2653 static FunctionType* ReadFrom(Reader* reader, bool _without_type_arguments_); | 2647 static FunctionType* ReadFrom(Reader* reader, bool _without_type_arguments_); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2738 | 2732 |
| 2739 DEFINE_CASTING_OPERATIONS(Program); | 2733 DEFINE_CASTING_OPERATIONS(Program); |
| 2740 | 2734 |
| 2741 virtual void AcceptTreeVisitor(TreeVisitor* visitor); | 2735 virtual void AcceptTreeVisitor(TreeVisitor* visitor); |
| 2742 virtual void VisitChildren(Visitor* visitor); | 2736 virtual void VisitChildren(Visitor* visitor); |
| 2743 | 2737 |
| 2744 StringTable& string_table() { return string_table_; } | 2738 StringTable& string_table() { return string_table_; } |
| 2745 StringTable& source_uri_table() { return source_uri_table_; } | 2739 StringTable& source_uri_table() { return source_uri_table_; } |
| 2746 SourceTable& source_table() { return source_table_; } | 2740 SourceTable& source_table() { return source_table_; } |
| 2747 List<Library>& libraries() { return libraries_; } | 2741 List<Library>& libraries() { return libraries_; } |
| 2748 Procedure* main_method() { | 2742 CanonicalName* main_method() { return main_method_reference_; } |
| 2749 if (main_method_reference_ == NULL) return NULL; | |
| 2750 return main_method_reference_->AsProcedure(); | |
| 2751 } | |
| 2752 CanonicalName* canonical_name_root() { return canonical_name_root_; } | 2743 CanonicalName* canonical_name_root() { return canonical_name_root_; } |
| 2753 MallocGrowableArray<MallocGrowableArray<intptr_t>*> valid_token_positions; | 2744 MallocGrowableArray<MallocGrowableArray<intptr_t>*> valid_token_positions; |
| 2754 MallocGrowableArray<MallocGrowableArray<intptr_t>*> yield_token_positions; | 2745 MallocGrowableArray<MallocGrowableArray<intptr_t>*> yield_token_positions; |
| 2755 | 2746 |
| 2756 private: | 2747 private: |
| 2757 Program() {} | 2748 Program() {} |
| 2758 | 2749 |
| 2759 Child<CanonicalName> canonical_name_root_; | 2750 Child<CanonicalName> canonical_name_root_; |
| 2760 List<Library> libraries_; | 2751 List<Library> libraries_; |
| 2761 Ref<CanonicalName> main_method_reference_; | 2752 Ref<CanonicalName> main_method_reference_; // Procedure. |
| 2762 StringTable string_table_; | 2753 StringTable string_table_; |
| 2763 StringTable source_uri_table_; | 2754 StringTable source_uri_table_; |
| 2764 SourceTable source_table_; | 2755 SourceTable source_table_; |
| 2765 | 2756 |
| 2766 DISALLOW_COPY_AND_ASSIGN(Program); | 2757 DISALLOW_COPY_AND_ASSIGN(Program); |
| 2767 }; | 2758 }; |
| 2768 | 2759 |
| 2769 | 2760 |
| 2770 class Reference : public AllStatic { | 2761 class Reference : public AllStatic { |
| 2771 public: | 2762 public: |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3006 } | 2997 } |
| 3007 virtual void VisitFunctionType(FunctionType* node) { | 2998 virtual void VisitFunctionType(FunctionType* node) { |
| 3008 VisitDefaultDartType(node); | 2999 VisitDefaultDartType(node); |
| 3009 } | 3000 } |
| 3010 virtual void VisitTypeParameterType(TypeParameterType* node) { | 3001 virtual void VisitTypeParameterType(TypeParameterType* node) { |
| 3011 VisitDefaultDartType(node); | 3002 VisitDefaultDartType(node); |
| 3012 } | 3003 } |
| 3013 }; | 3004 }; |
| 3014 | 3005 |
| 3015 | 3006 |
| 3016 class ClassReferenceVisitor { | |
| 3017 public: | |
| 3018 virtual ~ClassReferenceVisitor() {} | |
| 3019 | |
| 3020 virtual void VisitDefaultClassReference(Class* node) = 0; | |
| 3021 virtual void VisitNormalClassReference(NormalClass* node) { | |
| 3022 VisitDefaultClassReference(node); | |
| 3023 } | |
| 3024 virtual void VisitMixinClassReference(MixinClass* node) { | |
| 3025 VisitDefaultClassReference(node); | |
| 3026 } | |
| 3027 }; | |
| 3028 | |
| 3029 | |
| 3030 class MemberReferenceVisitor { | |
| 3031 public: | |
| 3032 virtual ~MemberReferenceVisitor() {} | |
| 3033 | |
| 3034 virtual void VisitDefaultMemberReference(Member* node) = 0; | |
| 3035 virtual void VisitFieldReference(Field* node) { | |
| 3036 VisitDefaultMemberReference(node); | |
| 3037 } | |
| 3038 virtual void VisitConstructorReference(Constructor* node) { | |
| 3039 VisitDefaultMemberReference(node); | |
| 3040 } | |
| 3041 virtual void VisitProcedureReference(Procedure* node) { | |
| 3042 VisitDefaultMemberReference(node); | |
| 3043 } | |
| 3044 }; | |
| 3045 | |
| 3046 | |
| 3047 class TreeVisitor : public ExpressionVisitor, | 3007 class TreeVisitor : public ExpressionVisitor, |
| 3048 public StatementVisitor, | 3008 public StatementVisitor, |
| 3049 public MemberVisitor, | 3009 public MemberVisitor, |
| 3050 public ClassVisitor, | 3010 public ClassVisitor, |
| 3051 public InitializerVisitor { | 3011 public InitializerVisitor { |
| 3052 public: | 3012 public: |
| 3053 virtual ~TreeVisitor() {} | 3013 virtual ~TreeVisitor() {} |
| 3054 | 3014 |
| 3055 virtual void VisitDefaultTreeNode(TreeNode* node) = 0; | 3015 virtual void VisitDefaultTreeNode(TreeNode* node) = 0; |
| 3056 virtual void VisitDefaultStatement(Statement* node) { | 3016 virtual void VisitDefaultStatement(Statement* node) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 3076 virtual void VisitNamedExpression(NamedExpression* node) { | 3036 virtual void VisitNamedExpression(NamedExpression* node) { |
| 3077 VisitDefaultTreeNode(node); | 3037 VisitDefaultTreeNode(node); |
| 3078 } | 3038 } |
| 3079 virtual void VisitSwitchCase(SwitchCase* node) { VisitDefaultTreeNode(node); } | 3039 virtual void VisitSwitchCase(SwitchCase* node) { VisitDefaultTreeNode(node); } |
| 3080 virtual void VisitCatch(Catch* node) { VisitDefaultTreeNode(node); } | 3040 virtual void VisitCatch(Catch* node) { VisitDefaultTreeNode(node); } |
| 3081 virtual void VisitMapEntry(MapEntry* node) { VisitDefaultTreeNode(node); } | 3041 virtual void VisitMapEntry(MapEntry* node) { VisitDefaultTreeNode(node); } |
| 3082 virtual void VisitProgram(Program* node) { VisitDefaultTreeNode(node); } | 3042 virtual void VisitProgram(Program* node) { VisitDefaultTreeNode(node); } |
| 3083 }; | 3043 }; |
| 3084 | 3044 |
| 3085 | 3045 |
| 3086 class Visitor : public TreeVisitor, | 3046 class Visitor : public TreeVisitor, public DartTypeVisitor { |
| 3087 public DartTypeVisitor, | |
| 3088 public ClassReferenceVisitor, | |
| 3089 public MemberReferenceVisitor { | |
| 3090 public: | 3047 public: |
| 3091 virtual ~Visitor() {} | 3048 virtual ~Visitor() {} |
| 3092 | 3049 |
| 3093 virtual void VisitDefaultNode(Node* node) = 0; | 3050 virtual void VisitDefaultNode(Node* node) = 0; |
| 3094 virtual void VisitDefaultTreeNode(TreeNode* node) { VisitDefaultNode(node); } | 3051 virtual void VisitDefaultTreeNode(TreeNode* node) { VisitDefaultNode(node); } |
| 3095 virtual void VisitDefaultDartType(DartType* node) { VisitDefaultNode(node); } | 3052 virtual void VisitDefaultDartType(DartType* node) { VisitDefaultNode(node); } |
| 3096 virtual void VisitName(Name* node) { VisitDefaultNode(node); } | 3053 virtual void VisitName(Name* node) { VisitDefaultNode(node); } |
| 3097 virtual void VisitDefaultClassReference(Class* node) { | 3054 virtual void VisitDefaultClassReference(Class* node) { |
| 3098 VisitDefaultNode(node); | 3055 VisitDefaultNode(node); |
| 3099 } | 3056 } |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3187 | 3144 |
| 3188 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer, | 3145 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer, |
| 3189 intptr_t buffer_length); | 3146 intptr_t buffer_length); |
| 3190 | 3147 |
| 3191 | 3148 |
| 3192 | 3149 |
| 3193 } // namespace dart | 3150 } // namespace dart |
| 3194 | 3151 |
| 3195 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 3152 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
| 3196 #endif // RUNTIME_VM_KERNEL_H_ | 3153 #endif // RUNTIME_VM_KERNEL_H_ |
| OLD | NEW |