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

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

Issue 266923009: Improve doc for ClosureMirror.function. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
« 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 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 */ 489 */
490 abstract class ClosureMirror implements InstanceMirror { 490 abstract class ClosureMirror implements InstanceMirror {
491 /** 491 /**
492 * A mirror on the function associated with this closure. 492 * A mirror on the function associated with this closure.
493 * 493 *
494 * The function associated with an implicit closure of a function is that 494 * The function associated with an implicit closure of a function is that
495 * function. 495 * function.
496 * 496 *
497 * The function associated with an instance of a class that has a [:call:] 497 * The function associated with an instance of a class that has a [:call:]
498 * method is that [:call:] method. 498 * method is that [:call:] method.
499 *
500 * A Dart implementation might choose to create a class for each closure
501 * expression, in which case [:function:] would be the same as
502 * [:type.declarations[#call]:]. But the Dart language model does not require
503 * this. A more typical implementation involves a single closure class or a
504 * closure class for each arity or type signature, where the call method
505 * dispatches to a function held in the closure rather the call method
506 * directly implementing the closure body. So one cannot rely on closures from
507 * distinct closure expressions having distinct classes ([:type:]), but one
508 * can rely on them having distinct functions ([:function:]).
499 */ 509 */
500 MethodMirror get function; 510 MethodMirror get function;
rmacnak 2014/05/06 20:12:21 Actually, the accessors on FunctionTypeMirror woul
gbracha 2014/09/11 00:49:33 I don't think so today. Just as function could ret
501 511
502 /** 512 /**
503 * Executes the closure and returns a mirror on the result. 513 * Executes the closure and returns a mirror on the result.
504 * Let *f* be the closure reflected by this mirror, 514 * Let *f* be the closure reflected by this mirror,
505 * let *a1, ..., an* be the elements of [positionalArguments] 515 * let *a1, ..., an* be the elements of [positionalArguments]
506 * let *k1, ..., km* be the identifiers denoted by the elements of 516 * let *k1, ..., km* be the identifiers denoted by the elements of
507 * [namedArguments.keys] 517 * [namedArguments.keys]
508 * and let *v1, ..., vm* be the elements of [namedArguments.values]. 518 * and let *v1, ..., vm* be the elements of [namedArguments.values].
509 * Then this method will perform the method invocation 519 * Then this method will perform the method invocation
510 * *f(a1, ..., an, k1: v1, ..., km: vm)* 520 * *f(a1, ..., an, k1: v1, ..., km: vm)*
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 TypeMirror get returnType; 837 TypeMirror get returnType;
828 838
829 /** 839 /**
830 * Returns a list of the parameter types of the reflectee. 840 * Returns a list of the parameter types of the reflectee.
831 */ 841 */
832 List<ParameterMirror> get parameters; 842 List<ParameterMirror> get parameters;
833 843
834 /** 844 /**
835 * A mirror on the [:call:] method for the reflectee. 845 * A mirror on the [:call:] method for the reflectee.
836 */ 846 */
837 MethodMirror get callMethod; 847 MethodMirror get callMethod;
rmacnak 2014/05/06 20:12:21 When might this be different than declarations[#ca
gbracha 2014/09/11 00:49:33 It wouldn't be but it's here.
838 } 848 }
839 849
840 /** 850 /**
841 * A [TypeVariableMirror] represents a type parameter of a generic 851 * A [TypeVariableMirror] represents a type parameter of a generic
842 * type. 852 * type.
843 */ 853 */
844 abstract class TypeVariableMirror extends TypeMirror { 854 abstract class TypeVariableMirror extends TypeMirror {
845 /** 855 /**
846 * A mirror on the type that is the upper bound of this type variable. 856 * A mirror on the type that is the upper bound of this type variable.
847 */ 857 */
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
1219 * 1229 *
1220 * When used as metadata on an import of "dart:mirrors", this metadata does 1230 * When used as metadata on an import of "dart:mirrors", this metadata does
1221 * not apply to the library in which the annotation is used, but instead 1231 * not apply to the library in which the annotation is used, but instead
1222 * applies to the other libraries (all libraries if "*" is used). 1232 * applies to the other libraries (all libraries if "*" is used).
1223 */ 1233 */
1224 final override; 1234 final override;
1225 1235
1226 const MirrorsUsed( 1236 const MirrorsUsed(
1227 {this.symbols, this.targets, this.metaTargets, this.override}); 1237 {this.symbols, this.targets, this.metaTargets, this.override});
1228 } 1238 }
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