| 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 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 | 468 |
| 469 /** | 469 /** |
| 470 * Perform [invocation] on [reflectee]. | 470 * Perform [invocation] on [reflectee]. |
| 471 * Equivalent to | 471 * Equivalent to |
| 472 * | 472 * |
| 473 * this.invoke(invocation.memberName, | 473 * this.invoke(invocation.memberName, |
| 474 * invocation.positionalArguments, | 474 * invocation.positionalArguments, |
| 475 * invocation.namedArguments); | 475 * invocation.namedArguments); |
| 476 */ | 476 */ |
| 477 delegate(Invocation invocation); | 477 delegate(Invocation invocation); |
| 478 |
| 479 /** |
| 480 * Returns a closure for invoking the regular method named [name]. |
| 481 * |
| 482 * If [:type.instanceLookup(name):] returns a regular method m, the result of |
| 483 * this method is a closure equivalent to: |
| 484 * |
| 485 * (r1, ..., rn, {p1: d1, ..., pk: dk}) { |
| 486 * return this.invoke(name, [r1, ..., rn], {#p1: p1, ..., #pk: pk}); |
| 487 * } |
| 488 * |
| 489 * if m has required parameters r1, ..., rn, and named parameters p1, ..., pk |
| 490 * with defaults d1, ..., dk. The result of this method is a |
| 491 * closure equivalent to: |
| 492 * |
| 493 * (r1, ..., rn, [p1 = d1, ..., pk = dk]) { |
| 494 * return this.invoke(name, [r1, ..., rn, p1, ..., pk]); |
| 495 * } |
| 496 * |
| 497 * if m has required parameters r1, ..., rn, and optional positional |
| 498 * parameters p1, ..., pk with defaults d1, ..., dk. Otherwise, an |
| 499 * [ArgumentError] is thrown. |
| 500 */ |
| 501 Function operator [](Symbol name); |
| 478 } | 502 } |
| 479 | 503 |
| 480 /** | 504 /** |
| 481 * A [ClosureMirror] reflects a closure. | 505 * A [ClosureMirror] reflects a closure. |
| 482 * | 506 * |
| 483 * A [ClosureMirror] provides access to its captured variables and | 507 * A [ClosureMirror] provides access to its captured variables and |
| 484 * provides the ability to execute its reflectee. | 508 * provides the ability to execute its reflectee. |
| 485 */ | 509 */ |
| 486 abstract class ClosureMirror implements InstanceMirror { | 510 abstract class ClosureMirror implements InstanceMirror { |
| 487 /** | 511 /** |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 * | 583 * |
| 560 * The equality holds if and only if | 584 * The equality holds if and only if |
| 561 * (1) [other] is a mirror of the same kind | 585 * (1) [other] is a mirror of the same kind |
| 562 * and | 586 * and |
| 563 * (2) The library being reflected by this mirror | 587 * (2) The library being reflected by this mirror |
| 564 * and the library being reflected by [other] | 588 * and the library being reflected by [other] |
| 565 * are | 589 * are |
| 566 * the same library in the same isolate. | 590 * the same library in the same isolate. |
| 567 */ | 591 */ |
| 568 bool operator ==(other); | 592 bool operator ==(other); |
| 593 |
| 594 /** |
| 595 * If [:declarations[name]:] is a regular method m, the result of this method |
| 596 * is a closure equivalent to: |
| 597 * |
| 598 * (r1, ..., rn, {p1: d1, ..., pk: dk}) { |
| 599 * return this.invoke(name, [r1, ..., rn], {#p1: p1, ..., #pk: pk}); |
| 600 * } |
| 601 * |
| 602 * if m has required parameters r1, ..., rn, and named parameters p1, ..., pk |
| 603 * with defaults d1, ..., dk. The result of this method is a |
| 604 * closure equivalent to: |
| 605 * |
| 606 * (r1, ..., rn, [p1 = d1, ..., pk = dk]) { |
| 607 * return this.invoke(name, [r1, ..., rn, p1, ..., pk]); |
| 608 * } |
| 609 * |
| 610 * if m has required parameters r1, ..., rn, and optional positional |
| 611 * parameters p1, ..., pk with defaults d1, ..., dk. Otherwise, an |
| 612 * [ArgumentError] is thrown. |
| 613 */ |
| 614 Function operator [](Symbol name); |
| 569 } | 615 } |
| 570 | 616 |
| 571 /** | 617 /** |
| 572 * A [TypeMirror] reflects a Dart language class, typedef, | 618 * A [TypeMirror] reflects a Dart language class, typedef, |
| 573 * function type or type variable. | 619 * function type or type variable. |
| 574 */ | 620 */ |
| 575 abstract class TypeMirror implements DeclarationMirror { | 621 abstract class TypeMirror implements DeclarationMirror { |
| 576 /** | 622 /** |
| 577 * An immutable list with mirrors for all type variables for this type. | 623 * An immutable list with mirrors for all type variables for this type. |
| 578 * | 624 * |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 716 * The equality holds if and only if | 762 * The equality holds if and only if |
| 717 * (1) [other] is a mirror of the same kind | 763 * (1) [other] is a mirror of the same kind |
| 718 * and | 764 * and |
| 719 * (2) This mirror and [other] reflect the same class. | 765 * (2) This mirror and [other] reflect the same class. |
| 720 * | 766 * |
| 721 * Note that if the reflected class is an invocation of | 767 * Note that if the reflected class is an invocation of |
| 722 * a generic class,(2) implies that the reflected class | 768 * a generic class,(2) implies that the reflected class |
| 723 * and [other] have equal type arguments. | 769 * and [other] have equal type arguments. |
| 724 */ | 770 */ |
| 725 bool operator == (other); | 771 bool operator == (other); |
| 772 |
| 773 /** |
| 774 * If [:declarations[name]:] is a regular method m, the result of this method |
| 775 * is a closure equivalent to: |
| 776 * |
| 777 * (r1, ..., rn, {p1: d1, ..., pk: dk}) { |
| 778 * return this.invoke(name, [r1, ..., rn], {#p1: p1, ..., #pk: pk}); |
| 779 * } |
| 780 * |
| 781 * if m has required parameters r1, ..., rn, and named parameters p1, ..., pk |
| 782 * with defaults d1, ..., dk. The result of this method is a |
| 783 * closure equivalent to: |
| 784 * |
| 785 * (r1, ..., rn, [p1 = d1, ..., pk = dk]) { |
| 786 * return this.invoke(name, [r1, ..., rn, p1, ..., pk]); |
| 787 * } |
| 788 * |
| 789 * if m has required parameters r1, ..., rn, and optional positional |
| 790 * parameters p1, ..., pk with defaults d1, ..., dk. Otherwise, an |
| 791 * [ArgumentError] is thrown. |
| 792 */ |
| 793 Function operator [](Symbol name); |
| 726 } | 794 } |
| 727 | 795 |
| 728 /** | 796 /** |
| 729 * A [FunctionTypeMirror] represents the type of a function in the | 797 * A [FunctionTypeMirror] represents the type of a function in the |
| 730 * Dart language. | 798 * Dart language. |
| 731 */ | 799 */ |
| 732 abstract class FunctionTypeMirror implements ClassMirror { | 800 abstract class FunctionTypeMirror implements ClassMirror { |
| 733 /** | 801 /** |
| 734 * Returns the return type of the reflectee. | 802 * Returns the return type of the reflectee. |
| 735 */ | 803 */ |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1089 * | 1157 * |
| 1090 * When used as metadata on an import of "dart:mirrors", this metadata does | 1158 * When used as metadata on an import of "dart:mirrors", this metadata does |
| 1091 * not apply to the library in which the annotation is used, but instead | 1159 * not apply to the library in which the annotation is used, but instead |
| 1092 * applies to the other libraries (all libraries if "*" is used). | 1160 * applies to the other libraries (all libraries if "*" is used). |
| 1093 */ | 1161 */ |
| 1094 final override; | 1162 final override; |
| 1095 | 1163 |
| 1096 const MirrorsUsed( | 1164 const MirrorsUsed( |
| 1097 {this.symbols, this.targets, this.metaTargets, this.override}); | 1165 {this.symbols, this.targets, this.metaTargets, this.override}); |
| 1098 } | 1166 } |
| OLD | NEW |