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

Side by Side Diff: runtime/vm/kernel.h

Issue 2781893004: Remove definitions from Kernel canonical names. (Closed)
Patch Set: Update test expectations. 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 unified diff | Download patch
« no previous file with comments | « runtime/tests/vm/vm.status ('k') | runtime/vm/kernel.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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_
OLDNEW
« no previous file with comments | « runtime/tests/vm/vm.status ('k') | runtime/vm/kernel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698