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; |
+} |