| 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 | 6 |
| 7 #include "lib/invocation_mirror.h" | 7 #include "lib/invocation_mirror.h" |
| 8 #include "vm/bigint_operations.h" | 8 #include "vm/bigint_operations.h" |
| 9 #include "vm/class_finalizer.h" | 9 #include "vm/class_finalizer.h" |
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
| (...skipping 9508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9519 external_constructor_name.ToCString()); | 9519 external_constructor_name.ToCString()); |
| 9520 const Error& error = Error::Handle(type.malformed_error()); | 9520 const Error& error = Error::Handle(type.malformed_error()); |
| 9521 ErrorMsg(error); | 9521 ErrorMsg(error); |
| 9522 } | 9522 } |
| 9523 return ThrowNoSuchMethodError(call_pos, | 9523 return ThrowNoSuchMethodError(call_pos, |
| 9524 type_class, | 9524 type_class, |
| 9525 external_constructor_name, | 9525 external_constructor_name, |
| 9526 InvocationMirror::kConstructor, | 9526 InvocationMirror::kConstructor, |
| 9527 InvocationMirror::kMethod); | 9527 InvocationMirror::kMethod); |
| 9528 } else if (constructor.IsRedirectingFactory()) { | 9528 } else if (constructor.IsRedirectingFactory()) { |
| 9529 ClassFinalizer::ResolveRedirectingFactory(type_class, constructor); |
| 9529 Type& redirect_type = Type::Handle(constructor.RedirectionType()); | 9530 Type& redirect_type = Type::Handle(constructor.RedirectionType()); |
| 9530 if (!redirect_type.IsMalformed() && !redirect_type.IsInstantiated()) { | 9531 if (!redirect_type.IsMalformed() && !redirect_type.IsInstantiated()) { |
| 9531 // The type arguments of the redirection type are instantiated from the | 9532 // The type arguments of the redirection type are instantiated from the |
| 9532 // type arguments of the parsed type of the 'new' or 'const' expression. | 9533 // type arguments of the parsed type of the 'new' or 'const' expression. |
| 9533 Error& malformed_error = Error::Handle(); | 9534 Error& malformed_error = Error::Handle(); |
| 9534 redirect_type ^= redirect_type.InstantiateFrom(type_arguments, | 9535 redirect_type ^= redirect_type.InstantiateFrom(type_arguments, |
| 9535 &malformed_error); | 9536 &malformed_error); |
| 9536 if (!malformed_error.IsNull()) { | 9537 if (!malformed_error.IsNull()) { |
| 9537 redirect_type.set_malformed_error(malformed_error); | 9538 redirect_type.set_malformed_error(malformed_error); |
| 9538 } | 9539 } |
| (...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10208 void Parser::SkipQualIdent() { | 10209 void Parser::SkipQualIdent() { |
| 10209 ASSERT(IsIdentifier()); | 10210 ASSERT(IsIdentifier()); |
| 10210 ConsumeToken(); | 10211 ConsumeToken(); |
| 10211 if (CurrentToken() == Token::kPERIOD) { | 10212 if (CurrentToken() == Token::kPERIOD) { |
| 10212 ConsumeToken(); // Consume the kPERIOD token. | 10213 ConsumeToken(); // Consume the kPERIOD token. |
| 10213 ExpectIdentifier("identifier expected after '.'"); | 10214 ExpectIdentifier("identifier expected after '.'"); |
| 10214 } | 10215 } |
| 10215 } | 10216 } |
| 10216 | 10217 |
| 10217 } // namespace dart | 10218 } // namespace dart |
| OLD | NEW |