Skip to content

Commit 4219ddd

Browse files
authored
Added a toString() and a test. (#313)
1 parent a2ef2c3 commit 4219ddd

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 0.7.5+1
2+
3+
* `LibraryBuilder` and `PartBuilder` now have a more readable `toString()`,
4+
which is useful when emitting a warning or error in a build system. For
5+
example you may see `Generating .g.dart: MyBuilder` instead of
6+
`Instance of LibraryBuilder` in your build logs.
7+
18
## 0.7.5
29

310
* The `PartBuilder` constructor parameter `requireLibraryDirective` now defaults

lib/src/builder.dart

+5
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,11 @@ class _Builder extends Builder {
154154
// ignore: unawaited_futures
155155
buildStep.writeAsString(outputId, genPartContent);
156156
}
157+
158+
@override
159+
String toString() {
160+
return 'Generating $_generatedExtension: ${_generators.join(', ')}';
161+
}
157162
}
158163

159164
/// A [Builder] which generates `part of` files.

pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: source_gen
2-
version: 0.7.5
2+
version: 0.7.5+1
33
author: Dart Team <[email protected]>
44
description: Automated source code generation for Dart.
55
homepage: https://github.com/dart-lang/source_gen

test/builder_test.dart

+16
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,17 @@ void main() {
215215
expect(
216216
logs.map((l) => l.message), contains(contains('$pkgName|lib/a.dart')));
217217
});
218+
219+
test('Should have a readable toString() message for builders', () {
220+
final builder = new LibraryBuilder(new _NoOpGenerator());
221+
expect(builder.toString(), 'Generating .g.dart: NOOP');
222+
223+
final builders = new PartBuilder([
224+
new _NoOpGenerator(),
225+
new _NoOpGenerator(),
226+
]);
227+
expect(builders.toString(), 'Generating .g.dart: NOOP, NOOP');
228+
});
218229
}
219230

220231
Future _generateTest(CommentGenerator gen, String expectedContent) async {
@@ -241,12 +252,17 @@ Map<String, String> _createPackageStub(String pkgName,
241252
/// Doesn't generate output for any element
242253
class _NoOpGenerator extends Generator {
243254
const _NoOpGenerator();
255+
244256
@override
245257
Future<String> generate(LibraryReader library, _) => null;
258+
259+
@override
260+
String toString() => 'NOOP';
246261
}
247262

248263
class _BadOutputGenerator extends Generator {
249264
const _BadOutputGenerator();
265+
250266
@override
251267
Future<String> generate(LibraryReader library, _) async => 'not valid code!';
252268
}

0 commit comments

Comments
 (0)