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

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

Issue 2973633002: [kernel] Change how TypeParameterType is calculated. (Closed)
Patch Set: longjmp instead of UNREACHABLE (+ rebase) Created 3 years, 4 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 | « pkg/kernel/lib/binary/ast_to_binary.dart ('k') | runtime/vm/kernel_binary_flowgraph.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) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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_BINARY_FLOWGRAPH_H_ 5 #ifndef RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_
6 #define RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ 6 #define RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_
7 7
8 #if !defined(DART_PRECOMPILED_RUNTIME) 8 #if !defined(DART_PRECOMPILED_RUNTIME)
9 9
10 #include <map> 10 #include <map>
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 50
51 class TypeParameterScope { 51 class TypeParameterScope {
52 public: 52 public:
53 TypeParameterScope(StreamingDartTypeTranslator* translator, 53 TypeParameterScope(StreamingDartTypeTranslator* translator,
54 intptr_t parameters_offset, 54 intptr_t parameters_offset,
55 intptr_t parameters_count) 55 intptr_t parameters_count)
56 : parameters_offset_(parameters_offset), 56 : parameters_offset_(parameters_offset),
57 parameters_count_(parameters_count), 57 parameters_count_(parameters_count),
58 outer_(translator->type_parameter_scope_), 58 outer_(translator->type_parameter_scope_),
59 translator_(translator) { 59 translator_(translator) {
60 outer_parameter_count_ = 0;
61 if (outer_ != NULL) {
62 outer_parameter_count_ =
63 outer_->outer_parameter_count_ + outer_->parameters_count_;
64 }
60 translator_->type_parameter_scope_ = this; 65 translator_->type_parameter_scope_ = this;
61 } 66 }
62 ~TypeParameterScope() { translator_->type_parameter_scope_ = outer_; } 67 ~TypeParameterScope() { translator_->type_parameter_scope_ = outer_; }
63 68
64 TypeParameterScope* outer() const { return outer_; } 69 TypeParameterScope* outer() const { return outer_; }
65 intptr_t parameters_offset() const { return parameters_offset_; } 70 intptr_t parameters_offset() const { return parameters_offset_; }
66 intptr_t parameters_count() const { return parameters_count_; } 71 intptr_t parameters_count() const { return parameters_count_; }
72 intptr_t outer_parameter_count() const { return outer_parameter_count_; }
67 73
68 private: 74 private:
69 intptr_t parameters_offset_; 75 intptr_t parameters_offset_;
70 intptr_t parameters_count_; 76 intptr_t parameters_count_;
77 intptr_t outer_parameter_count_;
71 TypeParameterScope* outer_; 78 TypeParameterScope* outer_;
72 StreamingDartTypeTranslator* translator_; 79 StreamingDartTypeTranslator* translator_;
73 }; 80 };
74 81
75 intptr_t FindTypeParameterIndex(intptr_t parameters_offset, 82 intptr_t FindTypeParameterIndex(intptr_t parameters_offset,
76 intptr_t parameters_count, 83 intptr_t parameters_count,
77 intptr_t look_for); 84 intptr_t look_for);
78 85
79 StreamingFlowGraphBuilder* builder_; 86 StreamingFlowGraphBuilder* builder_;
80 TranslationHelper& translation_helper_; 87 TranslationHelper& translation_helper_;
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 GrowableArray<intptr_t>* record_token_positions_in, 346 GrowableArray<intptr_t>* record_token_positions_in,
340 GrowableArray<intptr_t>* record_yield_positions_in); 347 GrowableArray<intptr_t>* record_yield_positions_in);
341 intptr_t SourceTableSize(); 348 intptr_t SourceTableSize();
342 String& SourceTableUriFor(intptr_t index); 349 String& SourceTableUriFor(intptr_t index);
343 String& GetSourceFor(intptr_t index); 350 String& GetSourceFor(intptr_t index);
344 Array& GetLineStartsFor(intptr_t index); 351 Array& GetLineStartsFor(intptr_t index);
345 352
346 private: 353 private:
347 void DiscoverEnclosingElements(Zone* zone, 354 void DiscoverEnclosingElements(Zone* zone,
348 const Function& function, 355 const Function& function,
349 Function* outermost_function, 356 Function* outermost_function);
350 intptr_t* outermost_kernel_offset,
351 intptr_t* parent_class_offset);
352 intptr_t GetParentOffset(intptr_t offset);
353 void GetTypeParameterInfoForClass(intptr_t class_offset,
354 intptr_t* type_paremeter_counts,
355 intptr_t* type_paremeter_offset);
356 357
357 void GetTypeParameterInfoForPossibleProcedure(
358 intptr_t outermost_kernel_offset,
359 bool* member_is_procedure,
360 bool* is_factory_procedure,
361 intptr_t* member_type_parameters,
362 intptr_t* member_type_parameters_offset_start);
363 /** 358 /**
364 * Will return kernel offset for parent class if reading a constructor. 359 * Will return kernel offset for parent class if reading a constructor.
365 * Will otherwise return -1. 360 * Will otherwise return -1.
366 */ 361 */
367 intptr_t ReadUntilFunctionNode(); 362 intptr_t ReadUntilFunctionNode();
368 StringIndex GetNameFromVariableDeclaration(intptr_t kernel_offset); 363 StringIndex GetNameFromVariableDeclaration(intptr_t kernel_offset);
369 364
370 FlowGraph* BuildGraphOfStaticFieldInitializer(); 365 FlowGraph* BuildGraphOfStaticFieldInitializer();
371 FlowGraph* BuildGraphOfFieldAccessor(LocalVariable* setter_value); 366 FlowGraph* BuildGraphOfFieldAccessor(LocalVariable* setter_value);
372 void SetupDefaultParameterValues(); 367 void SetupDefaultParameterValues();
(...skipping 1180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1553 private: 1548 private:
1554 StreamingFlowGraphBuilder* builder_; 1549 StreamingFlowGraphBuilder* builder_;
1555 intptr_t next_read_; 1550 intptr_t next_read_;
1556 }; 1551 };
1557 1552
1558 } // namespace kernel 1553 } // namespace kernel
1559 } // namespace dart 1554 } // namespace dart
1560 1555
1561 #endif // !defined(DART_PRECOMPILED_RUNTIME) 1556 #endif // !defined(DART_PRECOMPILED_RUNTIME)
1562 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ 1557 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_
OLDNEW
« no previous file with comments | « pkg/kernel/lib/binary/ast_to_binary.dart ('k') | runtime/vm/kernel_binary_flowgraph.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698