Skip to content

Commit 8c39dd2

Browse files
authored
Require Dart 3 and latest analyzer (#1319)
1 parent d8d41af commit 8c39dd2

File tree

15 files changed

+236
-152
lines changed

15 files changed

+236
-152
lines changed

.github/workflows/dart.yml

Lines changed: 187 additions & 91 deletions
Large diffs are not rendered by default.

_test_yaml/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: _test_yaml
22
publish_to: none
33

44
environment:
5-
sdk: '>=2.19.0 <3.0.0'
5+
sdk: ^3.0.0
66

77
dev_dependencies:
88
_json_serial_shared_test:

analysis_options.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ linter:
1515
- cancel_subscriptions
1616
- cascade_invocations
1717
- comment_references
18+
- invalid_case_patterns
1819
- join_return_with_assignment
1920
- literal_only_boolean_expressions
2021
- missing_whitespace_between_adjacent_strings
@@ -27,6 +28,8 @@ linter:
2728
- prefer_relative_imports
2829
- sort_child_properties_last
2930
- test_types_in_equals
31+
- type_literal_in_constant_pattern
32+
- unnecessary_breaks
3033
- unsafe_html
3134
- use_full_hex_values_for_flutter_colors
3235
- use_string_buffers

example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: example
22
publish_to: none
33

44
environment:
5-
sdk: '>=2.19.0 <3.0.0'
5+
sdk: ^3.0.0
66

77
dependencies:
88
json_annotation: ^4.8.0

json_serializable/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 6.7.0-dev
2+
3+
- Require Dart 3.0
4+
- Require `analyzer: ^5.12.0`
5+
16
## 6.6.2
27

38
- Better handling of `Object?` or `dynamic` as `fromJson` constructor param.

json_serializable/lib/src/decode_helper.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class CreateFactoryResult {
2121
CreateFactoryResult(this.output, this.usedFields);
2222
}
2323

24-
abstract class DecodeHelper implements HelperCore {
24+
mixin DecodeHelper implements HelperCore {
2525
CreateFactoryResult createFactory(
2626
Map<String, FieldElement> accessibleFields,
2727
Map<String, String> unavailableReasons,

json_serializable/lib/src/encoder_helper.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import 'type_helpers/generic_factory_helper.dart';
1313
import 'type_helpers/json_converter_helper.dart';
1414
import 'unsupported_type_error.dart';
1515

16-
abstract class EncodeHelper implements HelperCore {
16+
mixin EncodeHelper implements HelperCore {
1717
String _fieldAccess(FieldElement field) => '$_toJsonParamName.${field.name}';
1818

1919
String createPerFieldToJson(Set<FieldElement> accessibleFieldSet) {

json_serializable/lib/src/type_helpers/json_helper.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ TypeParameterType _decodeHelper(
181181
final funcParamType = type.normalParameterTypes.single;
182182

183183
if ((funcParamType.isDartCoreObject && funcParamType.isNullableType) ||
184-
funcParamType.isDynamic) {
184+
funcParamType is DynamicType) {
185185
return funcReturnType as TypeParameterType;
186186
}
187187
}
@@ -204,7 +204,7 @@ TypeParameterType _encodeHelper(
204204
final type = param.type;
205205

206206
if (type is FunctionType &&
207-
(type.returnType.isDartCoreObject || type.returnType.isDynamic) &&
207+
(type.returnType.isDartCoreObject || type.returnType is DynamicType) &&
208208
type.normalParameterTypes.length == 1) {
209209
final funcParamType = type.normalParameterTypes.single;
210210

json_serializable/lib/src/type_helpers/map_helper.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class MapHelper extends TypeHelper<TypeHelperContextWithConfig> {
6868

6969
_checkSafeKeyType(expression, keyArg);
7070

71-
final valueArgIsAny = valueArg.isDynamic ||
71+
final valueArgIsAny = valueArg is DynamicType ||
7272
(valueArg.isDartCoreObject && valueArg.isNullableType);
7373
final isKeyStringable = _isKeyStringable(keyArg);
7474

@@ -114,7 +114,7 @@ class MapHelper extends TypeHelper<TypeHelperContextWithConfig> {
114114
if (keyArg.isEnum) {
115115
keyUsage = context.deserialize(keyArg, _keyParam).toString();
116116
} else if (context.config.anyMap &&
117-
!(keyArg.isDartCoreObject || keyArg.isDynamic)) {
117+
!(keyArg.isDartCoreObject || keyArg is DynamicType)) {
118118
keyUsage = '$_keyParam as String';
119119
} else if (context.config.anyMap &&
120120
keyArg.isDartCoreObject &&
@@ -157,7 +157,7 @@ bool _isKeyStringable(DartType keyType) =>
157157
void _checkSafeKeyType(String expression, DartType keyArg) {
158158
// We're not going to handle converting key types at the moment
159159
// So the only safe types for key are dynamic/Object/String/enum
160-
if (keyArg.isDynamic ||
160+
if (keyArg is DynamicType ||
161161
(!keyArg.isNullableType &&
162162
(keyArg.isDartCoreObject ||
163163
coreStringTypeChecker.isExactlyType(keyArg) ||

json_serializable/lib/src/type_helpers/value_helper.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class ValueHelper extends TypeHelper {
2121
TypeHelperContext context,
2222
) {
2323
if (targetType.isDartCoreObject ||
24-
targetType.isDynamic ||
24+
targetType is DynamicType ||
2525
simpleJsonTypeChecker.isAssignableFromType(targetType)) {
2626
return expression;
2727
}
@@ -39,7 +39,7 @@ class ValueHelper extends TypeHelper {
3939
if (targetType.isDartCoreObject && !targetType.isNullableType) {
4040
final question = defaultProvided ? '?' : '';
4141
return '$expression as Object$question';
42-
} else if (targetType.isDartCoreObject || targetType.isDynamic) {
42+
} else if (targetType.isDartCoreObject || targetType is DynamicType) {
4343
// just return it as-is. We'll hope it's safe.
4444
return expression;
4545
} else if (targetType.isDartCoreDouble) {

0 commit comments

Comments
 (0)