diff --git a/lib/src/analyzer_plugin/analyzer_plugin_utils.dart b/lib/src/analyzer_plugin/analyzer_plugin_utils.dart index e2e0678df7..cb1e7e8771 100644 --- a/lib/src/analyzer_plugin/analyzer_plugin_utils.dart +++ b/lib/src/analyzer_plugin/analyzer_plugin_utils.dart @@ -1,12 +1,9 @@ import 'package:analyzer/dart/analysis/results.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin; import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; -import 'package:source_span/source_span.dart'; -import '../analyzers/lint_analyzer/lint_analysis_config.dart'; import '../analyzers/lint_analyzer/models/issue.dart'; import '../analyzers/lint_analyzer/models/severity.dart'; -import '../config_builder/models/deprecated_option.dart'; import '../utils/path_utils.dart'; plugin.AnalysisErrorFixes codeIssueToAnalysisErrorFixes( @@ -62,67 +59,6 @@ plugin.AnalysisErrorFixes codeIssueToAnalysisErrorFixes( ); } -plugin.AnalysisErrorFixes metricReportToAnalysisErrorFixes( - SourceLocation startLocation, - int length, - String message, - String metricId, -) => - plugin.AnalysisErrorFixes(plugin.AnalysisError( - plugin.AnalysisErrorSeverity.INFO, - plugin.AnalysisErrorType.LINT, - plugin.Location( - startLocation.sourceUrl!.path, - startLocation.offset, - length, - startLocation.line, - startLocation.column, - endLine: startLocation.line, - endColumn: startLocation.column, - ), - message, - metricId, - hasFix: false, - )); - -Iterable checkConfigDeprecatedOptions( - LintAnalysisConfig config, - Iterable deprecatedOptions, - String analysisOptionPath, -) { - final ids = { - ...config.codeRules.map((rule) => rule.id), - ...config.methodsMetrics.map((metric) => metric.id), - ...config.antiPatterns.map((pattern) => pattern.id), - ...config.metricsConfig.keys, - }; - - final location = - SourceLocation(0, sourceUrl: analysisOptionPath, line: 0, column: 0); - - final documentation = Uri.parse( - 'https://github.com/dart-code-checker/dart-code-metrics/blob/master/CHANGELOG.md', - ); - - return deprecatedOptions - .where((option) => ids.contains(option.deprecated)) - .map((option) => codeIssueToAnalysisErrorFixes( - Issue( - ruleId: 'dart-code-metrics', - documentation: documentation, - location: SourceSpan(location, location, ''), - severity: Severity.warning, - message: - '${option.deprecated} deprecated option. This option will be removed in ${option.supportUntilVersion} version.', - verboseMessage: option.replacement != null - ? 'Please migrate on ${option.replacement}, and restart analysis server.' - : null, - ), - null, - )) - .toList(); -} - const _severityMapping = { Severity.error: plugin.AnalysisErrorSeverity.ERROR, Severity.warning: plugin.AnalysisErrorSeverity.WARNING, diff --git a/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_method.dart b/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_method.dart index b8d8e33c47..78b0baa04d 100644 --- a/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_method.dart +++ b/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_method.dart @@ -8,7 +8,6 @@ import '../../../../utils/node_utils.dart'; import '../../lint_utils.dart'; import '../../metrics/metric_utils.dart'; import '../../metrics/metrics_list/source_lines_of_code/source_lines_of_code_metric.dart'; -import '../../models/entity_type.dart'; import '../../models/internal_resolved_unit_result.dart'; import '../../models/issue.dart'; import '../../models/report.dart'; @@ -35,7 +34,6 @@ class LongMethod extends Pattern { ), super( id: patternId, - supportedType: EntityType.methodEntity, severity: readSeverity(patternSettings, Severity.none), excludes: readExcludes(patternSettings), ); diff --git a/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_parameter_list.dart b/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_parameter_list.dart index 9eaff026ff..a40148e79c 100644 --- a/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_parameter_list.dart +++ b/lib/src/analyzers/lint_analyzer/anti_patterns/anti_patterns_list/long_parameter_list.dart @@ -4,7 +4,6 @@ import '../../../../utils/node_utils.dart'; import '../../lint_utils.dart'; import '../../metrics/metric_utils.dart'; import '../../metrics/metrics_list/number_of_parameters_metric.dart'; -import '../../models/entity_type.dart'; import '../../models/function_type.dart'; import '../../models/internal_resolved_unit_result.dart'; import '../../models/issue.dart'; @@ -33,7 +32,6 @@ class LongParameterList extends Pattern { ), super( id: patternId, - supportedType: EntityType.methodEntity, severity: readSeverity(patternSettings, Severity.none), excludes: readExcludes(patternSettings), ); diff --git a/lib/src/analyzers/lint_analyzer/anti_patterns/models/pattern.dart b/lib/src/analyzers/lint_analyzer/anti_patterns/models/pattern.dart index 30420b313f..ab2dc32b66 100644 --- a/lib/src/analyzers/lint_analyzer/anti_patterns/models/pattern.dart +++ b/lib/src/analyzers/lint_analyzer/anti_patterns/models/pattern.dart @@ -1,4 +1,3 @@ -import '../../models/entity_type.dart'; import '../../models/internal_resolved_unit_result.dart'; import '../../models/issue.dart'; import '../../models/report.dart'; @@ -13,9 +12,6 @@ abstract class Pattern { /// The id of the pattern. final String id; - /// The type of entities which will be analyzed by the pattern. - final EntityType supportedType; - /// The severity of issues emitted by the pattern. final Severity severity; @@ -27,7 +23,6 @@ abstract class Pattern { const Pattern({ required this.id, - required this.supportedType, required this.severity, required this.excludes, }); diff --git a/lib/src/analyzers/lint_analyzer/anti_patterns/pattern_utils.dart b/lib/src/analyzers/lint_analyzer/anti_patterns/pattern_utils.dart index 7a0287a160..0e41a0a3fa 100644 --- a/lib/src/analyzers/lint_analyzer/anti_patterns/pattern_utils.dart +++ b/lib/src/analyzers/lint_analyzer/anti_patterns/pattern_utils.dart @@ -1,8 +1,6 @@ -import 'package:analyzer/dart/ast/ast.dart'; import 'package:source_span/source_span.dart'; import '../models/issue.dart'; -import '../models/scoped_function_declaration.dart'; import 'models/pattern.dart'; Issue createIssue({ @@ -31,17 +29,3 @@ Uri documentation(Pattern pattern) => Uri( pattern.id, ], ); - -int getArgumentsCount(ScopedFunctionDeclaration dec) { - final declaration = dec.declaration; - - int? argumentsCount; - if (declaration is FunctionDeclaration) { - argumentsCount = - declaration.functionExpression.parameters?.parameters.length; - } else if (declaration is MethodDeclaration) { - argumentsCount = declaration.parameters?.parameters.length; - } - - return argumentsCount ?? 0; -} diff --git a/lib/src/analyzers/lint_analyzer/anti_patterns/patterns_factory.dart b/lib/src/analyzers/lint_analyzer/anti_patterns/patterns_factory.dart index ce5a3b3300..aca9d7e53d 100644 --- a/lib/src/analyzers/lint_analyzer/anti_patterns/patterns_factory.dart +++ b/lib/src/analyzers/lint_analyzer/anti_patterns/patterns_factory.dart @@ -17,9 +17,6 @@ final _implementedPatterns = { ), }; -Iterable get allPatterns => - _implementedPatterns.keys.map((id) => _implementedPatterns[id]!({}, {})); - Iterable getPatternsById(LintConfig config) => List.unmodifiable(_implementedPatterns.keys .where((id) => config.antiPatterns.keys.contains(id)) diff --git a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/code_climate/models/code_climate_issue_category.dart b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/code_climate/models/code_climate_issue_category.dart index 6d405a5b64..8f0ea2fa60 100644 --- a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/code_climate/models/code_climate_issue_category.dart +++ b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/code_climate/models/code_climate_issue_category.dart @@ -1,3 +1,5 @@ +// ignore_for_file: unused-code + /// Represents a Code Climate issue category. class CodeClimateIssueCategory { static const bugRisk = CodeClimateIssueCategory._('Bug Risk'); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart b/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart index 214862b889..0be7acfd64 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart @@ -170,9 +170,6 @@ final _implementedRules = )>{ Iterable get allRuleIds => _implementedRules.keys; -Iterable get allRules => - _implementedRules.keys.map((id) => _implementedRules[id]!({})); - Iterable getRulesById(Map> rulesConfig) => List.unmodifiable(_implementedRules.keys .where((id) => rulesConfig.keys.contains(id)) diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_correct_edge_insets_constructor/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_correct_edge_insets_constructor/visitor.dart index 5ba90d255e..ced36f1253 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_correct_edge_insets_constructor/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_correct_edge_insets_constructor/visitor.dart @@ -11,8 +11,6 @@ const _constructorNameOnly = 'only'; class _Visitor extends RecursiveAstVisitor { final _expressions = {}; - final _Validator validator = _Validator(); - Map get expressions => _expressions; diff --git a/lib/src/cli/commands/analyze_command.dart b/lib/src/cli/commands/analyze_command.dart index e4b60bed21..01c8a643df 100644 --- a/lib/src/cli/commands/analyze_command.dart +++ b/lib/src/cli/commands/analyze_command.dart @@ -2,8 +2,6 @@ import 'dart:io'; -import 'package:collection/collection.dart'; - import '../../analyzers/lint_analyzer/lint_analyzer.dart'; import '../../analyzers/lint_analyzer/metrics/metrics_factory.dart'; import '../../analyzers/lint_analyzer/metrics/models/metric_value_level.dart'; @@ -13,7 +11,6 @@ import '../../analyzers/lint_analyzer/reporters/lint_report_params.dart'; import '../../analyzers/lint_analyzer/reporters/reporters_list/json/lint_json_reporter.dart'; import '../../analyzers/lint_analyzer/utils/report_utils.dart'; import '../../config_builder/config_builder.dart'; -import '../../config_builder/models/deprecated_option.dart'; import '../../logger/logger.dart'; import '../models/flag_names.dart'; import '../models/parsed_arguments.dart'; @@ -160,15 +157,9 @@ class AnalyzeCommand extends BaseCommand { argParser.addSeparator(''); for (final metric in getMetrics(config: {})) { - final deprecation = deprecatedOptions - .firstWhereOrNull((option) => option.deprecated == metric.id); - final deprecationMessage = deprecation != null - ? ' (deprecated, will be removed in ${deprecation.supportUntilVersion} version)' - : ''; - argParser.addOption( metric.id, - help: '${metric.documentation.name} threshold$deprecationMessage.', + help: '${metric.documentation.name} threshold.', valueHelp: '${metric.documentation.recommendedThreshold}', callback: (i) { if (i != null && int.tryParse(i) == null) { diff --git a/lib/src/config_builder/models/deprecated_option.dart b/lib/src/config_builder/models/deprecated_option.dart deleted file mode 100644 index 0cbf89c4c2..0000000000 --- a/lib/src/config_builder/models/deprecated_option.dart +++ /dev/null @@ -1,19 +0,0 @@ -/// Class representing deprecated config option. -class DeprecatedOption { - /// The last version number which supports the option. - final String supportUntilVersion; - - /// Deprecated option name. - final String deprecated; - - /// New option name (optional). - final String? replacement; - - const DeprecatedOption({ - required this.supportUntilVersion, - required this.deprecated, - this.replacement, - }); -} - -const Iterable deprecatedOptions = []; diff --git a/lib/src/utils/dart_types_utils.dart b/lib/src/utils/dart_types_utils.dart index fee5c179ee..dffdcb0546 100644 --- a/lib/src/utils/dart_types_utils.dart +++ b/lib/src/utils/dart_types_utils.dart @@ -9,6 +9,7 @@ bool isIterableOrSubclass(DartType? type) => bool isListOrSubclass(DartType? type) => _checkSelfOrSupertypes(type, (t) => t?.isDartCoreList ?? false); +// ignore: unused-code bool isMapOrSubclass(DartType? type) => _checkSelfOrSupertypes(type, (t) => t?.isDartCoreMap ?? false); diff --git a/test/src/analyzer_plugin/analyzer_plugin_utils_test.dart b/test/src/analyzer_plugin/analyzer_plugin_utils_test.dart index a3495e2b35..56e72c322b 100644 --- a/test/src/analyzer_plugin/analyzer_plugin_utils_test.dart +++ b/test/src/analyzer_plugin/analyzer_plugin_utils_test.dart @@ -8,8 +8,6 @@ import 'package:mocktail/mocktail.dart'; import 'package:source_span/source_span.dart'; import 'package:test/test.dart'; -class AnalysisResultMock extends Mock implements AnalysisResult {} - class ResolvedUnitResultMock extends Mock implements ResolvedUnitResult {} void main() { @@ -140,39 +138,4 @@ void main() { testOn: 'posix', ); }); - - test( - 'metricReportToAnalysisErrorFixes constructs AnalysisErrorFixes from metric report', - () { - const metricMessage = 'diagnostic message'; - const metricId = 'metric id'; - - final fixes = metricReportToAnalysisErrorFixes( - SourceLocation( - offset, - sourceUrl: Uri.parse(sourcePath), - line: line, - column: column, - ), - length, - metricMessage, - metricId, - ); - - expect(fixes.error.severity, equals(AnalysisErrorSeverity.INFO)); - expect(fixes.error.type, equals(AnalysisErrorType.LINT)); - expect(fixes.error.location.file, equals(sourcePath)); - expect(fixes.error.location.offset, equals(5)); - expect(fixes.error.location, hasLength(length)); - expect(fixes.error.location.startLine, equals(line)); - expect(fixes.error.location.startColumn, equals(column)); - expect(fixes.error.message, equals(metricMessage)); - expect(fixes.error.code, equals(metricId)); - expect(fixes.error.correction, isNull); - expect(fixes.error.url, isNull); - expect(fixes.error.contextMessages, isNull); - expect(fixes.error.hasFix, isFalse); - expect(fixes.fixes, isEmpty); - }, - ); } diff --git a/test/src/analyzers/lint_analyzer/anti_patterns/pattern_utils_test.dart b/test/src/analyzers/lint_analyzer/anti_patterns/pattern_utils_test.dart index be8833a444..a084d8607d 100644 --- a/test/src/analyzers/lint_analyzer/anti_patterns/pattern_utils_test.dart +++ b/test/src/analyzers/lint_analyzer/anti_patterns/pattern_utils_test.dart @@ -1,8 +1,5 @@ -import 'package:analyzer/dart/ast/ast.dart'; import 'package:dart_code_metrics/src/analyzers/lint_analyzer/anti_patterns/models/pattern.dart'; import 'package:dart_code_metrics/src/analyzers/lint_analyzer/anti_patterns/pattern_utils.dart'; -import 'package:dart_code_metrics/src/analyzers/lint_analyzer/models/function_type.dart'; -import 'package:dart_code_metrics/src/analyzers/lint_analyzer/models/scoped_function_declaration.dart'; import 'package:dart_code_metrics/src/analyzers/lint_analyzer/models/severity.dart'; import 'package:mocktail/mocktail.dart'; import 'package:source_span/source_span.dart'; @@ -73,77 +70,5 @@ void main() { equals(patternId2), ); }); - - group('getArgumentsCount returns arguments count of', () { - late _FormalParameterListMock formalParameterListMock; - late _NodeListMock nodeListMock; - - setUp(() { - formalParameterListMock = _FormalParameterListMock(); - nodeListMock = _NodeListMock(); - - when(() => formalParameterListMock.parameters).thenReturn(nodeListMock); - }); - - test('static function', () { - final functionDeclarationMock = _FunctionDeclarationMock(); - final functionExpressionMock = _FunctionExpressionMock(); - - when(() => functionDeclarationMock.functionExpression) - .thenReturn(functionExpressionMock); - when(() => functionExpressionMock.parameters) - .thenReturn(formalParameterListMock); - when(() => nodeListMock.length).thenReturn(1); - - final declaration = ScopedFunctionDeclaration( - FunctionType.function, - functionDeclarationMock, - null, - ); - - expect(getArgumentsCount(declaration), equals(1)); - }); - - test('class method', () { - final methodDeclarationMock = _MethodDeclarationMock(); - - final declaration = ScopedFunctionDeclaration( - FunctionType.function, - methodDeclarationMock, - null, - ); - - expect(getArgumentsCount(declaration), 0); - - when(() => methodDeclarationMock.parameters) - .thenReturn(formalParameterListMock); - when(() => nodeListMock.length).thenReturn(2); - - expect(getArgumentsCount(declaration), equals(2)); - }); - - test('class constructor', () { - final declaration = ScopedFunctionDeclaration( - FunctionType.function, - _ConstructorDeclarationMock(), - null, - ); - - expect(getArgumentsCount(declaration), isZero); - }); - }); }); } - -class _ConstructorDeclarationMock extends Mock - implements ConstructorDeclaration {} - -class _FunctionDeclarationMock extends Mock implements FunctionDeclaration {} - -class _FunctionExpressionMock extends Mock implements FunctionExpression {} - -class _FormalParameterListMock extends Mock implements FormalParameterList {} - -class _NodeListMock extends Mock implements NodeList {} - -class _MethodDeclarationMock extends Mock implements MethodDeclaration {} diff --git a/test/src/analyzers/lint_analyzer/metrics/metrics_list/class_metric_test.dart b/test/src/analyzers/lint_analyzer/metrics/metrics_list/class_metric_test.dart index 1ce7b9da24..9c91e4ef39 100644 --- a/test/src/analyzers/lint_analyzer/metrics/metrics_list/class_metric_test.dart +++ b/test/src/analyzers/lint_analyzer/metrics/metrics_list/class_metric_test.dart @@ -9,8 +9,6 @@ import 'package:test/test.dart'; class CompilationUnitMemberMock extends Mock implements CompilationUnitMember {} -class DeclarationMock extends Mock implements Declaration {} - class DocumentationMock extends Mock implements MetricDocumentation {} class ClassMetricTest extends ClassMetric { diff --git a/test/src/analyzers/lint_analyzer/metrics/metrics_list/function_metric_test.dart b/test/src/analyzers/lint_analyzer/metrics/metrics_list/function_metric_test.dart index 2afbb0c575..b79affa95c 100644 --- a/test/src/analyzers/lint_analyzer/metrics/metrics_list/function_metric_test.dart +++ b/test/src/analyzers/lint_analyzer/metrics/metrics_list/function_metric_test.dart @@ -9,8 +9,6 @@ import 'package:test/test.dart'; class CompilationUnitMemberMock extends Mock implements CompilationUnitMember {} -class DeclarationMock extends Mock implements Declaration {} - class DocumentationMock extends Mock implements MetricDocumentation {} class FunctionMetricTest extends FunctionMetric {