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 #include "vm/kernel_binary_flowgraph.h" | 5 #include "vm/kernel_binary_flowgraph.h" |
6 | 6 |
7 #include "vm/compiler.h" | 7 #include "vm/compiler.h" |
8 #include "vm/longjump.h" | 8 #include "vm/longjump.h" |
9 #include "vm/object_store.h" | 9 #include "vm/object_store.h" |
10 | 10 |
(...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1088 if (!simple) { | 1088 if (!simple) { |
1089 const intptr_t named_count = | 1089 const intptr_t named_count = |
1090 builder_->ReadListLength(); // read named_parameters list length. | 1090 builder_->ReadListLength(); // read named_parameters list length. |
1091 for (intptr_t i = 0; i < named_count; ++i) { | 1091 for (intptr_t i = 0; i < named_count; ++i) { |
1092 // read string reference (i.e. named_parameters[i].name). | 1092 // read string reference (i.e. named_parameters[i].name). |
1093 builder_->SkipStringReference(); | 1093 builder_->SkipStringReference(); |
1094 VisitDartType(); // read named_parameters[i].type. | 1094 VisitDartType(); // read named_parameters[i].type. |
1095 } | 1095 } |
1096 } | 1096 } |
1097 | 1097 |
| 1098 builder_->SkipListOfStrings(); // read positional parameter names. |
1098 VisitDartType(); // read return type. | 1099 VisitDartType(); // read return type. |
1099 } | 1100 } |
1100 | 1101 |
1101 void StreamingScopeBuilder::VisitTypeParameterType() { | 1102 void StreamingScopeBuilder::VisitTypeParameterType() { |
1102 Function& function = Function::Handle(Z, parsed_function_->function().raw()); | 1103 Function& function = Function::Handle(Z, parsed_function_->function().raw()); |
1103 while (function.IsClosureFunction()) { | 1104 while (function.IsClosureFunction()) { |
1104 function = function.parent_function(); | 1105 function = function.parent_function(); |
1105 } | 1106 } |
1106 | 1107 |
1107 if (function.IsFactory()) { | 1108 if (function.IsFactory()) { |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1563 dart::String& name = H.DartSymbol(builder_->ReadStringReference()); | 1564 dart::String& name = H.DartSymbol(builder_->ReadStringReference()); |
1564 BuildTypeInternal(); // read named_parameters[i].type. | 1565 BuildTypeInternal(); // read named_parameters[i].type. |
1565 if (result_.IsMalformed()) { | 1566 if (result_.IsMalformed()) { |
1566 result_ = AbstractType::dynamic_type().raw(); | 1567 result_ = AbstractType::dynamic_type().raw(); |
1567 } | 1568 } |
1568 parameter_types.SetAt(pos, result_); | 1569 parameter_types.SetAt(pos, result_); |
1569 parameter_names.SetAt(pos, name); | 1570 parameter_names.SetAt(pos, name); |
1570 } | 1571 } |
1571 } | 1572 } |
1572 | 1573 |
| 1574 builder_->SkipListOfStrings(); // read positional parameter names. |
| 1575 |
1573 BuildTypeInternal(); // read return type. | 1576 BuildTypeInternal(); // read return type. |
1574 if (result_.IsMalformed()) { | 1577 if (result_.IsMalformed()) { |
1575 result_ = AbstractType::dynamic_type().raw(); | 1578 result_ = AbstractType::dynamic_type().raw(); |
1576 } | 1579 } |
1577 signature_function.set_result_type(result_); | 1580 signature_function.set_result_type(result_); |
1578 | 1581 |
1579 Type& signature_type = | 1582 Type& signature_type = |
1580 Type::ZoneHandle(Z, signature_function.SignatureType()); | 1583 Type::ZoneHandle(Z, signature_function.SignatureType()); |
1581 | 1584 |
1582 if (finalize_) { | 1585 if (finalize_) { |
(...skipping 2213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3796 if (!simple) { | 3799 if (!simple) { |
3797 const intptr_t named_count = | 3800 const intptr_t named_count = |
3798 ReadListLength(); // read named_parameters list length. | 3801 ReadListLength(); // read named_parameters list length. |
3799 for (intptr_t i = 0; i < named_count; ++i) { | 3802 for (intptr_t i = 0; i < named_count; ++i) { |
3800 // read string reference (i.e. named_parameters[i].name). | 3803 // read string reference (i.e. named_parameters[i].name). |
3801 SkipStringReference(); | 3804 SkipStringReference(); |
3802 SkipDartType(); // read named_parameters[i].type. | 3805 SkipDartType(); // read named_parameters[i].type. |
3803 } | 3806 } |
3804 } | 3807 } |
3805 | 3808 |
| 3809 SkipListOfStrings(); // read positional parameter names. |
3806 SkipDartType(); // read return type. | 3810 SkipDartType(); // read return type. |
3807 } | 3811 } |
3808 | 3812 |
3809 void StreamingFlowGraphBuilder::SkipListOfExpressions() { | 3813 void StreamingFlowGraphBuilder::SkipListOfExpressions() { |
3810 intptr_t list_length = ReadListLength(); // read list length. | 3814 intptr_t list_length = ReadListLength(); // read list length. |
3811 for (intptr_t i = 0; i < list_length; ++i) { | 3815 for (intptr_t i = 0; i < list_length; ++i) { |
3812 SkipExpression(); // read ith expression. | 3816 SkipExpression(); // read ith expression. |
3813 } | 3817 } |
3814 } | 3818 } |
3815 | 3819 |
3816 void StreamingFlowGraphBuilder::SkipListOfDartTypes() { | 3820 void StreamingFlowGraphBuilder::SkipListOfDartTypes() { |
3817 intptr_t list_length = ReadListLength(); // read list length. | 3821 intptr_t list_length = ReadListLength(); // read list length. |
3818 for (intptr_t i = 0; i < list_length; ++i) { | 3822 for (intptr_t i = 0; i < list_length; ++i) { |
3819 SkipDartType(); // read ith type. | 3823 SkipDartType(); // read ith type. |
3820 } | 3824 } |
3821 } | 3825 } |
3822 | 3826 |
| 3827 void StreamingFlowGraphBuilder::SkipListOfStrings() { |
| 3828 intptr_t list_length = ReadListLength(); // read list length. |
| 3829 for (intptr_t i = 0; i < list_length; ++i) { |
| 3830 SkipStringReference(); // read ith string index. |
| 3831 } |
| 3832 } |
| 3833 |
3823 void StreamingFlowGraphBuilder::SkipListOfVariableDeclarations() { | 3834 void StreamingFlowGraphBuilder::SkipListOfVariableDeclarations() { |
3824 intptr_t list_length = ReadListLength(); // read list length. | 3835 intptr_t list_length = ReadListLength(); // read list length. |
3825 for (intptr_t i = 0; i < list_length; ++i) { | 3836 for (intptr_t i = 0; i < list_length; ++i) { |
3826 SkipVariableDeclaration(); // read ith variable declaration. | 3837 SkipVariableDeclaration(); // read ith variable declaration. |
3827 } | 3838 } |
3828 } | 3839 } |
3829 | 3840 |
3830 void StreamingFlowGraphBuilder::SkipTypeParametersList() { | 3841 void StreamingFlowGraphBuilder::SkipTypeParametersList() { |
3831 intptr_t list_length = ReadListLength(); // read list length. | 3842 intptr_t list_length = ReadListLength(); // read list length. |
3832 for (intptr_t i = 0; i < list_length; ++i) { | 3843 for (intptr_t i = 0; i < list_length; ++i) { |
(...skipping 3438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7271 } | 7282 } |
7272 } | 7283 } |
7273 | 7284 |
7274 return Array::Handle(Array::null()); | 7285 return Array::Handle(Array::null()); |
7275 } | 7286 } |
7276 | 7287 |
7277 } // namespace kernel | 7288 } // namespace kernel |
7278 } // namespace dart | 7289 } // namespace dart |
7279 | 7290 |
7280 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 7291 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
OLD | NEW |