| Index: pkg/serialization/lib/src/serialization_rule.dart
|
| diff --git a/pkg/serialization/lib/src/serialization_rule.dart b/pkg/serialization/lib/src/serialization_rule.dart
|
| index 49e42ae7885db2724f4bb509a7f85c5a81af7a65..38fafca6d93e187859173e37655e4d6208d57300 100644
|
| --- a/pkg/serialization/lib/src/serialization_rule.dart
|
| +++ b/pkg/serialization/lib/src/serialization_rule.dart
|
| @@ -410,13 +410,17 @@ class MirrorRule extends NamedObjectRule {
|
| if (name.contains(":")) {
|
| var uri = Uri.parse(name);
|
| var libMirror = currentMirrorSystem().libraries[uri];
|
| - return libMirror.classes[new Symbol(type)];
|
| + var candidate = libMirror.declarations[new Symbol(type)];
|
| + return candidate is ClassMirror ? candidate : null;
|
| } else {
|
| var symbol = new Symbol(name);
|
| var typeSymbol = new Symbol(type);
|
| - var libMirror = currentMirrorSystem().libraries.values.firstWhere(
|
| - (lib) => lib.simpleName == symbol && lib.classes[typeSymbol] != null);
|
| - return libMirror.classes[typeSymbol];
|
| + for (var libMirror in currentMirrorSystem().libraries.values) {
|
| + if (libMirror.simpleName != symbol) continue;
|
| + var candidate = libMirror.declarations[typeSymbol];
|
| + if (candidate != null && candidate is ClassMirror) return candidate;
|
| + }
|
| + return null;
|
| }
|
| }
|
| }
|
|
|