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

Side by Side Diff: lib/mirrors.dart

Issue 851493004: smoke: remove unused variables and imports, added an explicit null return (Closed) Base URL: https://github.com/dart-lang/smoke@master
Patch Set: rebase Created 5 years, 11 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 | lib/static.dart » ('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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 /// Implementation of the smoke services using mirrors. 5 /// Implementation of the smoke services using mirrors.
6 library smoke.mirrors; 6 library smoke.mirrors;
7 7
8 import 'dart:mirrors'; 8 import 'dart:mirrors';
9 import 'package:smoke/smoke.dart'; 9 import 'package:smoke/smoke.dart';
10 import 'package:logging/logging.dart'; 10 import 'package:logging/logging.dart';
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 final visitParent = options.includeInherited && cls.superclass != null && 145 final visitParent = options.includeInherited && cls.superclass != null &&
146 // TODO(sigmund): use _toType(cls.superclass) != options.includeUpTo 146 // TODO(sigmund): use _toType(cls.superclass) != options.includeUpTo
147 // when dartbug.com/16925 gets fixed (_toType fails in dart2js if 147 // when dartbug.com/16925 gets fixed (_toType fails in dart2js if
148 // applied to classes with type-arguments). 148 // applied to classes with type-arguments).
149 cls.superclass != reflectClass(options.includeUpTo); 149 cls.superclass != reflectClass(options.includeUpTo);
150 var result = visitParent ? _query(cls.superclass, options) : []; 150 var result = visitParent ? _query(cls.superclass, options) : [];
151 for (var member in cls.declarations.values) { 151 for (var member in cls.declarations.values) {
152 if (member is! VariableMirror && member is! MethodMirror) continue; 152 if (member is! VariableMirror && member is! MethodMirror) continue;
153 if (member.isStatic || member.isPrivate) continue; 153 if (member.isStatic || member.isPrivate) continue;
154 var name = member.simpleName; 154 var name = member.simpleName;
155 bool isMethod = false;
156 if (member is VariableMirror) { 155 if (member is VariableMirror) {
157 if (!options.includeFields) continue; 156 if (!options.includeFields) continue;
158 if (options.excludeFinal && member.isFinal) continue; 157 if (options.excludeFinal && member.isFinal) continue;
159 } 158 }
160 159
161 // TODO(sigmund): what if we have a setter but no getter? 160 // TODO(sigmund): what if we have a setter but no getter?
162 if (member is MethodMirror && member.isSetter) continue; 161 if (member is MethodMirror && member.isSetter) continue;
163 if (member is MethodMirror && member.isConstructor) continue; 162 if (member is MethodMirror && member.isConstructor) continue;
164 163
165 if (member is MethodMirror && member.isGetter) { 164 if (member is MethodMirror && member.isGetter) {
166 if (!options.includeProperties) continue; 165 if (!options.includeProperties) continue;
167 if (options.excludeFinal && !_hasSetter(cls, member)) continue; 166 if (options.excludeFinal && !_hasSetter(cls, member)) continue;
168 } 167 }
169 168
170 if (member is MethodMirror && member.isRegularMethod) { 169 if (member is MethodMirror && member.isRegularMethod) {
171 if (!options.includeMethods) continue; 170 if (!options.includeMethods) continue;
172 isMethod = true;
173 } 171 }
174 172
175 if (options.matches != null && !options.matches(name)) continue; 173 if (options.matches != null && !options.matches(name)) continue;
176 174
177 var annotations = 175 var annotations =
178 member.metadata.map((m) => m.reflectee).toList(); 176 member.metadata.map((m) => m.reflectee).toList();
179 if (options.withAnnotations != null && 177 if (options.withAnnotations != null &&
180 !matchesAnnotation(annotations, options.withAnnotations)) { 178 !matchesAnnotation(annotations, options.withAnnotations)) {
181 continue; 179 continue;
182 } 180 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 return _objectType; 225 return _objectType;
228 } 226 }
229 } 227 }
230 228
231 MethodMirror _findMethod(ClassMirror type, Symbol name) { 229 MethodMirror _findMethod(ClassMirror type, Symbol name) {
232 do { 230 do {
233 var member = type.declarations[name]; 231 var member = type.declarations[name];
234 if (member is MethodMirror) return member; 232 if (member is MethodMirror) return member;
235 type = type.superclass; 233 type = type.superclass;
236 } while (type != null); 234 } while (type != null);
235 return null;
237 } 236 }
238 237
239 // When recursively looking for symbols up the type-hierarchy it's generally a 238 // When recursively looking for symbols up the type-hierarchy it's generally a
240 // good idea to stop at Object, since we know it doesn't have what we want. 239 // good idea to stop at Object, since we know it doesn't have what we want.
241 // TODO(jmesserly): This is also a workaround for what appears to be a V8 240 // TODO(jmesserly): This is also a workaround for what appears to be a V8
242 // bug introduced between Chrome 31 and 32. After 32 241 // bug introduced between Chrome 31 and 32. After 32
243 // JsClassMirror.declarations on Object calls 242 // JsClassMirror.declarations on Object calls
244 // JsClassMirror.typeVariables, which tries to get the _jsConstructor's 243 // JsClassMirror.typeVariables, which tries to get the _jsConstructor's
245 // .prototype["<>"]. This ends up getting the "" property instead, maybe 244 // .prototype["<>"]. This ends up getting the "" property instead, maybe
246 // because "<>" doesn't exist, and gets ";" which then blows up because 245 // because "<>" doesn't exist, and gets ";" which then blows up because
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 String toString() => (new StringBuffer() 310 String toString() => (new StringBuffer()
312 ..write('(mirror-based-declaration ') 311 ..write('(mirror-based-declaration ')
313 ..write(name) 312 ..write(name)
314 ..write(isField ? ' (field) ' 313 ..write(isField ? ' (field) '
315 : (isProperty ? ' (property) ' : ' (method) ')) 314 : (isProperty ? ' (property) ' : ' (method) '))
316 ..write(isFinal ? 'final ' : '') 315 ..write(isFinal ? 'final ' : '')
317 ..write(isStatic ? 'static ' : '') 316 ..write(isStatic ? 'static ' : '')
318 ..write(annotations) 317 ..write(annotations)
319 ..write(')')).toString(); 318 ..write(')')).toString();
320 } 319 }
OLDNEW
« no previous file with comments | « no previous file | lib/static.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698