Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions package/inject_compile_generator/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## 0.9.2
- Throw StateError on circular dependency detection instead of logging a warning to a detached logger.

## 0.9.1
- Add example/example.md file

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,7 @@ class InjectorGraphResolver {
final index = chain.indexOf(current);
if (index != -1) {
final cycle = _Cycle(chain.sublist(index)..add(current));
if (cycles.add(cycle)) {
_logger.severe('Detected dependency cycle:\n${cycle.format()}');
}
cycles.add(cycle);
return;
}

Expand All @@ -155,6 +153,14 @@ class InjectorGraphResolver {

visit(key);
}

if (cycles.isNotEmpty) {
final message = StringBuffer('Detected circular dependencies:\n');
for (final cycle in cycles) {
message.writeln(cycle.format());
}
throw StateError(message.toString());
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion package/inject_compile_generator/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: inject_compile_generator
description: The dev dependency for package:inject_compile that enables compile time dependency injection.
version: 0.9.1
version: 0.9.2
homepage: https://github.com/dropbear-software/inject_compile/tree/main/package/inject_compile_generator
repository: https://github.com/dropbear-software/inject_compile/tree/main/package/inject_compile_generator
issue_tracker: https://github.com/dropbear-software/inject_compile/issues?q=is%3Aissue+is%3Aopen+label%3Apackage%3Ainject_compile_generator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ void main() {
);

final resolver = InjectorGraphResolver(reader, injectorSummary);
await resolver.resolve();
expect(resolver.resolve(), throwsStateError);
});
});
}
Expand Down
Loading