| Index: runtime/lib/mirrors.cc
|
| diff --git a/runtime/lib/mirrors.cc b/runtime/lib/mirrors.cc
|
| index 6df614d919678df12f96d7223b14031d31b7f275..94cda1bd98cf6fa538103f0b0039f293aa25ea0f 100644
|
| --- a/runtime/lib/mirrors.cc
|
| +++ b/runtime/lib/mirrors.cc
|
| @@ -376,111 +376,6 @@ static RawInstance* CreateLibraryMirror(const Library& lib) {
|
| }
|
|
|
|
|
| -static RawInstance* CreateCombinatorMirror(const Object& identifiers,
|
| - bool is_show) {
|
| - const Array& args = Array::Handle(Array::New(2));
|
| - args.SetAt(0, identifiers);
|
| - args.SetAt(1, Bool::Get(is_show));
|
| - return CreateMirror(Symbols::_LocalCombinatorMirror(), args);
|
| -}
|
| -
|
| -
|
| -static RawInstance* CreateLibraryDependencyMirror(const Instance& importer,
|
| - const Namespace& ns,
|
| - const String& prefix,
|
| - bool is_import) {
|
| - const Library& importee = Library::Handle(ns.library());
|
| - const Instance& importee_mirror =
|
| - Instance::Handle(CreateLibraryMirror(importee));
|
| -
|
| - const Array& show_names = Array::Handle(ns.show_names());
|
| - const Array& hide_names = Array::Handle(ns.hide_names());
|
| - intptr_t n = show_names.IsNull() ? 0 : show_names.Length();
|
| - intptr_t m = hide_names.IsNull() ? 0 : hide_names.Length();
|
| - const Array& combinators = Array::Handle(Array::New(n + m));
|
| - Object& t = Object::Handle();
|
| - intptr_t i = 0;
|
| - for (intptr_t j = 0; j < n; j++) {
|
| - t = show_names.At(j);
|
| - t = CreateCombinatorMirror(t, true);
|
| - combinators.SetAt(i++, t);
|
| - }
|
| - for (intptr_t j = 0; j < m; j++) {
|
| - t = hide_names.At(j);
|
| - t = CreateCombinatorMirror(t, false);
|
| - combinators.SetAt(i++, t);
|
| - }
|
| -
|
| - Object& metadata = Object::Handle(ns.GetMetadata());
|
| - if (metadata.IsError()) {
|
| - ThrowInvokeError(Error::Cast(metadata));
|
| - UNREACHABLE();
|
| - }
|
| -
|
| - const Array& args = Array::Handle(Array::New(6));
|
| - args.SetAt(0, importer);
|
| - args.SetAt(1, importee_mirror);
|
| - args.SetAt(2, combinators);
|
| - args.SetAt(3, prefix);
|
| - args.SetAt(4, Bool::Get(is_import));
|
| - args.SetAt(5, metadata);
|
| - // is_deferred?
|
| - return CreateMirror(Symbols::_LocalLibraryDependencyMirror(), args);
|
| -}
|
| -
|
| -
|
| -DEFINE_NATIVE_ENTRY(LibraryMirror_libraryDependencies, 2) {
|
| - GET_NON_NULL_NATIVE_ARGUMENT(Instance, lib_mirror, arguments->NativeArgAt(0));
|
| - GET_NON_NULL_NATIVE_ARGUMENT(MirrorReference, ref, arguments->NativeArgAt(1));
|
| - const Library& lib = Library::Handle(ref.GetLibraryReferent());
|
| -
|
| - Array& ports = Array::Handle();
|
| - Namespace& ns = Namespace::Handle();
|
| - Instance& dep = Instance::Handle();
|
| - String& prefix = String::Handle();
|
| - GrowableObjectArray& deps =
|
| - GrowableObjectArray::Handle(GrowableObjectArray::New());
|
| -
|
| - // Unprefixed imports.
|
| - ports = lib.imports();
|
| - for (intptr_t i = 0; i < ports.Length(); i++) {
|
| - ns ^= ports.At(i);
|
| - if (!ns.IsNull()) {
|
| - dep = CreateLibraryDependencyMirror(lib_mirror, ns, prefix, true);
|
| - deps.Add(dep);
|
| - }
|
| - }
|
| -
|
| - // Exports.
|
| - ports = lib.exports();
|
| - for (intptr_t i = 0; i < ports.Length(); i++) {
|
| - ns ^= ports.At(i);
|
| - dep = CreateLibraryDependencyMirror(lib_mirror, ns, prefix, false);
|
| - deps.Add(dep);
|
| - }
|
| -
|
| - // Prefixed imports.
|
| - DictionaryIterator entries(lib);
|
| - Object& entry = Object::Handle();
|
| - while (entries.HasNext()) {
|
| - entry = entries.GetNext();
|
| - if (entry.IsLibraryPrefix()) {
|
| - const LibraryPrefix& lib_prefix = LibraryPrefix::Cast(entry);
|
| - prefix = lib_prefix.name();
|
| - ports = lib_prefix.imports();
|
| - for (intptr_t i = 0; i < ports.Length(); i++) {
|
| - ns ^= ports.At(i);
|
| - if (!ns.IsNull()) {
|
| - dep = CreateLibraryDependencyMirror(lib_mirror, ns, prefix, true);
|
| - deps.Add(dep);
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - return deps.raw();
|
| -}
|
| -
|
| static RawInstance* CreateTypeMirror(const AbstractType& type) {
|
| if (type.IsTypeRef()) {
|
| AbstractType& ref_type = AbstractType::Handle(TypeRef::Cast(type).type());
|
|
|