From edc2a14ad7d8d6c9b6e936d3dc0c75f29ba918cb Mon Sep 17 00:00:00 2001 From: Sergey Penkovsky Date: Tue, 15 Jul 2025 16:28:05 +0300 Subject: [PATCH] refactor: clean up unused code and fix all analyzer warnings - Removed all unused imports and variables across generator sources and tests - Applied Dart 3 super parameters to all custom exceptions - Project now passes 'dart analyze' with zero warnings or infos - All tests (164/164) are green This commit improves code clarity and ensures full compliance with modern Dart best practices. --- .../lib/inject_generator.dart | 7 +- .../lib/src/annotation_validator.dart | 1 - cherrypick_generator/lib/src/bind_spec.dart | 2 +- cherrypick_generator/lib/src/exceptions.dart | 64 ++++++------------- .../test/type_parser_test.dart | 2 +- 5 files changed, 24 insertions(+), 52 deletions(-) diff --git a/cherrypick_generator/lib/inject_generator.dart b/cherrypick_generator/lib/inject_generator.dart index a0f59e7..c93662d 100644 --- a/cherrypick_generator/lib/inject_generator.dart +++ b/cherrypick_generator/lib/inject_generator.dart @@ -13,8 +13,8 @@ import 'dart:async'; import 'package:analyzer/dart/constant/value.dart'; -import 'package:analyzer/dart/element/nullability_suffix.dart'; -import 'package:analyzer/dart/element/type.dart'; + + import 'package:build/build.dart'; import 'package:source_gen/source_gen.dart'; import 'package:analyzer/dart/element/element.dart'; @@ -85,9 +85,6 @@ class InjectGenerator extends GeneratorForAnnotation { final className = classElement.name; final mixinName = '_\$$className'; - // Get the source file name for the part directive - final sourceFile = classElement.source.shortName; - // Collect and process all @inject fields. final injectFields = classElement.fields .where(_isInjectField) diff --git a/cherrypick_generator/lib/src/annotation_validator.dart b/cherrypick_generator/lib/src/annotation_validator.dart index 1138517..be5e811 100644 --- a/cherrypick_generator/lib/src/annotation_validator.dart +++ b/cherrypick_generator/lib/src/annotation_validator.dart @@ -217,7 +217,6 @@ class AnnotationValidator { final obj = meta.computeConstantValue(); final type = obj?.type?.getDisplayString(); if (type == 'scope') { - final scopeName = obj?.getField('name')?.toStringValue(); // Empty scope name is treated as no scope (uses root scope) // This is allowed for backward compatibility and convenience } diff --git a/cherrypick_generator/lib/src/bind_spec.dart b/cherrypick_generator/lib/src/bind_spec.dart index cae6066..785a6b3 100644 --- a/cherrypick_generator/lib/src/bind_spec.dart +++ b/cherrypick_generator/lib/src/bind_spec.dart @@ -12,7 +12,7 @@ // import 'package:analyzer/dart/element/element.dart'; -import 'package:source_gen/source_gen.dart'; + import 'bind_parameters_spec.dart'; import 'metadata_utils.dart'; diff --git a/cherrypick_generator/lib/src/exceptions.dart b/cherrypick_generator/lib/src/exceptions.dart index 5752d67..c28280c 100644 --- a/cherrypick_generator/lib/src/exceptions.dart +++ b/cherrypick_generator/lib/src/exceptions.dart @@ -82,60 +82,36 @@ class CherryPickGeneratorException extends InvalidGenerationSourceError { /// Specific exception types for different error categories class AnnotationValidationException extends CherryPickGeneratorException { AnnotationValidationException( - String message, { - required Element element, - String? suggestion, - Map? context, - }) : super( - message, - element: element, - category: 'ANNOTATION_VALIDATION', - suggestion: suggestion, - context: context, - ); + super.message, { + required super.element, + super.suggestion, + super.context, + }) : super(category: 'ANNOTATION_VALIDATION'); } class TypeParsingException extends CherryPickGeneratorException { TypeParsingException( - String message, { - required Element element, - String? suggestion, - Map? context, - }) : super( - message, - element: element, - category: 'TYPE_PARSING', - suggestion: suggestion, - context: context, - ); + super.message, { + required super.element, + super.suggestion, + super.context, + }) : super(category: 'TYPE_PARSING'); } class CodeGenerationException extends CherryPickGeneratorException { CodeGenerationException( - String message, { - required Element element, - String? suggestion, - Map? context, - }) : super( - message, - element: element, - category: 'CODE_GENERATION', - suggestion: suggestion, - context: context, - ); + super.message, { + required super.element, + super.suggestion, + super.context, + }) : super(category: 'CODE_GENERATION'); } class DependencyResolutionException extends CherryPickGeneratorException { DependencyResolutionException( - String message, { - required Element element, - String? suggestion, - Map? context, - }) : super( - message, - element: element, - category: 'DEPENDENCY_RESOLUTION', - suggestion: suggestion, - context: context, - ); + super.message, { + required super.element, + super.suggestion, + super.context, + }) : super(category: 'DEPENDENCY_RESOLUTION'); } diff --git a/cherrypick_generator/test/type_parser_test.dart b/cherrypick_generator/test/type_parser_test.dart index 2ec0399..7e1ba88 100644 --- a/cherrypick_generator/test/type_parser_test.dart +++ b/cherrypick_generator/test/type_parser_test.dart @@ -1,5 +1,5 @@ import 'package:test/test.dart'; -import 'package:analyzer/dart/element/type.dart'; + import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/source.dart'; import 'package:cherrypick_generator/src/type_parser.dart';