| 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 // For the purposes of the mirrors library, we adopt a naming | 5 // For the purposes of the mirrors library, we adopt a naming |
| 6 // convention with respect to getters and setters. Specifically, for | 6 // convention with respect to getters and setters. Specifically, for |
| 7 // some variable or field... | 7 // some variable or field... |
| 8 // | 8 // |
| 9 // var myField; | 9 // var myField; |
| 10 // | 10 // |
| (...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 /** | 667 /** |
| 668 * A mirror on the original declaration of this type. | 668 * A mirror on the original declaration of this type. |
| 669 * | 669 * |
| 670 * For most classes, they are their own original declaration. For | 670 * For most classes, they are their own original declaration. For |
| 671 * generic classes, however, there is a distinction between the | 671 * generic classes, however, there is a distinction between the |
| 672 * original class declaration, which has unbound type variables, and | 672 * original class declaration, which has unbound type variables, and |
| 673 * the instantiations of generic classes, which have bound type | 673 * the instantiations of generic classes, which have bound type |
| 674 * variables. | 674 * variables. |
| 675 */ | 675 */ |
| 676 TypeMirror get originalDeclaration; | 676 TypeMirror get originalDeclaration; |
| 677 |
| 678 |
| 679 /** |
| 680 * Checks the subtype relationship, denoted by [:<::] in the language |
| 681 * specification. This is the type relationship used in [:is:] test checks. |
| 682 */ |
| 683 bool isSubtypeOf(TypeMirror other); |
| 684 |
| 685 /** |
| 686 * Checks the assignability relationship, denoted by [:<=>:] in the language |
| 687 * specification. This is the type relationship tested on assignment in |
| 688 * checked mode. |
| 689 */ |
| 690 bool isAssignableTo(TypeMirror other); |
| 677 } | 691 } |
| 678 | 692 |
| 679 /** | 693 /** |
| 680 * A [ClassMirror] reflects a Dart language class. | 694 * A [ClassMirror] reflects a Dart language class. |
| 681 */ | 695 */ |
| 682 abstract class ClassMirror implements TypeMirror, ObjectMirror { | 696 abstract class ClassMirror implements TypeMirror, ObjectMirror { |
| 683 /** | 697 /** |
| 684 * Returns true if this mirror reflects a non-generic class or an instantiated | 698 * Returns true if this mirror reflects a non-generic class or an instantiated |
| 685 * generic class in the current isolate. Otherwise, returns false. | 699 * generic class in the current isolate. Otherwise, returns false. |
| 686 */ | 700 */ |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 * | 836 * |
| 823 * (r1, ..., rn, [p1 = d1, ..., pk = dk]) { | 837 * (r1, ..., rn, [p1 = d1, ..., pk = dk]) { |
| 824 * return this.invoke(name, [r1, ..., rn, p1, ..., pk]); | 838 * return this.invoke(name, [r1, ..., rn, p1, ..., pk]); |
| 825 * } | 839 * } |
| 826 * | 840 * |
| 827 * if m has required parameters r1, ..., rn, and optional positional | 841 * if m has required parameters r1, ..., rn, and optional positional |
| 828 * parameters p1, ..., pk with defaults d1, ..., dk. Otherwise, an | 842 * parameters p1, ..., pk with defaults d1, ..., dk. Otherwise, an |
| 829 * [ArgumentError] is thrown. | 843 * [ArgumentError] is thrown. |
| 830 */ | 844 */ |
| 831 Function operator [](Symbol name); | 845 Function operator [](Symbol name); |
| 846 |
| 847 /** |
| 848 * Returns whether the class denoted by the receiver is a subclass of the |
| 849 * class denoted by the argument. |
| 850 * |
| 851 * Note that the subclass relationship is reflexive. |
| 852 */ |
| 853 bool isSubclassOf(ClassMirror other); |
| 832 } | 854 } |
| 833 | 855 |
| 834 /** | 856 /** |
| 835 * A [FunctionTypeMirror] represents the type of a function in the | 857 * A [FunctionTypeMirror] represents the type of a function in the |
| 836 * Dart language. | 858 * Dart language. |
| 837 */ | 859 */ |
| 838 abstract class FunctionTypeMirror implements ClassMirror { | 860 abstract class FunctionTypeMirror implements ClassMirror { |
| 839 /** | 861 /** |
| 840 * Returns the return type of the reflectee. | 862 * Returns the return type of the reflectee. |
| 841 */ | 863 */ |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1208 * | 1230 * |
| 1209 * When used as metadata on an import of "dart:mirrors", this metadata does | 1231 * When used as metadata on an import of "dart:mirrors", this metadata does |
| 1210 * not apply to the library in which the annotation is used, but instead | 1232 * not apply to the library in which the annotation is used, but instead |
| 1211 * applies to the other libraries (all libraries if "*" is used). | 1233 * applies to the other libraries (all libraries if "*" is used). |
| 1212 */ | 1234 */ |
| 1213 final override; | 1235 final override; |
| 1214 | 1236 |
| 1215 const MirrorsUsed( | 1237 const MirrorsUsed( |
| 1216 {this.symbols, this.targets, this.metaTargets, this.override}); | 1238 {this.symbols, this.targets, this.metaTargets, this.override}); |
| 1217 } | 1239 } |
| OLD | NEW |