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

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

Issue 2863493002: Support BottomType in the VM Kernel reader (Closed)
Patch Set: Created 3 years, 7 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 | « no previous file | runtime/vm/kernel.cc » ('j') | runtime/vm/kernel_to_il.cc » ('J')
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"
11 #include "vm/globals.h" 11 #include "vm/globals.h"
12 #include "vm/growable_array.h" 12 #include "vm/growable_array.h"
13 #include "vm/token_position.h" 13 #include "vm/token_position.h"
14 14
15 15
16 #define KERNEL_NODES_DO(M) \ 16 #define KERNEL_NODES_DO(M) \
17 M(Name) \ 17 M(Name) \
18 M(DartType) \ 18 M(DartType) \
19 M(InvalidType) \ 19 M(InvalidType) \
20 M(DynamicType) \ 20 M(DynamicType) \
21 M(VoidType) \ 21 M(VoidType) \
22 M(BottomType) \
22 M(InterfaceType) \ 23 M(InterfaceType) \
23 M(FunctionType) \ 24 M(FunctionType) \
24 M(TypeParameterType) \ 25 M(TypeParameterType) \
25 M(VectorType) \ 26 M(VectorType) \
26 M(TypedefType) 27 M(TypedefType)
27 28
28 #define KERNEL_TREE_NODES_DO(M) \ 29 #define KERNEL_TREE_NODES_DO(M) \
29 M(Library) \ 30 M(Library) \
30 M(Typedef) \ 31 M(Typedef) \
31 M(Class) \ 32 M(Class) \
(...skipping 2642 matching lines...) Expand 10 before | Expand all | Expand 10 after
2674 virtual void AcceptDartTypeVisitor(DartTypeVisitor* visitor); 2675 virtual void AcceptDartTypeVisitor(DartTypeVisitor* visitor);
2675 virtual void VisitChildren(Visitor* visitor); 2676 virtual void VisitChildren(Visitor* visitor);
2676 2677
2677 private: 2678 private:
2678 VoidType() {} 2679 VoidType() {}
2679 2680
2680 DISALLOW_COPY_AND_ASSIGN(VoidType); 2681 DISALLOW_COPY_AND_ASSIGN(VoidType);
2681 }; 2682 };
2682 2683
2683 2684
2685 class BottomType : public DartType {
2686 public:
2687 static BottomType* ReadFrom(Reader* reader);
2688
2689 virtual ~BottomType();
2690
2691 DEFINE_CASTING_OPERATIONS(BottomType);
2692
2693 virtual void AcceptDartTypeVisitor(DartTypeVisitor* visitor);
2694 virtual void VisitChildren(Visitor* visitor);
2695
2696 private:
2697 BottomType() {}
2698
2699 DISALLOW_COPY_AND_ASSIGN(BottomType);
2700 };
2701
2702
2684 class InterfaceType : public DartType { 2703 class InterfaceType : public DartType {
2685 public: 2704 public:
2686 static InterfaceType* ReadFrom(Reader* reader); 2705 static InterfaceType* ReadFrom(Reader* reader);
2687 static InterfaceType* ReadFrom(Reader* reader, bool _without_type_arguments_); 2706 static InterfaceType* ReadFrom(Reader* reader, bool _without_type_arguments_);
2688 2707
2689 explicit InterfaceType(intptr_t class_reference) 2708 explicit InterfaceType(intptr_t class_reference)
2690 : class_reference_(class_reference) {} 2709 : class_reference_(class_reference) {}
2691 virtual ~InterfaceType(); 2710 virtual ~InterfaceType();
2692 2711
2693 DEFINE_CASTING_OPERATIONS(InterfaceType); 2712 DEFINE_CASTING_OPERATIONS(InterfaceType);
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
3126 virtual ~DartTypeVisitor() {} 3145 virtual ~DartTypeVisitor() {}
3127 3146
3128 virtual void VisitDefaultDartType(DartType* node) = 0; 3147 virtual void VisitDefaultDartType(DartType* node) = 0;
3129 virtual void VisitInvalidType(InvalidType* node) { 3148 virtual void VisitInvalidType(InvalidType* node) {
3130 VisitDefaultDartType(node); 3149 VisitDefaultDartType(node);
3131 } 3150 }
3132 virtual void VisitDynamicType(DynamicType* node) { 3151 virtual void VisitDynamicType(DynamicType* node) {
3133 VisitDefaultDartType(node); 3152 VisitDefaultDartType(node);
3134 } 3153 }
3135 virtual void VisitVoidType(VoidType* node) { VisitDefaultDartType(node); } 3154 virtual void VisitVoidType(VoidType* node) { VisitDefaultDartType(node); }
3155 virtual void VisitBottomType(BottomType* node) { VisitDefaultDartType(node); }
3136 virtual void VisitInterfaceType(InterfaceType* node) { 3156 virtual void VisitInterfaceType(InterfaceType* node) {
3137 VisitDefaultDartType(node); 3157 VisitDefaultDartType(node);
3138 } 3158 }
3139 virtual void VisitFunctionType(FunctionType* node) { 3159 virtual void VisitFunctionType(FunctionType* node) {
3140 VisitDefaultDartType(node); 3160 VisitDefaultDartType(node);
3141 } 3161 }
3142 virtual void VisitTypeParameterType(TypeParameterType* node) { 3162 virtual void VisitTypeParameterType(TypeParameterType* node) {
3143 VisitDefaultDartType(node); 3163 VisitDefaultDartType(node);
3144 } 3164 }
3145 virtual void VisitVectorType(VectorType* node) { VisitDefaultDartType(node); } 3165 virtual void VisitVectorType(VectorType* node) { VisitDefaultDartType(node); }
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
3289 } // namespace kernel 3309 } // namespace kernel
3290 3310
3291 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer, 3311 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer,
3292 intptr_t buffer_length); 3312 intptr_t buffer_length);
3293 3313
3294 3314
3295 } // namespace dart 3315 } // namespace dart
3296 3316
3297 #endif // !defined(DART_PRECOMPILED_RUNTIME) 3317 #endif // !defined(DART_PRECOMPILED_RUNTIME)
3298 #endif // RUNTIME_VM_KERNEL_H_ 3318 #endif // RUNTIME_VM_KERNEL_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/kernel.cc » ('j') | runtime/vm/kernel_to_il.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698