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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/mirrors/mirrors.dart

Issue 14333011: Make source mirror ObjectMirror.getField synchronous (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 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
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 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:uri'; 8 import 'dart:uri';
9 9
10 // TODO(rnystrom): Use "package:" URL (#4968).
11 import 'dart2js_mirror.dart';
12
13 /** 10 /**
14 * The main interface for the whole mirror system. 11 * The main interface for the whole mirror system.
15 */ 12 */
16 abstract class MirrorSystem { 13 abstract class MirrorSystem {
17 /** 14 /**
18 * Returns an unmodifiable map of all libraries in this mirror system. 15 * Returns an unmodifiable map of all libraries in this mirror system.
19 */ 16 */
20 Map<Uri, LibraryMirror> get libraries; 17 Map<Uri, LibraryMirror> get libraries;
21 18
22 /** 19 /**
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 */ 115 */
119 List<InstanceMirror> get metadata; 116 List<InstanceMirror> get metadata;
120 } 117 }
121 118
122 abstract class ObjectMirror implements Mirror { 119 abstract class ObjectMirror implements Mirror {
123 /** 120 /**
124 * Invokes a getter and returns a mirror on the result. The getter 121 * Invokes a getter and returns a mirror on the result. The getter
125 * can be the implicit getter for a field or a user-defined getter 122 * can be the implicit getter for a field or a user-defined getter
126 * method. 123 * method.
127 */ 124 */
128 Future<InstanceMirror> getField(String fieldName); 125 InstanceMirror getField(String fieldName);
129 } 126 }
130 127
131 /** 128 /**
132 * An [InstanceMirror] reflects an instance of a Dart language object. 129 * An [InstanceMirror] reflects an instance of a Dart language object.
133 */ 130 */
134 abstract class InstanceMirror implements ObjectMirror { 131 abstract class InstanceMirror implements ObjectMirror {
135 /** 132 /**
136 * A mirror on the type of the reflectee. 133 * A mirror on the type of the reflectee.
137 */ 134 */
138 ClassMirror get type; 135 ClassMirror get type;
(...skipping 20 matching lines...) Expand all
159 * If you access [reflectee] when [hasReflectee] is false, an 156 * If you access [reflectee] when [hasReflectee] is false, an
160 * exception is thrown. 157 * exception is thrown.
161 */ 158 */
162 get reflectee; 159 get reflectee;
163 } 160 }
164 161
165 /** 162 /**
166 * Specialized [InstanceMirror] used for reflection on constant lists. 163 * Specialized [InstanceMirror] used for reflection on constant lists.
167 */ 164 */
168 abstract class ListInstanceMirror implements InstanceMirror { 165 abstract class ListInstanceMirror implements InstanceMirror {
169 Future<InstanceMirror> operator[](int index); 166 /**
167 * Returns an instance mirror of the value at [index] or throws a [RangeError]
168 * if the [index] is out of bounds.
169 */
170 InstanceMirror operator[](int index);
171
172 /**
173 * The number of elements in the list.
174 */
170 int get length; 175 int get length;
171 } 176 }
172 177
173 /** 178 /**
174 * Specialized [InstanceMirror] used for reflection on constant maps. 179 * Specialized [InstanceMirror] used for reflection on constant maps.
175 */ 180 */
176 abstract class MapInstanceMirror implements InstanceMirror { 181 abstract class MapInstanceMirror implements InstanceMirror {
177 /** 182 /**
178 * Returns a collection containing all the keys in the map. 183 * Returns a collection containing all the keys in the map.
179 */ 184 */
180 Iterable<String> get keys; 185 Iterable<String> get keys;
181 186
182 /** 187 /**
183 * Returns a future on the instance mirror of the value for the given key or 188 * Returns an instance mirror of the value for the given key or
184 * null if key is not in the map. 189 * null if key is not in the map.
185 */ 190 */
186 Future<InstanceMirror> operator[](String key); 191 InstanceMirror operator[](String key);
187 192
188 /** 193 /**
189 * The number of {key, value} pairs in the map. 194 * The number of {key, value} pairs in the map.
190 */ 195 */
191 int get length; 196 int get length;
192 } 197 }
193 198
194 /** 199 /**
195 * Specialized [InstanceMirror] used for reflection on type constants. 200 * Specialized [InstanceMirror] used for reflection on type constants.
196 */ 201 */
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 /** 704 /**
700 * Returns the URI where the source originated. 705 * Returns the URI where the source originated.
701 */ 706 */
702 Uri get sourceUri; 707 Uri get sourceUri;
703 708
704 /** 709 /**
705 * Returns the text of this source. 710 * Returns the text of this source.
706 */ 711 */
707 String get sourceText; 712 String get sourceText;
708 } 713 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698