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

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, 3 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 for
504 * each type signature, where the call method dispatches to a function held
505 * 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;
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].
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 TypeMirror get returnType; 832 TypeMirror get returnType;
823 833
824 /** 834 /**
825 * Returns a list of the parameter types of the reflectee. 835 * Returns a list of the parameter types of the reflectee.
826 */ 836 */
827 List<ParameterMirror> get parameters; 837 List<ParameterMirror> get parameters;
828 838
829 /** 839 /**
830 * A mirror on the [:call:] method for the reflectee. 840 * A mirror on the [:call:] method for the reflectee.
831 */ 841 */
842 // This is only here because in the past the VM did not implement a call
843 // method on closures.
832 MethodMirror get callMethod; 844 MethodMirror get callMethod;
833 } 845 }
834 846
835 /** 847 /**
836 * A [TypeVariableMirror] represents a type parameter of a generic 848 * A [TypeVariableMirror] represents a type parameter of a generic
837 * type. 849 * type.
838 */ 850 */
839 abstract class TypeVariableMirror extends TypeMirror { 851 abstract class TypeVariableMirror extends TypeMirror {
840 /** 852 /**
841 * A mirror on the type that is the upper bound of this type variable. 853 * A mirror on the type that is the upper bound of this type variable.
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1214 * 1226 *
1215 * When used as metadata on an import of "dart:mirrors", this metadata does 1227 * When used as metadata on an import of "dart:mirrors", this metadata does
1216 * not apply to the library in which the annotation is used, but instead 1228 * not apply to the library in which the annotation is used, but instead
1217 * applies to the other libraries (all libraries if "*" is used). 1229 * applies to the other libraries (all libraries if "*" is used).
1218 */ 1230 */
1219 final override; 1231 final override;
1220 1232
1221 const MirrorsUsed( 1233 const MirrorsUsed(
1222 {this.symbols, this.targets, this.metaTargets, this.override}); 1234 {this.symbols, this.targets, this.metaTargets, this.override});
1223 } 1235 }
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