Skip to content
This repository was archived by the owner on Jul 16, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all 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
4 changes: 2 additions & 2 deletions .github/workflows/package_analyze.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Install Dart 2.17.0
- name: Install Dart 2.17.1
uses: dart-lang/setup-dart@v1
with:
sdk: "2.17.0"
sdk: "2.17.1"

- name: Checkout
uses: actions/checkout@v3
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## Unreleased

* chore: changed min `SDK` version to `2.17.1`.

## 4.19.1

* fix: make [`avoid-redundant-async`](https://dartcodemetrics.dev/docs/rules/common/avoid-redundant-async) correctly handle nullable return values.
Expand Down
1 change: 1 addition & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -201,5 +201,6 @@ linter:
- use_raw_strings
- use_setters_to_change_properties
- use_string_buffers
- use_super_parameters
- use_test_throws_matchers
- use_to_and_as_if_applicable
3 changes: 1 addition & 2 deletions lib/src/analyzer_plugin/analyzer_plugin.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import 'dart:async';

import 'package:analyzer/dart/analysis/context_locator.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
// ignore: implementation_imports
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
Expand Down Expand Up @@ -47,7 +46,7 @@ class AnalyzerPlugin extends ServerPlugin {
@override
String get version => '1.0.0-alpha.0';

AnalyzerPlugin(ResourceProvider provider) : super(provider);
AnalyzerPlugin(super.resourceProvider);

@override
void contentChanged(String path) {
Expand Down
17 changes: 5 additions & 12 deletions lib/src/analyzers/lint_analyzer/metrics/models/class_metric.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,16 @@ import 'package:collection/collection.dart';
import '../../models/scoped_class_declaration.dart';
import '../../models/scoped_function_declaration.dart';
import 'metric.dart';
import 'metric_documentation.dart';
import 'metric_value_level.dart';

/// An interface for metrics that compute a value for a class node.
abstract class ClassMetric<T extends num> extends Metric<T> {
/// Initialize a newly created [ClassMetric].
const ClassMetric({
required String id,
required MetricDocumentation documentation,
required T? threshold,
required MetricValueLevel Function(T, T?) levelComputer,
}) : super(
id: id,
documentation: documentation,
threshold: threshold,
levelComputer: levelComputer,
);
required super.id,
required super.documentation,
required super.threshold,
required super.levelComputer,
});

@override
String? nodeType(
Expand Down
17 changes: 5 additions & 12 deletions lib/src/analyzers/lint_analyzer/metrics/models/file_metric.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,17 @@ import '../../models/internal_resolved_unit_result.dart';
import '../../models/scoped_class_declaration.dart';
import '../../models/scoped_function_declaration.dart';
import 'metric.dart';
import 'metric_documentation.dart';
import 'metric_value.dart';
import 'metric_value_level.dart';

/// An interface for metrics that compute a value for a file aka compilation unit node.
abstract class FileMetric<T extends num> extends Metric<T> {
/// Initialize a newly created [FileMetric].
const FileMetric({
required String id,
required MetricDocumentation documentation,
required T? threshold,
required MetricValueLevel Function(T, T?) levelComputer,
}) : super(
id: id,
documentation: documentation,
threshold: threshold,
levelComputer: levelComputer,
);
required super.id,
required super.documentation,
required super.threshold,
required super.levelComputer,
});

@override
bool supports(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,16 @@ import 'package:collection/collection.dart';
import '../../models/scoped_class_declaration.dart';
import '../../models/scoped_function_declaration.dart';
import 'metric.dart';
import 'metric_documentation.dart';
import 'metric_value_level.dart';

/// An interface for metrics that compute a value for a function node.
abstract class FunctionMetric<T extends num> extends Metric<T> {
/// Initialize a newly created [FunctionMetric].
const FunctionMetric({
required String id,
required MetricDocumentation documentation,
required T? threshold,
required MetricValueLevel Function(T, T?) levelComputer,
}) : super(
id: id,
documentation: documentation,
threshold: threshold,
levelComputer: levelComputer,
);
required super.id,
required super.documentation,
required super.threshold,
required super.levelComputer,
});

@override
String? nodeType(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import 'dart:io';

import 'package:xml/xml.dart';

import '../../../../../reporters/models/checkstyle_reporter.dart';
Expand All @@ -14,7 +12,7 @@ import '../../lint_report_params.dart';
/// Use it to create reports in Checkstyle format.
class LintCheckstyleReporter extends CheckstyleReporter<LintFileReport,
SummaryLintReportRecord<Object>, LintReportParams> {
LintCheckstyleReporter(IOSink output) : super(output);
LintCheckstyleReporter(super.output);

@override
Future<void> report(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'dart:convert';
import 'dart:io';

import 'package:crypto/crypto.dart';

Expand All @@ -21,11 +20,7 @@ import 'models/code_climate_issue_severity.dart';
/// Use it to create reports in Code Climate format.
class LintCodeClimateReporter extends CodeClimateReporter<LintFileReport,
SummaryLintReportRecord<Object>, LintReportParams> {
LintCodeClimateReporter(IOSink output, {bool gitlabCompatible = false})
: super(
output,
gitlabCompatible: gitlabCompatible,
);
LintCodeClimateReporter(super.output, {super.gitlabCompatible});

@override
Future<void> report(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import 'dart:io';

import '../../../../../reporters/models/console_reporter.dart';
import '../../../metrics/metric_utils.dart';
import '../../../metrics/models/metric_value.dart';
Expand All @@ -21,7 +19,7 @@ class LintConsoleReporter extends ConsoleReporter<LintFileReport,

final _helper = LintConsoleReporterHelper();

LintConsoleReporter(IOSink output, {this.reportAll = false}) : super(output);
LintConsoleReporter(super.output, {this.reportAll = false});

@override
Future<void> report(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import 'dart:io';

import '../../../../../reporters/models/github_reporter.dart';
import '../../../models/lint_file_report.dart';
import '../../../models/severity.dart';
Expand All @@ -17,7 +15,7 @@ const _deprecationMessage =
/// Consider using Dart Code Metrics GitHub Action instead.
class LintGitHubReporter extends GitHubReporter<LintFileReport,
SummaryLintReportRecord<Object>, LintReportParams> {
const LintGitHubReporter(IOSink output) : super(output);
const LintGitHubReporter(super.output);

@override
Future<void> report(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ const _designIssues = 'Design issues';
/// Use it to create reports in HTML format.
class LintHtmlReporter extends HtmlReporter<LintFileReport,
SummaryLintReportRecord<Object>, LintReportParams> {
LintHtmlReporter(String reportFolder) : super(reportFolder);
LintHtmlReporter(super.reportFolder);

@override
Future<void> report(
Expand Down
10 changes: 3 additions & 7 deletions lib/src/analyzers/lint_analyzer/rules/models/angular_rule.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import '../../models/severity.dart';
import 'rule.dart';
import 'rule_type.dart';

/// Represents a base class for angular-specific rules.
abstract class AngularRule extends Rule {
const AngularRule({
required String id,
required Severity severity,
required Iterable<String> excludes,
required super.id,
required super.severity,
required super.excludes,
}) : super(
id: id,
type: RuleType.angular,
severity: severity,
excludes: excludes,
);
}
10 changes: 3 additions & 7 deletions lib/src/analyzers/lint_analyzer/rules/models/common_rule.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import '../../models/severity.dart';
import 'rule.dart';
import 'rule_type.dart';

/// Represents a base class for common rules.
abstract class CommonRule extends Rule {
const CommonRule({
required String id,
required Severity severity,
required Iterable<String> excludes,
required super.id,
required super.severity,
required super.excludes,
}) : super(
id: id,
type: RuleType.common,
severity: severity,
excludes: excludes,
);
}
10 changes: 3 additions & 7 deletions lib/src/analyzers/lint_analyzer/rules/models/flutter_rule.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import '../../models/severity.dart';
import 'rule.dart';
import 'rule_type.dart';

/// Represents a base class for Flutter-specific rules.
abstract class FlutterRule extends Rule {
const FlutterRule({
required String id,
required Severity severity,
required Iterable<String> excludes,
required super.id,
required super.severity,
required super.excludes,
}) : super(
id: id,
type: RuleType.flutter,
severity: severity,
excludes: excludes,
);
}
10 changes: 3 additions & 7 deletions lib/src/analyzers/lint_analyzer/rules/models/intl_rule.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import '../../models/severity.dart';
import 'rule.dart';
import 'rule_type.dart';

/// Represents a base class for intl-specific rules.
abstract class IntlRule extends Rule {
const IntlRule({
required String id,
required Severity severity,
required Iterable<String> excludes,
required super.id,
required super.severity,
required super.excludes,
}) : super(
id: id,
type: RuleType.intl,
severity: severity,
excludes: excludes,
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ class _ConfigParser {

static Iterable<RegExp> getIgnoredPatterns(Map<String, Object> config) =>
config[_ignoredPatternsConfig] is Iterable
? List<String>.from(config[_ignoredPatternsConfig] as Iterable)
.map(RegExp.new)
? List<String>.from(
config[_ignoredPatternsConfig] as Iterable,
).map(RegExp.new)
: const [];
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,5 @@ class _NotCorrectNameIssue extends IntlBaseIssue {
}

class _NotExistNameIssue extends IntlBaseIssue {
const _NotExistNameIssue(
AstNode node,
) : super(node);
const _NotExistNameIssue(super.node);
}
Original file line number Diff line number Diff line change
Expand Up @@ -176,60 +176,58 @@ class _Visitor extends IntlBaseVisitor {

class _NotExistArgsIssue extends IntlBaseIssue {
const _NotExistArgsIssue(
AstNode node,
) : super(node, nameFailure: 'Parameter "args" should be added');
super.node,
) : super(nameFailure: 'Parameter "args" should be added');
}

class _ArgsMustBeOmittedIssue extends IntlBaseIssue {
const _ArgsMustBeOmittedIssue(
AstNode node,
) : super(node, nameFailure: 'Parameter "args" should be removed');
super.node,
) : super(nameFailure: 'Parameter "args" should be removed');
}

class _ArgsItemMustBeOmittedIssue extends IntlBaseIssue {
const _ArgsItemMustBeOmittedIssue(
AstNode node,
) : super(node, nameFailure: 'Item is unused and should be removed');
super.node,
) : super(nameFailure: 'Item is unused and should be removed');
}

class _ParameterMustBeOmittedIssue extends IntlBaseIssue {
const _ParameterMustBeOmittedIssue(
AstNode node,
) : super(node, nameFailure: 'Parameter is unused and should be removed');
super.node,
) : super(nameFailure: 'Parameter is unused and should be removed');
}

class _MustBeSimpleIdentifierIssue extends IntlBaseIssue {
const _MustBeSimpleIdentifierIssue(
AstNode node,
) : super(node, nameFailure: 'Item should be simple identifier');
super.node,
) : super(nameFailure: 'Item should be simple identifier');
}

class _ParameterMustBeInArgsIssue extends IntlBaseIssue {
const _ParameterMustBeInArgsIssue(
AstNode node,
) : super(node, nameFailure: 'Parameter should be added to args');
super.node,
) : super(nameFailure: 'Parameter should be added to args');
}

class _ArgsMustBeInParameterIssue extends IntlBaseIssue {
const _ArgsMustBeInParameterIssue(
AstNode node,
) : super(node, nameFailure: 'Args item should be added to parameters');
super.node,
) : super(nameFailure: 'Args item should be added to parameters');
}

class _InterpolationMustBeInArgsIssue extends IntlBaseIssue {
const _InterpolationMustBeInArgsIssue(
AstNode node,
super.node,
) : super(
node,
nameFailure: 'Interpolation expression should be added to args',
);
}

class _InterpolationMustBeInParameterIssue extends IntlBaseIssue {
const _InterpolationMustBeInParameterIssue(
AstNode node,
super.node,
) : super(
node,
nameFailure: 'Interpolation expression should be added to parameters',
);
}
Loading