Index: sdk/lib/_internal/dartdoc/lib/mirrors_util.dart |
diff --git a/sdk/lib/_internal/dartdoc/lib/mirrors_util.dart b/sdk/lib/_internal/dartdoc/lib/mirrors_util.dart |
deleted file mode 100644 |
index cede225be99a109917dbbcaa04c9047e58434ebd..0000000000000000000000000000000000000000 |
--- a/sdk/lib/_internal/dartdoc/lib/mirrors_util.dart |
+++ /dev/null |
@@ -1,115 +0,0 @@ |
-// Copyright (c) 2012, 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. |
- |
-library mirrors_util; |
- |
-// TODO(rnystrom): Use "package:" URL (#4968). |
-import 'mirrors.dart'; |
- |
-//------------------------------------------------------------------------------ |
-// Utility functions for using the Mirror API |
-//------------------------------------------------------------------------------ |
- |
-/** |
- * Returns an iterable over the type declarations directly inheriting from |
- * the declaration of this type. |
- */ |
-Iterable<ClassMirror> computeSubdeclarations(ClassMirror type) { |
- type = type.originalDeclaration; |
- var subtypes = <ClassMirror>[]; |
- type.mirrors.libraries.forEach((_, library) { |
- for (ClassMirror otherType in library.classes.values) { |
- var superClass = otherType.superclass; |
- if (superClass != null) { |
- superClass = superClass.originalDeclaration; |
- if (type.library == superClass.library) { |
- if (superClass == type) { |
- subtypes.add(otherType); |
- } |
- } |
- } |
- final superInterfaces = otherType.superinterfaces; |
- for (ClassMirror superInterface in superInterfaces) { |
- superInterface = superInterface.originalDeclaration; |
- if (type.library == superInterface.library) { |
- if (superInterface == type) { |
- subtypes.add(otherType); |
- } |
- } |
- } |
- } |
- }); |
- return subtypes; |
-} |
- |
-LibraryMirror findLibrary(MemberMirror member) { |
- DeclarationMirror owner = member.owner; |
- if (owner is LibraryMirror) { |
- return owner; |
- } else if (owner is TypeMirror) { |
- return owner.library; |
- } |
- throw new Exception('Unexpected owner: ${owner}'); |
-} |
- |
-class HierarchyIterable implements Iterable<ClassMirror> { |
- final bool includeType; |
- final ClassMirror type; |
- |
- HierarchyIterable(this.type, {bool includeType}) |
- : this.includeType = includeType; |
- |
- Iterator<ClassMirror> iterator() => |
- new HierarchyIterator(type, includeType: includeType); |
-} |
- |
-/** |
- * [HierarchyIterator] iterates through the class hierarchy of the provided |
- * type. |
- * |
- * First is the superclass relation is traversed, skipping [Object], next the |
- * superinterface relation and finally is [Object] visited. The supertypes are |
- * visited in breadth first order and a superinterface is visited more than once |
- * if implemented through multiple supertypes. |
- */ |
-class HierarchyIterator implements Iterator<ClassMirror> { |
- final Queue<ClassMirror> queue = new Queue<ClassMirror>(); |
- ClassMirror object; |
- |
- HierarchyIterator(ClassMirror type, {bool includeType}) { |
- if (includeType) { |
- queue.add(type); |
- } else { |
- push(type); |
- } |
- } |
- |
- ClassMirror push(ClassMirror type) { |
- if (type.superclass != null) { |
- if (type.superclass.isObject) { |
- object = type.superclass; |
- } else { |
- queue.addFirst(type.superclass); |
- } |
- } |
- queue.addAll(type.superinterfaces); |
- return type; |
- } |
- |
- ClassMirror next() { |
- ClassMirror type; |
- if (queue.isEmpty) { |
- if (object == null) { |
- throw new StateError("No more elements"); |
- } |
- type = object; |
- object = null; |
- return type; |
- } else { |
- return push(queue.removeFirst()); |
- } |
- } |
- |
- bool get hasNext => !queue.isEmpty || object != null; |
-} |