From a66b2c136c7830eb042053243757d3a1d1540dfd Mon Sep 17 00:00:00 2001 From: James deBoer Date: Wed, 16 Apr 2014 14:36:36 -0700 Subject: [PATCH] fix(symbol_inspector): Do not return private symbols --- lib/tools/symbol_inspector/symbol_inspector.dart | 6 ++++++ test/tools/symbol_inspector/simple_library.dart | 3 +++ 2 files changed, 9 insertions(+) diff --git a/lib/tools/symbol_inspector/symbol_inspector.dart b/lib/tools/symbol_inspector/symbol_inspector.dart index 581b04667..9fa53907d 100644 --- a/lib/tools/symbol_inspector/symbol_inspector.dart +++ b/lib/tools/symbol_inspector/symbol_inspector.dart @@ -25,6 +25,7 @@ Iterable _getUsedSymbols(DeclarationMirror decl, seenDecls, path, onlyTy seenDecls[decl.qualifiedName] = true; if (decl.isPrivate) return []; + path = "$path -> $decl"; var used = []; @@ -97,6 +98,11 @@ getSymbolsFromLibrary(String libraryName) { if (SHOULD_PRINT_SYMBOL_TREE) print(printPrefix + unwrapSymbol(lib.qualifiedName)); printPrefix += " "; lib.declarations.forEach((symbol, decl) { + if (decl.isPrivate) return; + + // Work-around for dartbug.com/18271 + if (decl is TypedefMirror && unwrapSymbol(symbol).startsWith('_')) return; + if (SHOULD_PRINT_SYMBOL_TREE) print(printPrefix + unwrapSymbol(symbol)); names.add(new QualifiedSymbol(symbol, decl.qualifiedName, lib.qualifiedName)); used[decl.qualifiedName] = _getUsedSymbols(decl, {}, "", false); diff --git a/test/tools/symbol_inspector/simple_library.dart b/test/tools/symbol_inspector/simple_library.dart index f2323b2bf..02417f89e 100644 --- a/test/tools/symbol_inspector/simple_library.dart +++ b/test/tools/symbol_inspector/simple_library.dart @@ -15,6 +15,9 @@ class A { static StaticFieldType staticField = null; } +class _PrivateClass {} // Should not be exported. +typedef _PrivateTypedef(int a); // Also should not be exported. + typedef TypedefReturnType TypedefType(TypedefParam a); class ConsParamType {}