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

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

Issue 1144923012: Fix dartdoc for InstanceMirror.delegate and ClosureMirror. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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 //
11 // ...the getter is named 'myField' and the setter is named 11 // ...the getter is named 'myField' and the setter is named
12 // 'myField='. This allows us to assign unique names to getters and 12 // 'myField='. This allows us to assign unique names to getters and
13 // setters for the purposes of member lookup. 13 // setters for the purposes of member lookup.
14 14
15 /** 15 /**
16 * Basic reflection in Dart, 16 * Basic reflection in Dart,
17 * with support for introspection and dynamic evaluation. 17 * with support for introspection and dynamic invocation.
18 * 18 *
19 * *Introspection* is that subset of reflection by which a running 19 * *Introspection* is that subset of reflection by which a running
20 * program can examine its own structure. For example, a function 20 * program can examine its own structure. For example, a function
21 * that prints out the names of all the members of an arbitrary object. 21 * that prints out the names of all the members of an arbitrary object.
22 * 22 *
23 * *Dynamic evaluation* refers the ability to evaluate code that 23 * *Dynamic invocation* refers the ability to evaluate code that
24 * has not been literally specified at compile time, such as calling a method 24 * has not been literally specified at compile time, such as calling a method
25 * whose name is provided as an argument (because it is looked up 25 * whose name is provided as an argument (because it is looked up
26 * in a database, or provided interactively by the user). 26 * in a database, or provided interactively by the user).
27 * 27 *
28 * ## How to interpret this library's documentation 28 * ## How to interpret this library's documentation
29 * 29 *
30 * As a rule, the names of Dart declarations are represented using 30 * As a rule, the names of Dart declarations are represented using
31 * instances of class [Symbol]. Whenever the doc speaks of an object *s* 31 * instances of class [Symbol]. Whenever the doc speaks of an object *s*
32 * of class [Symbol] denoting a name, it means the string that 32 * of class [Symbol] denoting a name, it means the string that
33 * was used to construct *s*. 33 * was used to construct *s*.
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 * or 497 * or
498 * (b) the remote objects reflected by this mirror and 498 * (b) the remote objects reflected by this mirror and
499 * by [other] are identical. 499 * by [other] are identical.
500 */ 500 */
501 bool operator == (other); 501 bool operator == (other);
502 502
503 /** 503 /**
504 * Perform [invocation] on [reflectee]. 504 * Perform [invocation] on [reflectee].
505 * Equivalent to 505 * Equivalent to
506 * 506 *
507 * this.invoke(invocation.memberName, 507 * if (invocation.isGetter) {
508 * invocation.positionalArguments, 508 * return this.getField(invocation.memberName).reflectee;
509 * invocation.namedArguments); 509 * } else if (invocation.isSetter) {
510 * return this.setField(invocation.memberName,
511 * invocation.positionArguments[0]).reflectee;
512 * } else {
513 * return this.invoke(invocation.memberName,
514 * invocation.positionalArguments,
515 * invocation.namedArguments).reflectee;
516 * }
510 */ 517 */
511 delegate(Invocation invocation); 518 delegate(Invocation invocation);
512 } 519 }
513 520
514 /** 521 /**
515 * A [ClosureMirror] reflects a closure. 522 * A [ClosureMirror] reflects a closure.
516 * 523 *
517 * A [ClosureMirror] provides access to its captured variables and 524 * A [ClosureMirror] provides the ability to execute its reflectee and
518 * provides the ability to execute its reflectee. 525 * introspect its function.
gbracha 2015/06/09 00:27:41 Sigh. What is the point of a closure mirror? We ca
rmacnak 2015/06/09 00:40:10 closureMirror.function isn't the same as closureMi
519 */ 526 */
520 abstract class ClosureMirror implements InstanceMirror { 527 abstract class ClosureMirror implements InstanceMirror {
521 /** 528 /**
522 * A mirror on the function associated with this closure. 529 * A mirror on the function associated with this closure.
523 * 530 *
524 * The function associated with an implicit closure of a function is that 531 * The function associated with an implicit closure of a function is that
525 * function. 532 * function.
526 * 533 *
527 * The function associated with an instance of a class that has a [:call:] 534 * The function associated with an instance of a class that has a [:call:]
528 * method is that [:call:] method. 535 * method is that [:call:] method.
(...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after
1423 final override; 1430 final override;
1424 1431
1425 /** 1432 /**
1426 * See the documentation for [MirrorsUsed.symbols], [MirrorsUsed.targets], 1433 * See the documentation for [MirrorsUsed.symbols], [MirrorsUsed.targets],
1427 * [MirrorsUsed.metaTargets] and [MirrorsUsed.override] for documentation 1434 * [MirrorsUsed.metaTargets] and [MirrorsUsed.override] for documentation
1428 * of the parameters. 1435 * of the parameters.
1429 */ 1436 */
1430 const MirrorsUsed( 1437 const MirrorsUsed(
1431 {this.symbols, this.targets, this.metaTargets, this.override}); 1438 {this.symbols, this.targets, this.metaTargets, this.override});
1432 } 1439 }
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