diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 1c2b11c0..57a43ebe 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -11,7 +11,7 @@ jobs: name: Add issue to project runs-on: ubuntu-latest steps: - - uses: actions/add-to-project@v1.0.0 + - uses: actions/add-to-project@v1.0.1 with: project-url: https://github.com/users/rrousselGit/projects/8 github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} diff --git a/packages/freezed/CHANGELOG.md b/packages/freezed/CHANGELOG.md index b9a83013..9ceddcee 100644 --- a/packages/freezed/CHANGELOG.md +++ b/packages/freezed/CHANGELOG.md @@ -1,3 +1,7 @@ +## Unreleased patch + +- Support analyzer 6.5.0 + ## 2.5.2 - 2024-04-11 - Fixed `copyWith(value: null)` when using nullable generics diff --git a/packages/freezed/lib/src/freezed_generator.dart b/packages/freezed/lib/src/freezed_generator.dart index 01df2ac9..b0e044b3 100644 --- a/packages/freezed/lib/src/freezed_generator.dart +++ b/packages/freezed/lib/src/freezed_generator.dart @@ -303,7 +303,6 @@ class FreezedGenerator extends ParserGenerator { final commonTypeString = resolveFullTypeStringFrom( library, commonTypeBetweenAllUnionConstructors, - withNullability: true, ); final commonProperty = Property( @@ -341,7 +340,6 @@ class FreezedGenerator extends ParserGenerator { type: resolveFullTypeStringFrom( library, copyWithType, - withNullability: true, ), isNullable: copyWithType.isNullable, isDartList: copyWithType.isDartCoreList, @@ -488,7 +486,6 @@ class FreezedGenerator extends ParserGenerator { yield resolveFullTypeStringFrom( constructor.library, (object.type! as InterfaceType).typeArguments.single, - withNullability: false, ); } } @@ -508,7 +505,6 @@ class FreezedGenerator extends ParserGenerator { yield resolveFullTypeStringFrom( constructor.library, (object.type! as InterfaceType).typeArguments.single, - withNullability: false, ); } } @@ -547,7 +543,7 @@ class FreezedGenerator extends ParserGenerator { genericParameters: GenericsParameterTemplate( (parameter.type as InterfaceType) .typeArguments - .map((e) => e.getDisplayString(withNullability: true)) + .map((e) => e.getDisplayString()) .toList(), ), ); diff --git a/packages/freezed/lib/src/templates/concrete_template.dart b/packages/freezed/lib/src/templates/concrete_template.dart index 8bc704a7..13d06d5c 100644 --- a/packages/freezed/lib/src/templates/concrete_template.dart +++ b/packages/freezed/lib/src/templates/concrete_template.dart @@ -559,7 +559,7 @@ extension DefaultValue on ParameterElement { } String? parseTypeSource(VariableElement element) { - String? type = element.type.getDisplayString(withNullability: true); + String? type = element.type.getDisplayString(); if ((type.contains('dynamic') || type.contains('InvalidType')) && element.nameOffset > 0) { @@ -578,6 +578,5 @@ String? parseTypeSource(VariableElement element) { return resolveFullTypeStringFrom( element.library!, element.type, - withNullability: true, ); } diff --git a/packages/freezed/lib/src/templates/parameter_template.dart b/packages/freezed/lib/src/templates/parameter_template.dart index 31dbb8cc..3985fd5f 100644 --- a/packages/freezed/lib/src/templates/parameter_template.dart +++ b/packages/freezed/lib/src/templates/parameter_template.dart @@ -13,7 +13,7 @@ class GenericsDefinitionTemplate { factory GenericsDefinitionTemplate.fromGenericElement( List generics) { return GenericsDefinitionTemplate( - generics.map((e) => e.getDisplayString(withNullability: true)).toList(), + generics.map((e) => e.getDisplayString()).toList(), ); } diff --git a/packages/freezed/lib/src/tools/type.dart b/packages/freezed/lib/src/tools/type.dart index 5c20ce49..61444674 100644 --- a/packages/freezed/lib/src/tools/type.dart +++ b/packages/freezed/lib/src/tools/type.dart @@ -39,9 +39,8 @@ Element? _getElementForType(DartType type) { /// Renders a type based on its string + potential import alias String resolveFullTypeStringFrom( LibraryElement originLibrary, - DartType type, { - required bool withNullability, -}) { + DartType type, +) { final owner = originLibrary.prefixes.firstWhereOrNull( (e) { return e.imports.any((l) { @@ -52,7 +51,7 @@ String resolveFullTypeStringFrom( }, ); - String? displayType = type.getDisplayString(withNullability: withNullability); + String? displayType = type.getDisplayString(); // The parameter is a typedef in the form of // SomeTypedef typedef @@ -95,7 +94,7 @@ String resolveFullTypeStringFrom( (t) => t is InvalidType, dynamicType, ); - displayType = modified.getDisplayString(withNullability: withNullability); + displayType = modified.getDisplayString(); } if (owner != null) { diff --git a/packages/freezed/pubspec.yaml b/packages/freezed/pubspec.yaml index afd4e642..33bfef81 100644 --- a/packages/freezed/pubspec.yaml +++ b/packages/freezed/pubspec.yaml @@ -10,7 +10,7 @@ environment: sdk: ">=2.17.0 <3.0.0" dependencies: - analyzer: ">=5.13.0 <7.0.0" + analyzer: ">=6.5.0 <7.0.0" build: ^2.3.1 build_config: ^1.1.0 collection: ^1.15.0 @@ -18,6 +18,8 @@ dependencies: source_gen: ^1.4.0 freezed_annotation: ^2.4.1 json_annotation: ^4.6.0 + # Indirect dependency, but fixes a compiler error when using `pub downgrade` + dart_style: ^2.3.6 dev_dependencies: json_serializable: ^6.3.2 diff --git a/packages/freezed/test/multiple_constructors_test.dart b/packages/freezed/test/multiple_constructors_test.dart index db4acb31..12b12ea2 100644 --- a/packages/freezed/test/multiple_constructors_test.dart +++ b/packages/freezed/test/multiple_constructors_test.dart @@ -36,10 +36,7 @@ Future main() async { final recursiveClass = _getClassElement('_RecursiveWith\$DollarNext'); expect( - recursiveClass - .getField('value')! - .type - .getDisplayString(withNullability: true), + recursiveClass.getField('value')!.type.getDisplayString(), 'RecursiveWith\$DollarImpl', ); }); @@ -532,31 +529,19 @@ void main() { test('generates List of correct type', () async { final nestedListClass = _getClassElement('ShallowNestedList'); - expect( - nestedListClass - .getField('children')! - .type - .getDisplayString(withNullability: true), + expect(nestedListClass.getField('children')!.type.getDisplayString(), 'List'); }); test('generates List of correct type for deeply nested case', () async { final nestedListClass = _getClassElement('DeepNestedList'); - expect( - nestedListClass - .getField('children')! - .type - .getDisplayString(withNullability: true), + expect(nestedListClass.getField('children')!.type.getDisplayString(), 'List'); final nestedListItemClass = _getClassElement('InnerNestedListItem'); - expect( - nestedListItemClass - .getField('children')! - .type - .getDisplayString(withNullability: true), + expect(nestedListItemClass.getField('children')!.type.getDisplayString(), 'List'); }); }); @@ -564,31 +549,19 @@ void main() { test('generates Map of correct type', () async { final nestedMapClass = _getClassElement('ShallowNestedMap'); - expect( - nestedMapClass - .getField('children')! - .type - .getDisplayString(withNullability: true), + expect(nestedMapClass.getField('children')!.type.getDisplayString(), 'Map'); }); test('generates Map of correct type for deeply nested case', () async { final nestedMapClass = _getClassElement('DeepNestedMap'); - expect( - nestedMapClass - .getField('children')! - .type - .getDisplayString(withNullability: true), + expect(nestedMapClass.getField('children')!.type.getDisplayString(), 'Map'); final nestedMapItemClass = _getClassElement('InnerNestedMapItem'); - expect( - nestedMapItemClass - .getField('children')! - .type - .getDisplayString(withNullability: true), + expect(nestedMapItemClass.getField('children')!.type.getDisplayString(), 'Map'); }); }); @@ -598,31 +571,19 @@ void main() { final nestedMapClass = _getClassElement('_UsesGenerated'); expect( - nestedMapClass - .getField('value')! - .type - .getDisplayString(withNullability: true), + nestedMapClass.getField('value')!.type.getDisplayString(), 'CodeGenerated', ); expect( - nestedMapClass - .getField('list')! - .type - .getDisplayString(withNullability: true), + nestedMapClass.getField('list')!.type.getDisplayString(), 'List', ); expect( - nestedMapClass - .getField('nestedList')! - .type - .getDisplayString(withNullability: true), + nestedMapClass.getField('nestedList')!.type.getDisplayString(), 'List>', ); expect( - nestedMapClass - .getField('map')! - .type - .getDisplayString(withNullability: true), + nestedMapClass.getField('map')!.type.getDisplayString(), 'Map', ); }); diff --git a/packages/freezed_lint/CHANGELOG.md b/packages/freezed_lint/CHANGELOG.md index 0caca882..a7acc39d 100644 --- a/packages/freezed_lint/CHANGELOG.md +++ b/packages/freezed_lint/CHANGELOG.md @@ -1,3 +1,7 @@ +## Unreleased patch + +- Support analyzer 6.5.0 + ## 0.0.1 - 2024-02-04 - Support latest custom_lint version. diff --git a/packages/freezed_lint/lib/src/missing_mixin.dart b/packages/freezed_lint/lib/src/missing_mixin.dart index 6945410b..2b486f78 100644 --- a/packages/freezed_lint/lib/src/missing_mixin.dart +++ b/packages/freezed_lint/lib/src/missing_mixin.dart @@ -27,13 +27,13 @@ class MissingMixin extends DartLintRule { final name = '_\$${element.name}'; final withClause = node.withClause; if (withClause == null) { - reporter.reportErrorForElement(code, element, [name]); + reporter.atElement(element, code, arguments: [name]); return; } final mixins = withClause.mixinTypes; if (mixins.any((m) => name == m.name2.lexeme)) return; - reporter.reportErrorForElement(code, element, [name]); + reporter.atElement(element, code, arguments: [name]); }); } diff --git a/packages/freezed_lint/lib/src/missing_private_empty_ctor.dart b/packages/freezed_lint/lib/src/missing_private_empty_ctor.dart index 6212a8c8..cbf6191c 100644 --- a/packages/freezed_lint/lib/src/missing_private_empty_ctor.dart +++ b/packages/freezed_lint/lib/src/missing_private_empty_ctor.dart @@ -40,7 +40,7 @@ class MissingPrivateEmptyCtor extends DartLintRule { final constToken = element.constToken(); final name = '${constToken}${element.displayName}._();'; - reporter.reportErrorForElement(code, element, [name]); + reporter.atElement(element, code, arguments: [name]); }); } diff --git a/packages/freezed_lint/lib/src/tools/element_extensions.dart b/packages/freezed_lint/lib/src/tools/element_extensions.dart index d23f9635..8c47fca8 100644 --- a/packages/freezed_lint/lib/src/tools/element_extensions.dart +++ b/packages/freezed_lint/lib/src/tools/element_extensions.dart @@ -2,9 +2,7 @@ import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/type.dart'; extension DartTypeExt on DartType { - bool hasName(String name) { - return getDisplayString(withNullability: false) == name; - } + bool hasName(String name) => getDisplayString() == name; } extension ClassElementExt on ClassElement { diff --git a/packages/freezed_lint/pubspec.yaml b/packages/freezed_lint/pubspec.yaml index efabeabf..8f41774b 100644 --- a/packages/freezed_lint/pubspec.yaml +++ b/packages/freezed_lint/pubspec.yaml @@ -9,7 +9,7 @@ environment: sdk: ">=3.0.0 <4.0.0" dependencies: - analyzer: ^6.0.0 + analyzer: ^6.5.0 analyzer_plugin: ^0.11.2 custom_lint_builder: ^0.6.0 freezed_annotation: ^2.3.0 diff --git a/sponsorkit/sponsors.svg b/sponsorkit/sponsors.svg index 68d0bf01..661da032 100644 --- a/sponsorkit/sponsors.svg +++ b/sponsorkit/sponsors.svg @@ -1,5 +1,5 @@ - +