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 // 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 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
540 | 540 |
541 /** | 541 /** |
542 * Perform [invocation] on [reflectee]. | 542 * Perform [invocation] on [reflectee]. |
543 * Equivalent to | 543 * Equivalent to |
544 * | 544 * |
545 * this.invoke(invocation.memberName, | 545 * this.invoke(invocation.memberName, |
546 * invocation.positionalArguments, | 546 * invocation.positionalArguments, |
547 * invocation.namedArguments); | 547 * invocation.namedArguments); |
548 */ | 548 */ |
549 delegate(Invocation invocation); | 549 delegate(Invocation invocation); |
550 | |
551 /** | |
552 * Returns a closure for invoking the regular method named [name]. | |
553 * | |
554 * If [:type.instanceLookup(name):] returns a regular method, the result of | |
555 * this method is a closure equivalent to: | |
556 * | |
557 * (r1, .., rn, {p1: d1, ..., pk: dk}) { | |
558 * return this.invoke(name, [r1, .., rn], {#p1: p1, .., #pk: pk}); | |
559 * } | |
560 * | |
561 * if m has required parameters r1, ..., rn, and named parameters p1, ..., pk | |
562 * with defaults d1, ..., dk. | |
563 * | |
564 * (r1, .., rn, [p1 = d1, …, pk = dk]) { | |
565 * return this.invoke(name, [r1, .., rn, p1, .., pk]); | |
566 * } | |
567 * | |
568 * if m has required parameters r1, ..., rn, and optional positional | |
569 * parameters p1, ..., pk with defaults d1, ..., dk. | |
570 */ | |
gbracha
2013/10/03 00:58:54
See proposed modification to wording below. Appli
rmacnak
2013/10/03 16:58:07
Done.
| |
571 Function operator [](Symbol name); | |
572 | |
550 } | 573 } |
551 | 574 |
552 /** | 575 /** |
553 * A [ClosureMirror] reflects a closure. | 576 * A [ClosureMirror] reflects a closure. |
554 * | 577 * |
555 * A [ClosureMirror] provides access to its captured variables and | 578 * A [ClosureMirror] provides access to its captured variables and |
556 * provides the ability to execute its reflectee. | 579 * provides the ability to execute its reflectee. |
557 */ | 580 */ |
558 abstract class ClosureMirror implements InstanceMirror { | 581 abstract class ClosureMirror implements InstanceMirror { |
559 /** | 582 /** |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
685 * | 708 * |
686 * The equality holds if and only if | 709 * The equality holds if and only if |
687 * (1) [other] is a mirror of the same kind | 710 * (1) [other] is a mirror of the same kind |
688 * and | 711 * and |
689 * (2) The library being reflected by this mirror | 712 * (2) The library being reflected by this mirror |
690 * and the library being reflected by [other] | 713 * and the library being reflected by [other] |
691 * are | 714 * are |
692 * the same library in the same isolate. | 715 * the same library in the same isolate. |
693 */ | 716 */ |
694 bool operator == (other); | 717 bool operator == (other); |
718 | |
719 /** | |
720 * If [:declarations[name]:] is a regular method, the result of this method | |
721 * is a closure equivalent to: | |
722 * | |
723 * (r1, .., rn, {p1: d1, ..., pk: dk}) { | |
724 * return this.invoke(name, [r1, .., rn], {#p1: p1, .., #pk: pk}); | |
725 * } | |
726 * | |
727 * if m has required parameters r1, ..., rn, and named parameters p1, ..., pk | |
728 * with defaults d1, ..., dk. | |
729 * | |
730 * (r1, .., rn, [p1 = d1, …, pk = dk]) { | |
731 * return this.invoke(name, [r1, .., rn, p1, .., pk]); | |
732 * } | |
733 * | |
734 * if m has required parameters r1, ..., rn, and optional positional | |
735 * parameters p1, ..., pk with defaults d1, ..., dk. | |
736 */ | |
737 Function operator [](Symbol name); | |
695 } | 738 } |
696 | 739 |
697 /** | 740 /** |
698 * A [TypeMirror] reflects a Dart language class, typedef, | 741 * A [TypeMirror] reflects a Dart language class, typedef, |
699 * or type variable. | 742 * or type variable. |
700 */ | 743 */ |
701 abstract class TypeMirror implements DeclarationMirror { | 744 abstract class TypeMirror implements DeclarationMirror { |
702 } | 745 } |
703 | 746 |
704 /** | 747 /** |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
898 * The equality holds if and only if | 941 * The equality holds if and only if |
899 * (1) [other] is a mirror of the same kind | 942 * (1) [other] is a mirror of the same kind |
900 * and | 943 * and |
901 * (2) This mirror and [other] reflect the same class. | 944 * (2) This mirror and [other] reflect the same class. |
902 * | 945 * |
903 * Note that if the reflected class is an invocation of | 946 * Note that if the reflected class is an invocation of |
904 * a generic class,(2) implies that the reflected class | 947 * a generic class,(2) implies that the reflected class |
905 * and [other] have equal type arguments. | 948 * and [other] have equal type arguments. |
906 */ | 949 */ |
907 bool operator == (other); | 950 bool operator == (other); |
951 | |
952 /** | |
953 * If [:declarations[name]:] is a regular method, the result of this method | |
954 * is a closure equivalent to: | |
955 * | |
956 * (r1, .., rn, {p1: d1, ..., pk: dk}) { | |
957 * return this.invoke(name, [r1, .., rn], {#p1: p1, .., #pk: pk}); | |
958 * } | |
959 * | |
960 * if m has required parameters r1, ..., rn, and named parameters p1, ..., pk | |
961 * with defaults d1, ..., dk. | |
gbracha
2013/10/03 00:58:54
Otherwise, the result of this method is a closure
| |
962 * | |
963 * (r1, .., rn, [p1 = d1, …, pk = dk]) { | |
964 * return this.invoke(name, [r1, .., rn, p1, .., pk]); | |
965 * } | |
966 * | |
967 * if m has required parameters r1, ..., rn, and optional positional | |
968 * parameters p1, ..., pk with defaults d1, ..., dk. | |
969 */ | |
970 Function operator [](Symbol name); | |
908 } | 971 } |
909 | 972 |
910 /** | 973 /** |
911 * A [FunctionTypeMirror] represents the type of a function in the | 974 * A [FunctionTypeMirror] represents the type of a function in the |
912 * Dart language. | 975 * Dart language. |
913 */ | 976 */ |
914 abstract class FunctionTypeMirror implements ClassMirror { | 977 abstract class FunctionTypeMirror implements ClassMirror { |
915 /** | 978 /** |
916 * Returns the return type of the reflectee. | 979 * Returns the return type of the reflectee. |
917 */ | 980 */ |
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1347 * | 1410 * |
1348 * When used as metadata on an import of "dart:mirrors", this metadata does | 1411 * When used as metadata on an import of "dart:mirrors", this metadata does |
1349 * not apply to the library in which the annotation is used, but instead | 1412 * not apply to the library in which the annotation is used, but instead |
1350 * applies to the other libraries (all libraries if "*" is used). | 1413 * applies to the other libraries (all libraries if "*" is used). |
1351 */ | 1414 */ |
1352 final override; | 1415 final override; |
1353 | 1416 |
1354 const MirrorsUsed( | 1417 const MirrorsUsed( |
1355 {this.symbols, this.targets, this.metaTargets, this.override}); | 1418 {this.symbols, this.targets, this.metaTargets, this.override}); |
1356 } | 1419 } |
OLD | NEW |