Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
23 changes: 10 additions & 13 deletions _test_yaml/test/src/build_config.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ linter:
- unnecessary_breaks
- unnecessary_ignore
- use_full_hex_values_for_flutter_colors
- use_null_aware_elements
- use_string_buffers
15 changes: 7 additions & 8 deletions example/lib/example.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions json_serializable/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## 6.9.6-wip

- Move `package:collection` to a dev dependency.
- Use new `null-aware element` feature in generated code.
- Require Dart 3.8

## 6.9.5
Expand Down
8 changes: 3 additions & 5 deletions json_serializable/lib/src/encoder_helper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:source_helper/source_helper.dart';

import 'constants.dart';
import 'enum_utils.dart';
import 'helper_core.dart';
import 'type_helpers/generic_factory_helper.dart';
Expand Down Expand Up @@ -109,10 +108,9 @@ mixin EncodeHelper implements HelperCore {
final keyExpression = safeNameAccess(field);
final valueExpression = _serializeField(field, access);

final keyValuePair = _canWriteJsonWithoutNullCheck(field)
? '$keyExpression: $valueExpression'
: 'if ($valueExpression case final $generatedLocalVarName?) '
'$keyExpression: $generatedLocalVarName';
final maybeQuestion = _canWriteJsonWithoutNullCheck(field) ? '' : '?';

final keyValuePair = '$keyExpression: $maybeQuestion$valueExpression';
return ' $keyValuePair,\n';
}),
)
Expand Down
31 changes: 12 additions & 19 deletions json_serializable/test/integration/converter_examples.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions json_serializable/test/integration/json_enum_example.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions json_serializable/test/integration/json_test_example.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -199,10 +199,7 @@ class NoDeserializeBadKey {
@ShouldGenerate(r'''
Map<String, dynamic> _$IncludeIfNullOverrideToJson(
IncludeIfNullOverride instance,
) => <String, dynamic>{
'number': instance.number,
if (instance.str case final value?) 'str': value,
};
) => <String, dynamic>{'number': instance.number, 'str': ?instance.str};
''')
@JsonSerializable(createFactory: false, includeIfNull: false)
class IncludeIfNullOverride {
Expand Down
6 changes: 2 additions & 4 deletions json_serializable/test/src/inheritance_test_input.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ SubType _$SubTypeFromJson(Map<String, dynamic> json) =>

Map<String, dynamic> _$SubTypeToJson(SubType instance) => <String, dynamic>{
'super-final-field': instance.superFinalField,
if (instance.superReadWriteField case final value?)
'superReadWriteField': value,
'superReadWriteField': ?instance.superReadWriteField,
'subTypeViaCtor': instance.subTypeViaCtor,
'subTypeReadWrite': instance.subTypeReadWrite,
};
Expand Down Expand Up @@ -51,8 +50,7 @@ Map<String, dynamic> _$SubTypeWithAnnotatedFieldOverrideExtendsToJson(
SubTypeWithAnnotatedFieldOverrideExtends instance,
) => <String, dynamic>{
'super-final-field': instance.superFinalField,
if (instance.superReadWriteField case final value?)
'superReadWriteField': value,
'superReadWriteField': ?instance.superReadWriteField,
'priceHalf': instance.priceHalf,
};
''')
Expand Down
4 changes: 1 addition & 3 deletions json_serializable/test/src/to_from_json_test_input.dart
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,7 @@ String? _toStringNullOnEmpty(String input) => input.isEmpty ? null : input;
@ShouldGenerate(r'''
Map<String, dynamic> _$ToJsonNullableFalseIncludeIfNullFalseToJson(
ToJsonNullableFalseIncludeIfNullFalse instance,
) => <String, dynamic>{
if (_toStringNullOnEmpty(instance.field) case final value?) 'field': value,
};
) => <String, dynamic>{'field': ?_toStringNullOnEmpty(instance.field)};
''')
@JsonSerializable(createFactory: false)
class ToJsonNullableFalseIncludeIfNullFalse {
Expand Down