| Index: third_party/pkg/di/lib/src/error_helper.dart
|
| diff --git a/third_party/pkg/di/lib/src/error_helper.dart b/third_party/pkg/di/lib/src/error_helper.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c6035882ee2784c14ef08241c554596f7e989ba8
|
| --- /dev/null
|
| +++ b/third_party/pkg/di/lib/src/error_helper.dart
|
| @@ -0,0 +1,23 @@
|
| +library di.error_helper;
|
| +
|
| +import 'package:di/di.dart';
|
| +import 'package:di/src/base_injector.dart';
|
| +
|
| +String error(ResolutionContext resolving, message, [Key appendDependency]) {
|
| + if (appendDependency != null) {
|
| + resolving = new ResolutionContext(resolving.depth + 1, appendDependency, resolving);
|
| + }
|
| +
|
| + String graph = resolvedTypes(resolving).reversed.join(' -> ');
|
| +
|
| + return '$message (resolving $graph)';
|
| +}
|
| +
|
| +List<Key> resolvedTypes(ResolutionContext resolving) {
|
| + List resolved = [];
|
| + while (resolving.depth != 0) {
|
| + resolved.add(resolving.key);
|
| + resolving = resolving.parent;
|
| + }
|
| + return resolved;
|
| +}
|
|
|