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

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

Issue 10702186: Replaced simpleValue with more general reflectee. hasSimpleValue is retained internally for the sak… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 5 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 | runtime/lib/mirrors.cc » ('j') | 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) 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 // #library("mirrors"); 5 // #library("mirrors");
6 6
7 // The dart:mirrors library provides reflective access for Dart program. 7 // The dart:mirrors library provides reflective access for Dart program.
8 // 8 //
9 // For the purposes of the mirrors library, we adopt a naming 9 // For the purposes of the mirrors library, we adopt a naming
10 // convention with respect to getters and setters. Specifically, for 10 // convention with respect to getters and setters. Specifically, for
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 /** 100 /**
101 * An [InstanceMirror] reflects an instance of a Dart language object. 101 * An [InstanceMirror] reflects an instance of a Dart language object.
102 */ 102 */
103 interface InstanceMirror extends ObjectMirror { 103 interface InstanceMirror extends ObjectMirror {
104 /** 104 /**
105 * Returns a mirror on the class of the reflectee. 105 * Returns a mirror on the class of the reflectee.
106 */ 106 */
107 InterfaceMirror getClass(); 107 InterfaceMirror getClass();
108 108
109 /** 109 /**
110 * Does [simpleValue] contain the value of the reflectee? 110 * Does [reflectee] contain the instance reflected by this mirror? This will
111 */ 111 * always be true in the local case (reflecting instances in the same
112 bool hasSimpleValue; 112 * isolate), but only true in the remote case if this mirror reflects a
113 113 * simple value.
114 /**
115 * If the [InstanceMirror] refers to a simple value, we provide
116 * access to the actual value here.
117 * 114 *
118 * A value is simple if one of the following holds: 115 * A value is simple if one of the following holds:
119 * - the value is null 116 * - the value is null
120 * - the value is of type [num] 117 * - the value is of type [num]
121 * - the value is of type [bool] 118 * - the value is of type [bool]
122 * - the value is of type [String] 119 * - the value is of type [String]
120 */
121 final bool hasReflectee;
122
123 /**
124 * If the [InstanceMirror] reflects an instance it is meaningful to have a
125 * local reference to, we provide access to the actual instance here.
123 * 126 *
124 * If you access [simpleValue] when [hasSimpleValue] is false an 127 * If you access [reflectee] when [hasReflectee] is false, an
125 * exception is thrown. 128 * exception is thrown.
126 */ 129 */
127 final simpleValue; 130 final reflectee;
128 } 131 }
129 132
130 /** 133 /**
131 * An [InterfaceMirror] reflects a Dart language class or interface. 134 * An [InterfaceMirror] reflects a Dart language class or interface.
132 */ 135 */
133 interface InterfaceMirror extends ObjectMirror { 136 interface InterfaceMirror extends ObjectMirror {
134 /** 137 /**
135 * The name of this interface. 138 * The name of this interface.
136 */ 139 */
137 final String simpleName; 140 final String simpleName;
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 438
436 /** 439 /**
437 * A [MirrorException] is used to indicate errors within the mirrors 440 * A [MirrorException] is used to indicate errors within the mirrors
438 * framework. 441 * framework.
439 */ 442 */
440 class MirrorException implements Exception { 443 class MirrorException implements Exception {
441 const MirrorException(String this._message); 444 const MirrorException(String this._message);
442 String toString() => "MirrorException: '$_message'"; 445 String toString() => "MirrorException: '$_message'";
443 final String _message; 446 final String _message;
444 } 447 }
OLDNEW
« no previous file with comments | « no previous file | runtime/lib/mirrors.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698