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 4689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4700 } | 4700 } |
4701 cls ^= obj.raw(); | 4701 cls ^= obj.raw(); |
4702 if (is_patch) { | 4702 if (is_patch) { |
4703 // Preserve and reuse the original type parameters and bounds since the | 4703 // Preserve and reuse the original type parameters and bounds since the |
4704 // ones defined in the patch class will not be finalized. | 4704 // ones defined in the patch class will not be finalized. |
4705 orig_type_parameters = cls.type_parameters(); | 4705 orig_type_parameters = cls.type_parameters(); |
4706 cls = Class::New(library_, class_name, script_, declaration_pos); | 4706 cls = Class::New(library_, class_name, script_, declaration_pos); |
4707 } else { | 4707 } else { |
4708 // Not patching a class, but it has been found. This must be one of the | 4708 // Not patching a class, but it has been found. This must be one of the |
4709 // pre-registered classes from object.cc or a duplicate definition. | 4709 // pre-registered classes from object.cc or a duplicate definition. |
4710 if (!(cls.is_prefinalized() || | 4710 if (!(cls.is_prefinalized() || cls.IsClosureClass() || |
4711 RawObject::IsImplicitFieldClassId(cls.id()))) { | 4711 RawObject::IsImplicitFieldClassId(cls.id()))) { |
4712 ReportError(classname_pos, "class '%s' is already defined", | 4712 ReportError(classname_pos, "class '%s' is already defined", |
4713 class_name.ToCString()); | 4713 class_name.ToCString()); |
4714 } | 4714 } |
4715 // Pre-registered classes need their scripts connected at this time. | 4715 // Pre-registered classes need their scripts connected at this time. |
4716 cls.set_script(script_); | 4716 cls.set_script(script_); |
4717 cls.set_token_pos(declaration_pos); | 4717 cls.set_token_pos(declaration_pos); |
4718 } | 4718 } |
4719 } | 4719 } |
4720 ASSERT(!cls.IsNull()); | 4720 ASSERT(!cls.IsNull()); |
(...skipping 10353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15074 const ArgumentListNode& function_args, | 15074 const ArgumentListNode& function_args, |
15075 const LocalVariable* temp_for_last_arg, | 15075 const LocalVariable* temp_for_last_arg, |
15076 bool is_super_invocation) { | 15076 bool is_super_invocation) { |
15077 UNREACHABLE(); | 15077 UNREACHABLE(); |
15078 return NULL; | 15078 return NULL; |
15079 } | 15079 } |
15080 | 15080 |
15081 } // namespace dart | 15081 } // namespace dart |
15082 | 15082 |
15083 #endif // DART_PRECOMPILED_RUNTIME | 15083 #endif // DART_PRECOMPILED_RUNTIME |
OLD | NEW |