| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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/parser.h" | 5 #include "vm/parser.h" |
| 6 #include "vm/flags.h" | 6 #include "vm/flags.h" |
| 7 | 7 |
| 8 #ifndef DART_PRECOMPILED_RUNTIME | 8 #ifndef DART_PRECOMPILED_RUNTIME |
| 9 | 9 |
| 10 #include "lib/invocation_mirror.h" | 10 #include "lib/invocation_mirror.h" |
| (...skipping 5608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5619 } | 5619 } |
| 5620 } | 5620 } |
| 5621 if ((CurrentToken() == Token::kEXTENDS) || | 5621 if ((CurrentToken() == Token::kEXTENDS) || |
| 5622 (!parameterizing_class && (CurrentToken() == Token::kSUPER))) { | 5622 (!parameterizing_class && (CurrentToken() == Token::kSUPER))) { |
| 5623 const bool is_lower_bound = CurrentToken() == Token::kSUPER; | 5623 const bool is_lower_bound = CurrentToken() == Token::kSUPER; |
| 5624 ConsumeToken(); | 5624 ConsumeToken(); |
| 5625 // A bound may refer to the owner of the type parameter it applies to, | 5625 // A bound may refer to the owner of the type parameter it applies to, |
| 5626 // i.e. to the class or function currently being parsed. | 5626 // i.e. to the class or function currently being parsed. |
| 5627 // Postpone resolution in order to avoid resolving the owner and its | 5627 // Postpone resolution in order to avoid resolving the owner and its |
| 5628 // type parameters, as they are not fully parsed yet. | 5628 // type parameters, as they are not fully parsed yet. |
| 5629 type_parameter_bound = ParseType(ClassFinalizer::kDoNotResolve); | 5629 type_parameter_bound = |
| 5630 ParseTypeOrFunctionType(false, ClassFinalizer::kDoNotResolve); |
| 5630 if (is_lower_bound) { | 5631 if (is_lower_bound) { |
| 5631 // TODO(regis): Handle 'super' differently than 'extends' if lower | 5632 // TODO(regis): Handle 'super' differently than 'extends' if lower |
| 5632 // bounds make it in the final specification and if run time support | 5633 // bounds make it in the final specification and if run time support |
| 5633 // for lower bounds is required. | 5634 // for lower bounds is required. |
| 5634 // For now, we parse but ignore lower bounds and only support upper | 5635 // For now, we parse but ignore lower bounds and only support upper |
| 5635 // bounds. | 5636 // bounds. |
| 5636 type_parameter_bound = I->object_store()->object_type(); | 5637 type_parameter_bound = I->object_store()->object_type(); |
| 5637 } | 5638 } |
| 5638 } else { | 5639 } else { |
| 5639 type_parameter_bound = I->object_store()->object_type(); | 5640 type_parameter_bound = I->object_store()->object_type(); |
| (...skipping 9673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15313 TokenPosition* start, | 15314 TokenPosition* start, |
| 15314 TokenPosition* end) { | 15315 TokenPosition* end) { |
| 15315 UNREACHABLE(); | 15316 UNREACHABLE(); |
| 15316 return false; | 15317 return false; |
| 15317 } | 15318 } |
| 15318 | 15319 |
| 15319 | 15320 |
| 15320 } // namespace dart | 15321 } // namespace dart |
| 15321 | 15322 |
| 15322 #endif // DART_PRECOMPILED_RUNTIME | 15323 #endif // DART_PRECOMPILED_RUNTIME |
| OLD | NEW |