| Index: quiver/lib/mirrors.dart
|
| diff --git a/quiver/lib/mirrors.dart b/quiver/lib/mirrors.dart
|
| deleted file mode 100644
|
| index 9f73e9fa9bb9c8ac6bfea6fd388aff24247a6bb6..0000000000000000000000000000000000000000
|
| --- a/quiver/lib/mirrors.dart
|
| +++ /dev/null
|
| @@ -1,90 +0,0 @@
|
| -// Copyright 2013 Google Inc. All Rights Reserved.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -
|
| -library quiver.mirrors;
|
| -
|
| -import 'dart:mirrors';
|
| -
|
| -/**
|
| - * Returns the qualified name of [t].
|
| - */
|
| -Symbol getTypeName(Type t) => reflectClass(t).qualifiedName;
|
| -
|
| -/**
|
| - * Returns true if [o] implements [type].
|
| - */
|
| -bool implements(Object o, Type type) =>
|
| - classImplements(reflect(o).type, reflectClass(type));
|
| -
|
| -/**
|
| - * Returns true if the class represented by [classMirror] implements the class
|
| - * represented by [interfaceMirror].
|
| - */
|
| -bool classImplements(ClassMirror classMirror, ClassMirror interfaceMirror) {
|
| - if (classMirror == null) return false;
|
| - // TODO: change to comparing mirrors when dartbug.com/19781 is fixed
|
| - if (classMirror.qualifiedName == interfaceMirror.qualifiedName) return true;
|
| - if (classImplements(classMirror.superclass, interfaceMirror)) return true;
|
| - if (classMirror.superinterfaces
|
| - .any((i) => classImplements(i, interfaceMirror))) return true;
|
| - return false;
|
| -}
|
| -
|
| -/**
|
| - * Walks up the class hierarchy to find a method declaration with the given
|
| - * [name].
|
| - *
|
| - * Note that it's not possible to tell if there's an implementation via
|
| - * noSuchMethod().
|
| - */
|
| -DeclarationMirror getDeclaration(ClassMirror classMirror, Symbol name) {
|
| - if (classMirror.declarations.containsKey(name)) {
|
| - return classMirror.declarations[name];
|
| - }
|
| - if (classMirror.superclass != null) {
|
| - var mirror = getDeclaration(classMirror.superclass, name);
|
| - if (mirror != null) {
|
| - return mirror;
|
| - }
|
| - }
|
| - for (ClassMirror supe in classMirror.superinterfaces) {
|
| - var mirror = getDeclaration(supe, name);
|
| - if (mirror != null) {
|
| - return mirror;
|
| - }
|
| - }
|
| - return null;
|
| -}
|
| -
|
| -/**
|
| - * Closurzes a method reflectively.
|
| - */
|
| -class Method /* implements Function */ {
|
| - final InstanceMirror mirror;
|
| - final Symbol symbol;
|
| -
|
| - Method(this.mirror, this.symbol);
|
| -
|
| - dynamic noSuchMethod(Invocation i) {
|
| - if (i.isMethod && i.memberName == const Symbol('call')) {
|
| - if (i.namedArguments != null && i.namedArguments.isNotEmpty) {
|
| - // this will fail until named argument support is implemented
|
| - return mirror.invoke(
|
| - symbol, i.positionalArguments, i.namedArguments).reflectee;
|
| - }
|
| - return mirror.invoke(symbol, i.positionalArguments).reflectee;
|
| - }
|
| - return super.noSuchMethod(i);
|
| - }
|
| -}
|
|
|