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

Side by Side Diff: runtime/vm/raw_object.h

Issue 10696013: Consider upper bounds of type parameters in type checks. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 5 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 | Annotate | Revision Log
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 #ifndef VM_RAW_OBJECT_H_ 5 #ifndef VM_RAW_OBJECT_H_
6 #define VM_RAW_OBJECT_H_ 6 #define VM_RAW_OBJECT_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/globals.h" 9 #include "vm/globals.h"
10 #include "vm/token.h" 10 #include "vm/token.h"
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 376
377 RawObject** from() { return reinterpret_cast<RawObject**>(&ptr()->name_); } 377 RawObject** from() { return reinterpret_cast<RawObject**>(&ptr()->name_); }
378 RawString* name_; 378 RawString* name_;
379 RawArray* functions_; 379 RawArray* functions_;
380 RawArray* fields_; 380 RawArray* fields_;
381 RawGrowableObjectArray* closure_functions_; // Local functions and literals. 381 RawGrowableObjectArray* closure_functions_; // Local functions and literals.
382 RawArray* interfaces_; // Array of AbstractType. 382 RawArray* interfaces_; // Array of AbstractType.
383 RawScript* script_; 383 RawScript* script_;
384 RawLibrary* library_; 384 RawLibrary* library_;
385 RawTypeArguments* type_parameters_; // Array of TypeParameter. 385 RawTypeArguments* type_parameters_; // Array of TypeParameter.
386 RawTypeArguments* type_parameter_bounds_; // DynamicType if no bound.
387 RawType* super_type_; 386 RawType* super_type_;
388 RawObject* factory_class_; // UnresolvedClass (until finalization) or Class. 387 RawObject* factory_class_; // UnresolvedClass (until finalization) or Class.
389 RawFunction* signature_function_; // Associated function for signature class. 388 RawFunction* signature_function_; // Associated function for signature class.
390 RawArray* functions_cache_; // See class FunctionsCache. 389 RawArray* functions_cache_; // See class FunctionsCache.
391 RawArray* constants_; // Canonicalized values of this class. 390 RawArray* constants_; // Canonicalized values of this class.
392 RawArray* canonical_types_; // Canonicalized types of this class. 391 RawArray* canonical_types_; // Canonicalized types of this class.
393 RawCode* allocation_stub_; // Stub code for allocation of instances. 392 RawCode* allocation_stub_; // Stub code for allocation of instances.
394 RawObject** to() { 393 RawObject** to() {
395 return reinterpret_cast<RawObject**>(&ptr()->allocation_stub_); 394 return reinterpret_cast<RawObject**>(&ptr()->allocation_stub_);
396 } 395 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 465
467 class RawTypeParameter : public RawAbstractType { 466 class RawTypeParameter : public RawAbstractType {
468 private: 467 private:
469 RAW_HEAP_OBJECT_IMPLEMENTATION(TypeParameter); 468 RAW_HEAP_OBJECT_IMPLEMENTATION(TypeParameter);
470 469
471 RawObject** from() { 470 RawObject** from() {
472 return reinterpret_cast<RawObject**>(&ptr()->parameterized_class_); 471 return reinterpret_cast<RawObject**>(&ptr()->parameterized_class_);
473 } 472 }
474 RawClass* parameterized_class_; 473 RawClass* parameterized_class_;
475 RawString* name_; 474 RawString* name_;
476 RawObject** to() { return reinterpret_cast<RawObject**>(&ptr()->name_); } 475 RawAbstractType* bound_; // DynamicType if no explicit bound specified.
476 RawObject** to() { return reinterpret_cast<RawObject**>(&ptr()->bound_); }
477 intptr_t index_; 477 intptr_t index_;
478 intptr_t token_pos_; 478 intptr_t token_pos_;
479 int8_t type_state_; 479 int8_t type_state_;
480 }; 480 };
481 481
482 482
483 class RawInstantiatedType : public RawAbstractType { 483 class RawInstantiatedType : public RawAbstractType {
484 private: 484 private:
485 RAW_HEAP_OBJECT_IMPLEMENTATION(InstantiatedType); 485 RAW_HEAP_OBJECT_IMPLEMENTATION(InstantiatedType);
486 486
(...skipping 1029 matching lines...) Expand 10 before | Expand all | Expand 10 after
1516 kExternalUint64Array == kByteArray + 18 && 1516 kExternalUint64Array == kByteArray + 18 &&
1517 kExternalFloat32Array == kByteArray + 19 && 1517 kExternalFloat32Array == kByteArray + 19 &&
1518 kExternalFloat64Array == kByteArray + 20 && 1518 kExternalFloat64Array == kByteArray + 20 &&
1519 kClosure == kByteArray + 21); 1519 kClosure == kByteArray + 21);
1520 return (index >= kByteArray && index <= kClosure); 1520 return (index >= kByteArray && index <= kClosure);
1521 } 1521 }
1522 1522
1523 } // namespace dart 1523 } // namespace dart
1524 1524
1525 #endif // VM_RAW_OBJECT_H_ 1525 #endif // VM_RAW_OBJECT_H_
OLDNEW
« runtime/vm/parser.cc ('K') | « runtime/vm/parser.cc ('k') | runtime/vm/raw_object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698