Index: runtime/lib/mirrors_patch.dart |
diff --git a/runtime/lib/mirrors_patch.dart b/runtime/lib/mirrors_patch.dart |
index b3f2d4d530907dc4328caa590c307ab8ec493c58..97e60ceb169e57166b8531341e27a85a228b6253 100644 |
--- a/runtime/lib/mirrors_patch.dart |
+++ b/runtime/lib/mirrors_patch.dart |
@@ -48,12 +48,17 @@ patch TypeMirror reflectType(Type key) { |
patch class MirrorSystem { |
/* patch */ static String getName(Symbol symbol) { |
String string = _symbol_dev.Symbol.getName(symbol); |
- if (string.contains(' with ')) return string; |
+ if (string.contains(' with ')) { |
+ // Constructor names of anonymous mixin applications |
+ var at_pos = string.indexOf('@'); |
+ if (at_pos == -1) return string; |
+ return string.substring(0, at_pos); |
+ } |
return _unmangleName(string); |
} |
/* patch */ static Symbol getSymbol(String name, [LibraryMirror library]) { |
if (library is! LibraryMirror || |
- ((name[0] == '_') && (library == null))) { |
+ ((name.length > 0) && (name[0] == '_') && (library == null))) { |
throw new ArgumentError(library); |
} |
if (library != null) name = _mangleName(name, library._reflectee); |