Skip to content

Commit b9d9bbe

Browse files
authored
Merge pull request #48 from davidmorgan/reject-dynamic-fields
Reject dynamic fields.
2 parents 26d1d72 + 8027539 commit b9d9bbe

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Add checking for correct type arguments for Built and Builder interfaces.
66
- Generate empty constructor with semicolon instead of {}.
77
- Use ArgumentError.notNull for null errors.
8+
- Reject dynamic fields.
89

910
## 0.1.5
1011

built_value_generator/lib/src/source_field.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ abstract class SourceField implements Built<SourceField, SourceFieldBuilder> {
116116
result.add('Make field $name a getter.');
117117
}
118118

119+
if (type == 'dynamic') {
120+
result.add('Make field $name have non-dynamic type.');
121+
}
122+
119123
if (builderFieldExists &&
120124
type != typeInBuilder &&
121125
// TODO(davidmorgan): smarter check for builder types.

built_value_generator/test/built_value_generator_test.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,17 @@ abstract class ValueBuilder extends Builder<Value, ValueBuilder> {
240240
}'''), contains("1. Make field foo a getter."));
241241
});
242242

243+
test('rejects unresolved fields', () async {
244+
expect(await generate('''library value;
245+
import 'package:built_value/built_value.dart';
246+
part 'value.g.dart';
247+
abstract class Value extends Built<Value, ValueBuilder> {
248+
Value._();
249+
factory Value([updates(ValueBuilder b)]) = _\$Value;
250+
NotFound get foo;
251+
}'''), contains("1. Make field foo have non-dynamic type."));
252+
});
253+
243254
test('suggests builder fields must be getters', () async {
244255
expect(await generate('''library value;
245256
import 'package:built_value/built_value.dart';

0 commit comments

Comments
 (0)