| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/class_finalizer.h" | 5 #include "vm/class_finalizer.h" |
| 6 | 6 |
| 7 #include "vm/flags.h" | 7 #include "vm/flags.h" |
| 8 #include "vm/heap.h" | 8 #include "vm/heap.h" |
| 9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
| 10 #include "vm/longjump.h" | 10 #include "vm/longjump.h" |
| (...skipping 1471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1482 } | 1482 } |
| 1483 | 1483 |
| 1484 | 1484 |
| 1485 /* Support for mixin typedef. | 1485 /* Support for mixin typedef. |
| 1486 Consider the following example: | 1486 Consider the following example: |
| 1487 | 1487 |
| 1488 class I<T> { } | 1488 class I<T> { } |
| 1489 class J<T> { } | 1489 class J<T> { } |
| 1490 class S<T> { } | 1490 class S<T> { } |
| 1491 class M<T> { } | 1491 class M<T> { } |
| 1492 typedef A<U, V> = Object with M<Map<U, V>> implements I<V>; | 1492 class A<U, V> = Object with M<Map<U, V>> implements I<V>; |
| 1493 typedef C<T, K> = S<T> with A<T, List<K>> implements J<K>; | 1493 class C<T, K> = S<T> with A<T, List<K>> implements J<K>; |
| 1494 | 1494 |
| 1495 Before the call to ApplyMixinTypedef, the VM has already synthesized 2 mixin | 1495 Before the call to ApplyMixinTypedef, the VM has already synthesized 2 mixin |
| 1496 application classes Object&M and S&A: | 1496 application classes Object&M and S&A: |
| 1497 | 1497 |
| 1498 Object&M<T> extends Object implements M<T> { ... members of M applied here ... } | 1498 Object&M<T> extends Object implements M<T> { ... members of M applied here ... } |
| 1499 A<U, V> extends Object&M<Map<U, V>> implements I<V> { } | 1499 A<U, V> extends Object&M<Map<U, V>> implements I<V> { } |
| 1500 | 1500 |
| 1501 S&A<T`, U, V> extends S<T`> implements A<U, V> { } | 1501 S&A<T`, U, V> extends S<T`> implements A<U, V> { } |
| 1502 C<T, K> extends S&A<T, T, List<K>> implements J<K> { } | 1502 C<T, K> extends S&A<T, T, List<K>> implements J<K> { } |
| 1503 | 1503 |
| (...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2651 expected_name ^= String::New("_offset"); | 2651 expected_name ^= String::New("_offset"); |
| 2652 ASSERT(String::EqualsIgnoringPrivateKey(name, expected_name)); | 2652 ASSERT(String::EqualsIgnoringPrivateKey(name, expected_name)); |
| 2653 field ^= fields_array.At(2); | 2653 field ^= fields_array.At(2); |
| 2654 ASSERT(field.Offset() == TypedDataView::length_offset()); | 2654 ASSERT(field.Offset() == TypedDataView::length_offset()); |
| 2655 name ^= field.name(); | 2655 name ^= field.name(); |
| 2656 ASSERT(name.Equals("length")); | 2656 ASSERT(name.Equals("length")); |
| 2657 #endif | 2657 #endif |
| 2658 } | 2658 } |
| 2659 | 2659 |
| 2660 } // namespace dart | 2660 } // namespace dart |
| OLD | NEW |