Improve error messages in MirrorSystem.findLibrary.

BUG=http://dartbug.com/18532
R=gbracha@google.com

Review URL: https://codereview.chromium.org//287523003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36114 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
rmacnak@google.com 2014-05-13 17:20:08 +00:00
parent 06d1ca8545
commit 3939e3e7f5

View file

@ -36,6 +36,20 @@ patch TypeMirror reflectType(Type key) {
}
patch class MirrorSystem {
/* patch */ LibraryMirror findLibrary(Symbol libraryName) {
var candidates =
libraries.values.where((lib) => lib.simpleName == libraryName);
if (candidates.length == 1) {
return candidates.single;
}
if (candidates.length > 1) {
var uris = candidates.map((lib) => lib.uri.toString()).toList();
throw new Exception("There are multiple libraries named "
"'${getName(libraryName)}': $uris");
}
throw new Exception("There is no library named '${getName(libraryName)}'");
}
/* patch */ static String getName(Symbol symbol) {
String string = _symbol_dev.Symbol.getName(symbol);