| Index: smoke/lib/static_debug.dart
|
| diff --git a/smoke/lib/static_debug.dart b/smoke/lib/static_debug.dart
|
| deleted file mode 100644
|
| index a51b13e289169ef67c91d0ce1497e4d9cbf9b914..0000000000000000000000000000000000000000
|
| --- a/smoke/lib/static_debug.dart
|
| +++ /dev/null
|
| @@ -1,120 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -/// Static implementation of smoke services that uses code-generated data and
|
| -/// verifies that the results match what we would get with a mirror-based
|
| -/// implementation.
|
| -library smoke.static_debug;
|
| -
|
| -export 'package:smoke/static.dart' show StaticConfiguration, Getter, Setter;
|
| -import 'package:smoke/static.dart';
|
| -import 'package:smoke/mirrors.dart';
|
| -import 'package:smoke/smoke.dart';
|
| -
|
| -import 'src/common.dart' show compareLists;
|
| -
|
| -/// Set up the smoke package to use a static implementation based on the given
|
| -/// [configuration].
|
| -useGeneratedCode(StaticConfiguration configuration) {
|
| - configure(new _DebugObjectAccessorService(configuration),
|
| - new _DebugTypeInspectorService(configuration),
|
| - new _DebugSymbolConverterService(configuration));
|
| -}
|
| -
|
| -/// Implements [ObjectAccessorService] using a static configuration.
|
| -class _DebugObjectAccessorService implements ObjectAccessorService {
|
| - GeneratedObjectAccessorService _static;
|
| - ReflectiveObjectAccessorService _mirrors;
|
| -
|
| - _DebugObjectAccessorService(StaticConfiguration configuration)
|
| - : _static = new GeneratedObjectAccessorService(configuration),
|
| - _mirrors = new ReflectiveObjectAccessorService();
|
| -
|
| - read(Object object, Symbol name) => _check('read', [
|
| - object,
|
| - name
|
| - ], _static.read(object, name), _mirrors.read(object, name));
|
| -
|
| - // Note: we can't verify operations with side-effects like write or invoke.
|
| - void write(Object object, Symbol name, value) =>
|
| - _static.write(object, name, value);
|
| -
|
| - invoke(object, Symbol name, List args, {Map namedArgs, bool adjust: false}) =>
|
| - _static.invoke(object, name, args, namedArgs: namedArgs, adjust: adjust);
|
| -}
|
| -
|
| -/// Implements [TypeInspectorService] using a static configuration.
|
| -class _DebugTypeInspectorService implements TypeInspectorService {
|
| - GeneratedTypeInspectorService _static;
|
| - ReflectiveTypeInspectorService _mirrors;
|
| -
|
| - _DebugTypeInspectorService(StaticConfiguration configuration)
|
| - : _static = new GeneratedTypeInspectorService(configuration),
|
| - _mirrors = new ReflectiveTypeInspectorService();
|
| -
|
| - bool isSubclassOf(Type type, Type supertype) => _check('isSubclassOf', [
|
| - type,
|
| - supertype
|
| - ], _static.isSubclassOf(type, supertype),
|
| - _mirrors.isSubclassOf(type, supertype));
|
| -
|
| - bool hasGetter(Type type, Symbol name) => _check('hasGetter', [
|
| - type,
|
| - name
|
| - ], _static.hasGetter(type, name), _mirrors.hasGetter(type, name));
|
| -
|
| - bool hasSetter(Type type, Symbol name) => _check('hasSetter', [
|
| - type,
|
| - name
|
| - ], _static.hasSetter(type, name), _mirrors.hasSetter(type, name));
|
| -
|
| - bool hasInstanceMethod(Type type, Symbol name) => _check('hasInstanceMethod',
|
| - [type, name], _static.hasInstanceMethod(type, name),
|
| - _mirrors.hasInstanceMethod(type, name));
|
| -
|
| - bool hasStaticMethod(Type type, Symbol name) => _check('hasStaticMethod', [
|
| - type,
|
| - name
|
| - ], _static.hasStaticMethod(type, name), _mirrors.hasStaticMethod(type, name));
|
| -
|
| - Declaration getDeclaration(Type type, Symbol name) => _check('getDeclaration',
|
| - [
|
| - type,
|
| - name
|
| - ], _static.getDeclaration(type, name), _mirrors.getDeclaration(type, name));
|
| -
|
| - List<Declaration> query(Type type, QueryOptions options) => _check('query', [
|
| - type,
|
| - options
|
| - ], _static.query(type, options), _mirrors.query(type, options));
|
| -}
|
| -
|
| -/// Implements [SymbolConverterService] using a static configuration.
|
| -class _DebugSymbolConverterService implements SymbolConverterService {
|
| - GeneratedSymbolConverterService _static;
|
| - ReflectiveSymbolConverterService _mirrors;
|
| -
|
| - _DebugSymbolConverterService(StaticConfiguration configuration)
|
| - : _static = new GeneratedSymbolConverterService(configuration),
|
| - _mirrors = new ReflectiveSymbolConverterService();
|
| -
|
| - String symbolToName(Symbol symbol) => _check('symbolToName', [symbol],
|
| - _static.symbolToName(symbol), _mirrors.symbolToName(symbol));
|
| -
|
| - Symbol nameToSymbol(String name) => _check('nameToSymbol', [name],
|
| - _static.nameToSymbol(name), _mirrors.nameToSymbol(name));
|
| -}
|
| -
|
| -_check(String operation, List arguments, staticResult, mirrorResult) {
|
| - if (staticResult == mirrorResult) return staticResult;
|
| - if (staticResult is List &&
|
| - mirrorResult is List &&
|
| - compareLists(staticResult, mirrorResult, unordered: true)) {
|
| - return staticResult;
|
| - }
|
| - print('warning: inconsistent result on $operation(${arguments.join(', ')})\n'
|
| - 'smoke.mirrors result: $mirrorResult\n'
|
| - 'smoke.static result: $staticResult\n');
|
| - return staticResult;
|
| -}
|
|
|