Releases: google/built_value.dart
Releases · google/built_value.dart
Fix to generated code
Fix generated serialization code when a manually declared builder causes a field to not use a nested builder.
Workaround for analyzer issue
Workaround for analyzer issue when implement
ing multiple classes that
use @BuiltValue(instantiable: false)
.
Relax restriction on `extends`
- Relax restriction on
extends
to allow for one special case: sharing of
code betweenbuilt_value
andconst
classes. The base class in question
must be abstract, have no fields, have no abstract getters and must not
implementoperator==
,hashCode
ortoString
.
Allow quiver 0.28
Merge pull request #334 from davidmorgan/bump-quiver Allow quiver 0.28; release 5.0.1.
Restrict using built_value in unsupported ways
This release makes built_value
actively block use in three unsupported ways. If you do need any of these to work, please file an issue and we'll look into it.
- Use of
extends
is prohibited; useimplements
orextends Object with
instead. - Importing
package:built_value/built_value.dart
withshow
oras
is prohibited; this hides symbols from the generated code. - Use of SDK collections in fields is prohibited; they are mutable and break the
built_value
guarantees.
Any problems please file an issue here: https://github.com/google/built_value.dart/issues
Allow hand-coded base builders
For classes using @BuiltValue(instantiate: false
, you can now hand-code the builder. This allows you to customize the base builder.
Better error messages; fix for serialization with StandardJsonPlugin
- Add custom
Error
classes:BuiltValueNullFieldError
,BuiltValueMissingGenericsError
andBuiltValueNestedFieldError
. These provide clearer error messages on failure. In particular, errors in nested builders now report the enclosing class and field name, making them much more useful. - Fix serialization when using polymorphism with StandardJsonPlugin.
Bump quiver and built_collection versions
Allow quiver 27 and built_collection 3.
Fix for generation when using summaries
This will not affect anyone using the standard (pub) build.
Many features, improvements and fixes
New features:
- Add
serialize
field to@BuiltValueField
. Use this to tag fields to skip
when serializing. - Add
wireName
field to@BuiltValue
and@BuiltValueField
. Use this to
override the wire name for classes and fields when serializing. - Add
@BuiltValueEnum
and@BuiltValueEnumConst
annotations for specifying
settings for enums. AddwireName
field to these to override the wire names
in enums when serializing. - Add support for polymorphism to
StandardJsonPlugin
. It will now specify
type names as needed via adiscriminator
field, which by defualt is
called$
. This can be changed in theStandardJsonPlugin
constructor. - Add
BuiltListAsyncDeserializer
. It provides a way to deserialize large
responses without blocking, provided the top level serialized type is
BuiltList
. - Add built in serializer for
Uri
.
Improvements:
- Allow declaration of multiple
Serializers
in the same file. - Explicitly disallow private fields; fail with an error during generation if
one is found. - Improve error message for field without type.
Fixes:
- Fix generated builder when fields hold function types.
- Fix checks and generated builder when manually maintained builder has
generics. - Fix name of classes generated from a private class.
- Fix builder and serializer generation when importing with a prefix.