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

Side by Side Diff: runtime/vm/object.cc

Issue 2811643004: Added missing canonicalization of typedef signature instantiated during (Closed)
Patch Set: Created 3 years, 8 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 | « runtime/vm/class_finalizer.cc ('k') | no next file » | 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) 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/object.h" 5 #include "vm/object.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/become.h" 10 #include "vm/become.h"
(...skipping 18168 matching lines...) Expand 10 before | Expand all | Expand 10 after
18179 bounded_type.InstantiateFrom(instantiator_type_arguments, bound_error, 18179 bounded_type.InstantiateFrom(instantiator_type_arguments, bound_error,
18180 instantiation_trail, bound_trail, space); 18180 instantiation_trail, bound_trail, space);
18181 // In case types of instantiator_type_arguments are not finalized 18181 // In case types of instantiator_type_arguments are not finalized
18182 // (or instantiated), then the instantiated_bounded_type is not finalized 18182 // (or instantiated), then the instantiated_bounded_type is not finalized
18183 // (or instantiated) either. 18183 // (or instantiated) either.
18184 // Note that instantiator_type_arguments must have the final length, though. 18184 // Note that instantiator_type_arguments must have the final length, though.
18185 } 18185 }
18186 if ((Isolate::Current()->type_checks()) && (bound_error != NULL) && 18186 if ((Isolate::Current()->type_checks()) && (bound_error != NULL) &&
18187 bound_error->IsNull()) { 18187 bound_error->IsNull()) {
18188 AbstractType& upper_bound = AbstractType::Handle(bound()); 18188 AbstractType& upper_bound = AbstractType::Handle(bound());
18189 ASSERT(upper_bound.IsFinalized());
18190 ASSERT(!upper_bound.IsObjectType() && !upper_bound.IsDynamicType()); 18189 ASSERT(!upper_bound.IsObjectType() && !upper_bound.IsDynamicType());
18191 AbstractType& instantiated_upper_bound = 18190 AbstractType& instantiated_upper_bound =
18192 AbstractType::Handle(upper_bound.raw()); 18191 AbstractType::Handle(upper_bound.raw());
18193 if (!upper_bound.IsInstantiated()) { 18192 if (upper_bound.IsFinalized() && !upper_bound.IsInstantiated()) {
18194 instantiated_upper_bound = 18193 instantiated_upper_bound =
18195 upper_bound.InstantiateFrom(instantiator_type_arguments, bound_error, 18194 upper_bound.InstantiateFrom(instantiator_type_arguments, bound_error,
18196 instantiation_trail, bound_trail, space); 18195 instantiation_trail, bound_trail, space);
18197 // The instantiated_upper_bound may not be finalized or instantiated. 18196 // The instantiated_upper_bound may not be finalized or instantiated.
18198 // See comment above. 18197 // See comment above.
18199 } 18198 }
18200 if (bound_error->IsNull()) { 18199 if (bound_error->IsNull()) {
18201 // Shortcut the F-bounded case where we have reached a fixpoint. 18200 // Shortcut the F-bounded case where we have reached a fixpoint.
18202 if (instantiated_bounded_type.Equals(bounded_type) && 18201 if (instantiated_bounded_type.Equals(bounded_type) &&
18203 instantiated_upper_bound.Equals(upper_bound)) { 18202 instantiated_upper_bound.Equals(upper_bound)) {
(...skipping 4880 matching lines...) Expand 10 before | Expand all | Expand 10 after
23084 return UserTag::null(); 23083 return UserTag::null();
23085 } 23084 }
23086 23085
23087 23086
23088 const char* UserTag::ToCString() const { 23087 const char* UserTag::ToCString() const {
23089 const String& tag_label = String::Handle(label()); 23088 const String& tag_label = String::Handle(label());
23090 return tag_label.ToCString(); 23089 return tag_label.ToCString();
23091 } 23090 }
23092 23091
23093 } // namespace dart 23092 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/class_finalizer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698