| Index: runtime/lib/mirrors_impl.dart
|
| diff --git a/runtime/lib/mirrors_impl.dart b/runtime/lib/mirrors_impl.dart
|
| index 85bbae8387d0bdcee6a7ab820692fef7ebdcf681..754a7a7316dad6444e1c42536ca26c50f0de44a8 100644
|
| --- a/runtime/lib/mirrors_impl.dart
|
| +++ b/runtime/lib/mirrors_impl.dart
|
| @@ -586,6 +586,10 @@ class _LocalClassMirrorImpl extends _LocalObjectMirrorImpl
|
| return _superinterfaces;
|
| }
|
|
|
| + _unmangleQualified(Symbol s) {
|
| + return _n(s).split('.').map((n) => MirrorSystem.getName(_s(n))).join('.');
|
| + }
|
| +
|
| get _mixinApplicationName {
|
| var mixins = new List<ClassMirror>();
|
| var klass = this;
|
| @@ -593,10 +597,12 @@ class _LocalClassMirrorImpl extends _LocalObjectMirrorImpl
|
| mixins.add(klass.mixin);
|
| klass = klass.superclass;
|
| }
|
| + // Strip out the private manglings early, but the VM's unmangling routine
|
| + // can't cope with them.
|
| return _s(
|
| - _n(klass.qualifiedName)
|
| + _unmangleQualified(klass.qualifiedName)
|
| + ' with '
|
| - + mixins.reversed.map((m)=>_n(m.qualifiedName)).join(', '));
|
| + + mixins.reversed.map((m)=>_unmangleQualified(m.qualifiedName)).join(', '));
|
| }
|
|
|
| var _mixin;
|
| @@ -1336,7 +1342,8 @@ class _LocalMethodMirrorImpl extends _LocalDeclarationMirrorImpl
|
| 'Internal error in MethodMirror.constructorName: '
|
| 'malformed name <$simpleName>');
|
| } else if (parts.length == 2) {
|
| - _constructorName = _s(parts[1]);
|
| + LibraryMirror definingLibrary = owner.owner;
|
| + _constructorName = MirrorSystem.getSymbol(parts[1], definingLibrary);
|
| } else {
|
| _constructorName = _s('');
|
| }
|
|
|