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

Side by Side Diff: sdk/lib/mirrors/mirrors.dart

Issue 1390813002: Format doc comments in mirrors, lines 480 through 1160 (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 /** 472 /**
473 * A mirror on the type of the reflectee. 473 * A mirror on the type of the reflectee.
474 * 474 *
475 * Returns a mirror on the actual class of the reflectee. 475 * Returns a mirror on the actual class of the reflectee.
476 * The class of the reflectee may differ from 476 * The class of the reflectee may differ from
477 * the object returned by invoking [runtimeType] on 477 * the object returned by invoking [runtimeType] on
478 * the reflectee. 478 * the reflectee.
479 */ 479 */
480 ClassMirror get type; 480 ClassMirror get type;
481 481
482 /** 482 /// Does [reflectee] contain the instance reflected by this mirror?
Lasse Reichstein Nielsen 2015/10/07 08:27:55 Reword to not be a question. And it's not entirely
srawlins 2015/10/07 10:50:51 Done.
483 * Does [reflectee] contain the instance reflected by this mirror? 483 ///
484 * This will always be true in the local case (reflecting instances 484 /// This will always be true in the local case (reflecting instances in the
485 * in the same isolate), but only true in the remote case if this 485 /// same isolate), but only true in the remote case if this mirror reflects a
486 * mirror reflects a simple value. 486 /// simple value.
487 * 487 ///
488 * A value is simple if one of the following holds: 488 /// A value is simple if one of the following holds:
489 * - the value is [:null:] 489 ///
490 * - the value is of type [num] 490 /// * the value is [:null:]
491 * - the value is of type [bool] 491 /// * the value is of type [num]
492 * - the value is of type [String] 492 /// * the value is of type [bool]
493 */ 493 /// * the value is of type [String]
494 bool get hasReflectee; 494 bool get hasReflectee;
495 495
496 /** 496 /**
497 * If the [InstanceMirror] reflects an instance it is meaningful to 497 * If the [InstanceMirror] reflects an instance it is meaningful to
498 * have a local reference to, we provide access to the actual 498 * have a local reference to, we provide access to the actual
499 * instance here. 499 * instance here.
500 * 500 *
501 * If you access [reflectee] when [hasReflectee] is false, an 501 * If you access [reflectee] when [hasReflectee] is false, an
502 * exception is thrown. 502 * exception is thrown.
503 */ 503 */
504 get reflectee; 504 get reflectee;
505 505
506 /** 506 /// Returns true if this mirror is equal to [other].
507 * Returns true if this mirror is equal to [other]. 507 ///
508 * The equality holds if and only if 508 /// The equality holds if and only if
509 * (1) [other] is a mirror of the same kind 509 ///
510 * and 510 /// 1. [other] is a mirror of the same kind, and
511 * (2) either 511 /// 2. either
512 * (a) [hasReflectee] is true and so is 512 ///
513 * [:identical(reflectee, other.reflectee):] 513 /// a. [hasReflectee] is true and so is
514 * or 514 /// [:identical(reflectee, other.reflectee):], or
515 * (b) the remote objects reflected by this mirror and 515 ///
516 * by [other] are identical. 516 /// b. the remote objects reflected by this mirror and by [other] are
517 */ 517 /// identical.
518 bool operator == (other); 518 bool operator == (other);
519 } 519 }
520 520
521 /** 521 /**
522 * A [ClosureMirror] reflects a closure. 522 * A [ClosureMirror] reflects a closure.
523 * 523 *
524 * A [ClosureMirror] provides the ability to execute its reflectee and 524 * A [ClosureMirror] provides the ability to execute its reflectee and
525 * introspect its function. 525 * introspect its function.
526 */ 526 */
527 abstract class ClosureMirror implements InstanceMirror { 527 abstract class ClosureMirror implements InstanceMirror {
(...skipping 11 matching lines...) Expand all
539 * [:type.declarations[#call]:]. But the Dart language model does not require 539 * [:type.declarations[#call]:]. But the Dart language model does not require
540 * this. A more typical implementation involves a single closure class for 540 * this. A more typical implementation involves a single closure class for
541 * each type signature, where the call method dispatches to a function held 541 * each type signature, where the call method dispatches to a function held
542 * in the closure rather the call method 542 * in the closure rather the call method
543 * directly implementing the closure body. So one cannot rely on closures from 543 * directly implementing the closure body. So one cannot rely on closures from
544 * distinct closure expressions having distinct classes ([:type:]), but one 544 * distinct closure expressions having distinct classes ([:type:]), but one
545 * can rely on them having distinct functions ([:function:]). 545 * can rely on them having distinct functions ([:function:]).
546 */ 546 */
547 MethodMirror get function; 547 MethodMirror get function;
548 548
549 /** 549 /// Executes the closure and returns a mirror on the result.
550 * Executes the closure and returns a mirror on the result. 550 ///
551 * Let *f* be the closure reflected by this mirror, 551 /// Let *f* be the closure reflected by this mirror, let *a1, ..., an* be the
552 * let *a1, ..., an* be the elements of [positionalArguments] 552 /// elements of [positionalArguments], let *k1, ..., km* be the identifiers
553 * let *k1, ..., km* be the identifiers denoted by the elements of 553 /// denoted by the elements of [namedArguments.keys], and let *v1, ..., vm* be
554 * [namedArguments.keys] 554 /// the elements of [namedArguments.values]. Then this method will perform the
555 * and let *v1, ..., vm* be the elements of [namedArguments.values]. 555 /// method invocation *f(a1, ..., an, k1: v1, ..., km: vm)*
Lasse Reichstein Nielsen 2015/10/07 08:27:55 The line breaking of the original was actually ver
srawlins 2015/10/07 10:50:51 Done.
556 * Then this method will perform the method invocation 556 ///
557 * *f(a1, ..., an, k1: v1, ..., km: vm)* 557 /// If the invocation returns a result *r*, this method returns the result of
558 * If the invocation returns a result *r*, this method returns 558 /// calling [reflect]\(*r*\).
559 * the result of calling [reflect]\(*r*\). 559 ///
560 * If the invocation causes a compilation error 560 /// If the invocation causes a compilation error, the effect is the same as if
561 * the effect is the same as if a non-reflective compilation error 561 /// a non-reflective compilation error had been encountered.
562 * had been encountered. 562 ///
563 * If the invocation throws an exception *e* (that it does not catch) 563 /// If the invocation throws an exception *e* (that it does not catch), this
564 * this method throws *e*. 564 /// method throws *e*.
565 */
566 InstanceMirror apply(List positionalArguments, 565 InstanceMirror apply(List positionalArguments,
567 [Map<Symbol, dynamic> namedArguments]); 566 [Map<Symbol, dynamic> namedArguments]);
568 } 567 }
569 568
570 /** 569 /**
571 * A [LibraryMirror] reflects a Dart language library, providing 570 * A [LibraryMirror] reflects a Dart language library, providing
572 * access to the variables, functions, and classes of the 571 * access to the variables, functions, and classes of the
573 * library. 572 * library.
574 */ 573 */
575 abstract class LibraryMirror implements DeclarationMirror, ObjectMirror { 574 abstract class LibraryMirror implements DeclarationMirror, ObjectMirror {
576 /** 575 /**
577 * The absolute uri of the library. 576 * The absolute uri of the library.
578 */ 577 */
579 Uri get uri; 578 Uri get uri;
580 579
581 /** 580 /**
582 * Returns an immutable map of the declarations actually given in the library. 581 * Returns an immutable map of the declarations actually given in the library.
583 * 582 *
584 * This map includes all regular methods, getters, setters, fields, classes 583 * This map includes all regular methods, getters, setters, fields, classes
585 * and typedefs actually declared in the library. The map is keyed by the 584 * and typedefs actually declared in the library. The map is keyed by the
586 * simple names of the declarations. 585 * simple names of the declarations.
587 */ 586 */
588 Map<Symbol, DeclarationMirror> get declarations; 587 Map<Symbol, DeclarationMirror> get declarations;
589 588
590 /** 589 /// Returns [:true:] if this mirror is equal to [other].
591 * Returns [:true:] if this mirror is equal to [other]. 590 ///
592 * Otherwise returns [:false:]. 591 /// Otherwise returns [:false:].
593 * 592 ///
594 * The equality holds if and only if 593 /// The equality holds if and only if
595 * (1) [other] is a mirror of the same kind 594 ///
596 * and 595 /// 1. [other] is a mirror of the same kind, and
597 * (2) The library being reflected by this mirror 596 /// 2. The library being reflected by this mirror and the library being
598 * and the library being reflected by [other] 597 /// reflected by [other] are the same library in the same isolate.
599 * are
600 * the same library in the same isolate.
601 */
602 bool operator ==(other); 598 bool operator ==(other);
603 599
604 /** 600 /**
605 * Returns a list of the imports and exports in this library; 601 * Returns a list of the imports and exports in this library;
606 */ 602 */
607 List<LibraryDependencyMirror> get libraryDependencies; 603 List<LibraryDependencyMirror> get libraryDependencies;
608 } 604 }
609 605
610 /// A mirror on an import or export declaration. 606 /// A mirror on an import or export declaration.
611 abstract class LibraryDependencyMirror implements Mirror { 607 abstract class LibraryDependencyMirror implements Mirror {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 * 714 *
719 * For most classes, they are their own original declaration. For 715 * For most classes, they are their own original declaration. For
720 * generic classes, however, there is a distinction between the 716 * generic classes, however, there is a distinction between the
721 * original class declaration, which has unbound type variables, and 717 * original class declaration, which has unbound type variables, and
722 * the instantiations of generic classes, which have bound type 718 * the instantiations of generic classes, which have bound type
723 * variables. 719 * variables.
724 */ 720 */
725 TypeMirror get originalDeclaration; 721 TypeMirror get originalDeclaration;
726 722
727 723
728 /** 724 /// Checks the subtype relationship, denoted by [:<::] in the language
Lasse Reichstein Nielsen 2015/10/07 08:27:55 You can change [:...:] to `...` too, while you are
srawlins 2015/10/07 10:50:51 Done.
729 * Checks the subtype relationship, denoted by [:<::] in the language 725 /// specification.
730 * specification. This is the type relationship used in [:is:] test checks. 726 ///
731 */ 727 /// This is the type relationship used in [:is:] test checks.
732 bool isSubtypeOf(TypeMirror other); 728 bool isSubtypeOf(TypeMirror other);
733 729
734 /** 730 /// Checks the assignability relationship, denoted by [:<=>:] in the language
735 * Checks the assignability relationship, denoted by [:<=>:] in the language 731 /// specification.
736 * specification. This is the type relationship tested on assignment in 732 ///
737 * checked mode. 733 /// This is the type relationship tested on assignment in checked mode.
738 */
739 bool isAssignableTo(TypeMirror other); 734 bool isAssignableTo(TypeMirror other);
740 } 735 }
741 736
742 /** 737 /**
743 * A [ClassMirror] reflects a Dart language class. 738 * A [ClassMirror] reflects a Dart language class.
744 */ 739 */
745 abstract class ClassMirror implements TypeMirror, ObjectMirror { 740 abstract class ClassMirror implements TypeMirror, ObjectMirror {
746 /** 741 /**
747 * A mirror on the superclass on the reflectee. 742 * A mirror on the superclass on the reflectee.
748 * 743 *
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 * 792 *
798 * The intent is to capture those members that constitute the API of a class. 793 * The intent is to capture those members that constitute the API of a class.
799 * Hence fields are not included, but the getters and setters implicitly 794 * Hence fields are not included, but the getters and setters implicitly
800 * introduced by fields are included. 795 * introduced by fields are included.
801 * 796 *
802 * The map is keyed by the simple names of the members. 797 * The map is keyed by the simple names of the members.
803 */ 798 */
804 Map<Symbol, MethodMirror> get staticMembers; 799 Map<Symbol, MethodMirror> get staticMembers;
805 800
806 801
807 /** 802 /// The mixin of this class.
808 * The mixin of this class. 803 ///
809 * If this class is the result of a mixin application of the 804 /// If this class is the result of a mixin application of the form S with M,
810 * form S with M, returns a class mirror on M. 805 /// returns a class mirror on M. Otherwise returns a class mirror on
811 * Otherwise returns a class mirror on [reflectee]. 806 /// [reflectee].
812 */
813 ClassMirror get mixin; 807 ClassMirror get mixin;
814 808
815 // TODO(ahe): What about: 809 // TODO(ahe): What about:
816 // /// Finds the instance member named [name] declared or inherited in the 810 // /// Finds the instance member named [name] declared or inherited in the
817 // /// reflected class. 811 // /// reflected class.
818 // DeclarationMirror instanceLookup(Symbol name); 812 // DeclarationMirror instanceLookup(Symbol name);
819 813
820 /** 814 /// Invokes the named constructor and returns a mirror on the result.
821 * Invokes the named constructor and returns a mirror on the result. 815 ///
822 * 816 /// Let *c* be the class reflected by this mirror, let *a1, ..., an* be the
823 * Let *c* be the class reflected by this mirror 817 /// elements of [positionalArguments], let *k1, ..., km* be the identifiers
824 * let *a1, ..., an* be the elements of [positionalArguments] 818 /// denoted by the elements of [namedArguments.keys], and let *v1, ..., vm*
825 * let *k1, ..., km* be the identifiers denoted by the elements of 819 /// be the elements of [namedArguments.values].
Lasse Reichstein Nielsen 2015/10/07 08:27:55 Again a reflow that makes reading/editing harder.
srawlins 2015/10/07 10:50:51 Done.
826 * [namedArguments.keys] 820 ///
827 * and let *v1, ..., vm* be the elements of [namedArguments.values]. 821 /// If [constructorName] was created from the empty string, then this method
828 * If [constructorName] was created from the empty string 822 /// will execute the instance creation expression
829 * Then this method will execute the instance creation expression 823 /// *new c(a1, ..., an, k1: v1, ..., km: vm)* in a scope that has access to
830 * *new c(a1, ..., an, k1: v1, ..., km: vm)* 824 /// the private members of *c*.
831 * in a scope that has access to the private members 825 ///
832 * of *c*. Otherwise, let 826 /// Otherwise, let *f* be the simple name of the constructor denoted by
833 * *f* be the simple name of the constructor denoted by [constructorName] 827 /// [constructorName]. Then this method will execute the instance creation
834 * Then this method will execute the instance creation expression 828 /// expression *new c.f(a1, ..., an, k1: v1, ..., km: vm)* in a scope that has
835 * *new c.f(a1, ..., an, k1: v1, ..., km: vm)* 829 /// access to the private members of *c*.
836 * in a scope that has access to the private members 830 ///
837 * of *c*. 831 /// In either case:
838 * In either case: 832 ///
839 * If the expression evaluates to a result *r*, this method returns 833 /// * If the expression evaluates to a result *r*, this method returns the
840 * the result of calling [reflect]\(*r*\). 834 /// result of calling [reflect]\(*r*\).
841 * If evaluating the expression causes a compilation error 835 /// * If evaluating the expression causes a compilation error, the effect is
842 * the effect is the same as if a non-reflective compilation error 836 /// the same as if a non-reflective compilation error had been encountered.
843 * had been encountered. 837 /// * If evaluating the expression throws an exception *e* (that it does not
844 * If evaluating the expression throws an exception *e* 838 /// catch), this method throws *e*.
845 * (that it does not catch)
846 * this method throws *e*.
847 */
848 InstanceMirror newInstance(Symbol constructorName, 839 InstanceMirror newInstance(Symbol constructorName,
849 List positionalArguments, 840 List positionalArguments,
850 [Map<Symbol,dynamic> namedArguments]); 841 [Map<Symbol,dynamic> namedArguments]);
851 842
852 /** 843 /// Returns [:true:] if this mirror is equal to [other].
853 * Returns [:true:] if this mirror is equal to [other]. 844 ///
854 * Otherwise returns [:false:]. 845 /// Otherwise returns [:false:].
Lasse Reichstein Nielsen 2015/10/07 08:27:55 Maybe replace by: "Whether [other] is a [ClassMirr
srawlins 2015/10/07 10:50:51 Done.
855 * 846 ///
856 * The equality holds if and only if 847 /// The equality holds if and only if
857 * (1) [other] is a mirror of the same kind 848 ///
858 * and 849 /// 1. [other] is a mirror of the same kind, and
859 * (2) This mirror and [other] reflect the same class. 850 /// 2. This mirror and [other] reflect the same class.
860 * 851 ///
861 * Note that if the reflected class is an invocation of 852 /// Note that if the reflected class is an invocation of a generic class, 2.
862 * a generic class,(2) implies that the reflected class 853 /// implies that the reflected class and [other] have equal type arguments.
863 * and [other] have equal type arguments.
864 */
865 bool operator == (other); 854 bool operator == (other);
866 855
867 /** 856 /**
868 * Returns whether the class denoted by the receiver is a subclass of the 857 * Returns whether the class denoted by the receiver is a subclass of the
869 * class denoted by the argument. 858 * class denoted by the argument.
870 * 859 *
871 * Note that the subclass relationship is reflexive. 860 * Note that the subclass relationship is reflexive.
872 */ 861 */
873 bool isSubclassOf(ClassMirror other); 862 bool isSubclassOf(ClassMirror other);
874 } 863 }
(...skipping 14 matching lines...) Expand all
889 List<ParameterMirror> get parameters; 878 List<ParameterMirror> get parameters;
890 879
891 /** 880 /**
892 * A mirror on the [:call:] method for the reflectee. 881 * A mirror on the [:call:] method for the reflectee.
893 */ 882 */
894 // This is only here because in the past the VM did not implement a call 883 // This is only here because in the past the VM did not implement a call
895 // method on closures. 884 // method on closures.
896 MethodMirror get callMethod; 885 MethodMirror get callMethod;
897 } 886 }
898 887
899 /** 888 /// A [TypeVariableMirror] represents a type parameter of a generic type.
900 * A [TypeVariableMirror] represents a type parameter of a generic
901 * type.
902 */
903 abstract class TypeVariableMirror extends TypeMirror { 889 abstract class TypeVariableMirror extends TypeMirror {
904 /** 890 /**
905 * A mirror on the type that is the upper bound of this type variable. 891 * A mirror on the type that is the upper bound of this type variable.
906 */ 892 */
907 TypeMirror get upperBound; 893 TypeMirror get upperBound;
908 894
909 /** 895 /**
910 * Is the reflectee static? 896 * Is the reflectee static?
911 * 897 *
912 * For the purposes of the mirrors library, type variables are considered 898 * For the purposes of the mirrors library, type variables are considered
913 * non-static. 899 * non-static.
914 */ 900 */
915 bool get isStatic; 901 bool get isStatic;
916 902
917 /** 903 /// Returns [:true:] if this mirror is equal to [other].
918 * Returns [:true:] if this mirror is equal to [other]. 904 ///
919 * Otherwise returns [:false:]. 905 /// Otherwise returns [:false:].
Lasse Reichstein Nielsen 2015/10/07 08:27:55 Again, maybe change to "Whether [other] is a [Type
srawlins 2015/10/07 10:50:51 Done.
920 * 906 ///
921 * The equality holds if and only if 907 /// The equality holds if and only if
922 * (1) [other] is a mirror of the same kind 908 ///
923 * and 909 /// 1. [other] is a mirror of the same kind, and
924 * (2) [:simpleName == other.simpleName:] and 910 /// 2. [:simpleName == other.simpleName:] and [:owner == other.owner:].
925 * [:owner == other.owner:]. 911 bool operator == (other);
926 */
927 bool operator == (other);
928 } 912 }
929 913
930 /** 914 /**
931 * A [TypedefMirror] represents a typedef in a Dart language program. 915 * A [TypedefMirror] represents a typedef in a Dart language program.
932 */ 916 */
933 abstract class TypedefMirror implements TypeMirror { 917 abstract class TypedefMirror implements TypeMirror {
934 /** 918 /// The defining type for this typedef.
935 * The defining type for this typedef. 919 ///
936 * If the the type referred to by the reflectee is a function type 920 /// If the the type referred to by the reflectee is a function type *F*, the
937 * *F*, the result will be [:FunctionTypeMirror:] reflecting *F* 921 /// result will be [:FunctionTypeMirror:] reflecting *F* which is abstract
938 * which is abstract and has an abstract method [:call:] whose 922 /// and has an abstract method [:call:] whose signature corresponds to *F*.
939 * signature corresponds to *F*. 923 /// For instance [:void f(int):] is the referent for [:typedef void f(int):].
940 *
941 * For instance [:void f(int):] is the referent for [:typedef void f(int):].
942 */
943 FunctionTypeMirror get referent; 924 FunctionTypeMirror get referent;
944 } 925 }
945 926
946 /** 927 /**
947 * A [MethodMirror] reflects a Dart language function, method, 928 * A [MethodMirror] reflects a Dart language function, method,
948 * constructor, getter, or setter. 929 * constructor, getter, or setter.
949 */ 930 */
950 abstract class MethodMirror implements DeclarationMirror { 931 abstract class MethodMirror implements DeclarationMirror {
951 /** 932 /**
952 * A mirror on the return type for the reflectee. 933 * A mirror on the return type for the reflectee.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 /** 1019 /**
1039 * Is the reflectee a redirecting constructor? 1020 * Is the reflectee a redirecting constructor?
1040 */ 1021 */
1041 bool get isRedirectingConstructor; 1022 bool get isRedirectingConstructor;
1042 1023
1043 /** 1024 /**
1044 * Is the reflectee a factory constructor? 1025 * Is the reflectee a factory constructor?
1045 */ 1026 */
1046 bool get isFactoryConstructor; 1027 bool get isFactoryConstructor;
1047 1028
1048 /** 1029 /// Returns true if this mirror is equal to [other].
1049 * Returns true if this mirror is equal to [other]. 1030 ///
1050 * 1031 /// The equality holds if and only if
1051 * The equality holds if and only if 1032 ///
1052 * (1) [other] is a mirror of the same kind 1033 /// 1. [other] is a mirror of the same kind, and
1053 * and 1034 /// 2. [:simpleName == other.simpleName:] and [:owner == other.owner:].
1054 * (2) [:simpleName == other.simpleName:] and
1055 * [:owner == other.owner:].
1056 */
1057 bool operator == (other); 1035 bool operator == (other);
1058 } 1036 }
1059 1037
1060 /** 1038 /**
1061 * A [VariableMirror] reflects a Dart language variable declaration. 1039 * A [VariableMirror] reflects a Dart language variable declaration.
1062 */ 1040 */
1063 abstract class VariableMirror implements DeclarationMirror { 1041 abstract class VariableMirror implements DeclarationMirror {
1064 /** 1042 /**
1065 * Returns a mirror on the type of the reflectee. 1043 * Returns a mirror on the type of the reflectee.
1066 */ 1044 */
(...skipping 13 matching lines...) Expand all
1080 * Otherwise returns [:false:]. 1058 * Otherwise returns [:false:].
1081 */ 1059 */
1082 bool get isFinal; 1060 bool get isFinal;
1083 1061
1084 /** 1062 /**
1085 * Returns [:true:] if the reflectee is declared [:const:]. 1063 * Returns [:true:] if the reflectee is declared [:const:].
1086 * Otherwise returns [:false:]. 1064 * Otherwise returns [:false:].
1087 */ 1065 */
1088 bool get isConst; 1066 bool get isConst;
1089 1067
1090 /** 1068 /// Returns true if this mirror is equal to [other].
1091 * Returns true if this mirror is equal to [other]. 1069 ///
1092 * 1070 /// The equality holds if and only if
1093 * The equality holds if and only if 1071 ///
1094 * (1) [other] is a mirror of the same kind 1072 /// 1. [other] is a mirror of the same kind, and
1095 * and 1073 /// 2. [:simpleName == other.simpleName:] and [:owner == other.owner:].
1096 * (2) [:simpleName == other.simpleName:] and 1074 bool operator == (other);
1097 * [:owner == other.owner:].
1098 */
1099 bool operator == (other);
1100 } 1075 }
1101 1076
1102 /** 1077 /**
1103 * A [ParameterMirror] reflects a Dart formal parameter declaration. 1078 * A [ParameterMirror] reflects a Dart formal parameter declaration.
1104 */ 1079 */
1105 abstract class ParameterMirror implements VariableMirror { 1080 abstract class ParameterMirror implements VariableMirror {
1106 /** 1081 /**
1107 * A mirror on the type of this parameter. 1082 * A mirror on the type of this parameter.
1108 */ 1083 */
1109 TypeMirror get type; 1084 TypeMirror get type;
1110 1085
1111 /** 1086 /**
1112 * Returns [:true:] if the reflectee is an optional parameter. 1087 * Returns [:true:] if the reflectee is an optional parameter.
1113 * Otherwise returns [:false:]. 1088 * Otherwise returns [:false:].
1114 */ 1089 */
1115 bool get isOptional; 1090 bool get isOptional;
1116 1091
1117 /** 1092 /**
1118 * Returns [:true:] if the reflectee is a named parameter. 1093 * Returns [:true:] if the reflectee is a named parameter.
1119 * Otherwise returns [:false:]. 1094 * Otherwise returns [:false:].
1120 */ 1095 */
1121 bool get isNamed; 1096 bool get isNamed;
1122 1097
1123 /** 1098 /**
1124 * Returns [:true:] if the reflectee has explicitly declared a default value. 1099 * Returns [:true:] if the reflectee has explicitly declared a default value.
1125 * Otherwise returns [:false:]. 1100 * Otherwise returns [:false:].
1126 */ 1101 */
1127 bool get hasDefaultValue; 1102 bool get hasDefaultValue;
1128 1103
1129 /** 1104 /// If this is a required parameter, returns [:null:].
Lasse Reichstein Nielsen 2015/10/07 08:27:55 Start by describing what it is/does, leave excepti
srawlins 2015/10/07 10:50:51 Done.
1130 * If this is a required parameter, returns [:null:]. Otherwise returns a 1105 ///
1131 * mirror on the default value for this parameter. If no default is declared 1106 /// Otherwise returns a mirror on the default value for this parameter. If no
1132 * for an optional parameter, the default is [:null:] and a mirror on [:null:] 1107 /// default is declared for an optional parameter, the default is [:null:] and
1133 * is returned. 1108 /// a mirror on [:null:] is returned.
1134 */
1135 InstanceMirror get defaultValue; 1109 InstanceMirror get defaultValue;
1136 } 1110 }
1137 1111
1138 /** 1112 /**
1139 * A [SourceLocation] describes the span of an entity in Dart source code. 1113 * A [SourceLocation] describes the span of an entity in Dart source code.
1140 */ 1114 */
1141 abstract class SourceLocation { 1115 abstract class SourceLocation {
1142 /** 1116 /**
1143 * The 1-based line number for this source location. 1117 * The 1-based line number for this source location.
1144 * 1118 *
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
1430 final override; 1404 final override;
1431 1405
1432 /** 1406 /**
1433 * See the documentation for [MirrorsUsed.symbols], [MirrorsUsed.targets], 1407 * See the documentation for [MirrorsUsed.symbols], [MirrorsUsed.targets],
1434 * [MirrorsUsed.metaTargets] and [MirrorsUsed.override] for documentation 1408 * [MirrorsUsed.metaTargets] and [MirrorsUsed.override] for documentation
1435 * of the parameters. 1409 * of the parameters.
1436 */ 1410 */
1437 const MirrorsUsed( 1411 const MirrorsUsed(
1438 {this.symbols, this.targets, this.metaTargets, this.override}); 1412 {this.symbols, this.targets, this.metaTargets, this.override});
1439 } 1413 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698