Skip to content
This repository has been archived by the owner on Jul 16, 2023. It is now read-only.

Commit

Permalink
Merge 3b5cd62 into 5cef028
Browse files Browse the repository at this point in the history
  • Loading branch information
dkrutskikh committed Dec 30, 2020
2 parents 5cef028 + 3b5cd62 commit 706aa81
Show file tree
Hide file tree
Showing 24 changed files with 79 additions and 233 deletions.
4 changes: 2 additions & 2 deletions lib/src/anti_patterns/long_method.dart
Expand Up @@ -6,7 +6,7 @@ import '../lines_of_code/lines_with_code_ast_visitor.dart';
import '../models/function_type.dart';
import '../models/scoped_function_declaration.dart';
import 'base_pattern.dart';
import 'pattern_utils.dart';
import 'pattern_utils.dart' as utils;

class LongMethod extends BasePattern {
static const String patternId = 'long-method';
Expand All @@ -30,7 +30,7 @@ class LongMethod extends BasePattern {

if (linesWithCodeAstVisitor.linesWithCode.length >
config.linesOfExecutableCodeWarningLevel) {
issues.add(createIssue(
issues.add(utils.createIssue(
this,
_compileMessage(
lines: linesWithCodeAstVisitor.linesWithCode.length,
Expand Down
4 changes: 2 additions & 2 deletions lib/src/anti_patterns/long_parameter_list.dart
Expand Up @@ -6,7 +6,7 @@ import '../models/function_type.dart';
import '../models/scoped_function_declaration.dart';
import '../utils/metrics_analyzer_utils.dart';
import 'base_pattern.dart';
import 'pattern_utils.dart';
import 'pattern_utils.dart' as utils;

class LongParameterList extends BasePattern {
static const String patternId = 'long-parameter-list';
Expand All @@ -25,7 +25,7 @@ class LongParameterList extends BasePattern {
.where((function) =>
getArgumentsCount(function) >
config.numberOfArgumentsWarningLevel)
.map((function) => createIssue(
.map((function) => utils.createIssue(
this,
_compileMessage(
args: getArgumentsCount(function),
Expand Down
14 changes: 2 additions & 12 deletions lib/src/rules/avoid_preserve_whitespace_false.dart
Expand Up @@ -3,8 +3,6 @@ import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';

import 'rule_utils.dart';

class AvoidPreserveWhitespaceFalseRule extends Rule {
static const String ruleId = 'avoid-preserve-whitespace-false';
static const _documentationUrl = 'https://git.io/JfDik';
Expand All @@ -26,16 +24,8 @@ class AvoidPreserveWhitespaceFalseRule extends Rule {
file.parsedContent.visitChildren(visitor);

return visitor.expression
.map((expression) => createIssue(
this,
_failure,
null,
null,
file.url,
file.content,
file.parsedContent,
expression,
))
.map((expression) =>
createIssue(this, nodeLocation(expression, file), _failure, null))
.toList(growable: false);
}
}
Expand Down
14 changes: 2 additions & 12 deletions lib/src/rules/avoid_unused_parameters.dart
Expand Up @@ -3,8 +3,6 @@ import 'package:analyzer/dart/ast/syntactic_entity.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';

import 'rule_utils.dart';

// Inspired by PVS-Studio (https://www.viva64.com/en/w/v6022/)

class AvoidUnusedParameters extends Rule {
Expand Down Expand Up @@ -34,25 +32,17 @@ class AvoidUnusedParameters extends Rule {
..._visitor.unusedParameters
.map((parameter) => createIssue(
this,
nodeLocation(parameter, file),
_warningMessage,
null,
null,
file.url,
file.content,
file.parsedContent,
parameter,
))
.toList(growable: false),
..._visitor.renameSuggestions
.map((parameter) => createIssue(
this,
nodeLocation(parameter, file),
_renameMessage,
null,
null,
file.url,
file.content,
file.parsedContent,
parameter,
))
.toList(),
];
Expand Down
14 changes: 6 additions & 8 deletions lib/src/rules/binary_expression_operand_order_rule.dart
Expand Up @@ -3,8 +3,6 @@ import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';

import 'rule_utils.dart';

class BinaryExpressionOperandOrderRule extends Rule {
static const String ruleId = 'binary-expression-operand-order';
static const _documentationUrl = 'https://git.io/JJVAC';
Expand All @@ -29,13 +27,13 @@ class BinaryExpressionOperandOrderRule extends Rule {
return visitor.binaryExpressions
.map((lit) => createIssue(
this,
nodeLocation(lit, file),
_warningMessage,
'${lit.rightOperand} ${lit.operator} ${lit.leftOperand}',
_correctionComment,
file.url,
file.content,
file.parsedContent,
lit,
Replacement(
comment: _correctionComment,
replacement:
'${lit.rightOperand} ${lit.operator} ${lit.leftOperand}',
),
))
.toList(growable: false);
}
Expand Down
8 changes: 1 addition & 7 deletions lib/src/rules/component_annotation_arguments_ordering.dart
Expand Up @@ -3,8 +3,6 @@ import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';
import 'package:meta/meta.dart';

import 'rule_utils.dart';

class ComponentAnnotationArgumentsOrderingRule extends Rule {
static const ruleId = 'component-annotation-arguments-ordering';
static const _documentationUrl = 'https://git.io/JJ5HC';
Expand Down Expand Up @@ -35,13 +33,9 @@ class ComponentAnnotationArgumentsOrderingRule extends Rule {
return argumentsInfo.where((info) => info.argumentOrder.isWrong).map(
(info) => createIssue(
this,
nodeLocation(info.argument, file),
'Arguments group ${info.argumentOrder.argumentGroup.name} $_warningMessage ${info.argumentOrder.previousArgumentGroup.name}',
null,
null,
file.url,
file.content,
file.parsedContent,
info.argument,
),
);
}
Expand Down
35 changes: 15 additions & 20 deletions lib/src/rules/double_literal_format_rule.dart
Expand Up @@ -3,8 +3,6 @@ import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';
import 'package:meta/meta.dart';

import 'rule_utils.dart';

class DoubleLiteralFormatRule extends Rule {
static const String ruleId = 'double-literal-format';
static const _documentationUrl = 'https://git.io/Jf3MH';
Expand Down Expand Up @@ -43,35 +41,32 @@ class DoubleLiteralFormatRule extends Rule {
if (detectLeadingZero(lexeme)) {
issues.add(createIssue(
this,
nodeLocation(node, file),
_failureLeadingZero,
leadingZeroCorrection(lexeme),
_correctionCommentLeadingZero,
file.url,
file.content,
file.parsedContent,
node,
Replacement(
comment: _correctionCommentLeadingZero,
replacement: leadingZeroCorrection(lexeme),
),
));
} else if (detectLeadingDecimal(lexeme)) {
issues.add(createIssue(
this,
nodeLocation(node, file),
_failureLeadingDecimal,
leadingDecimalCorrection(lexeme),
_correctionCommentLeadingDecimal,
file.url,
file.content,
file.parsedContent,
node,
Replacement(
comment: _correctionCommentLeadingDecimal,
replacement: leadingDecimalCorrection(lexeme),
),
));
} else if (detectTrailingZero(lexeme)) {
issues.add(createIssue(
this,
nodeLocation(node, file),
_failureTrailingZero,
trailingZeroCorrection(lexeme),
_correctionCommentTrailingZero,
file.url,
file.content,
file.parsedContent,
node,
Replacement(
comment: _correctionCommentTrailingZero,
replacement: trailingZeroCorrection(lexeme),
),
));
}
}
Expand Down
14 changes: 2 additions & 12 deletions lib/src/rules/member_ordering.dart
Expand Up @@ -3,8 +3,6 @@ import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';
import 'package:meta/meta.dart';

import 'rule_utils.dart';

// Inspired by TSLint (https://palantir.github.io/tslint/rules/member-ordering/)

class MemberOrderingRule extends Rule {
Expand Down Expand Up @@ -40,13 +38,9 @@ class MemberOrderingRule extends Rule {
...membersInfo.where((info) => info.memberOrder.isWrong).map(
(info) => createIssue(
this,
nodeLocation(info.classMember, file),
'${info.memberOrder.memberGroup.name} $_warningMessage ${info.memberOrder.previousMemberGroup.name}',
null,
null,
file.url,
file.content,
file.parsedContent,
info.classMember,
),
),
if (_alphabetize)
Expand All @@ -55,13 +49,9 @@ class MemberOrderingRule extends Rule {
.map(
(info) => createIssue(
this,
nodeLocation(info.classMember, file),
'${info.memberOrder.memberNames.currentName} $_warningAlphabeticalMessage ${info.memberOrder.memberNames.previousName}',
null,
null,
file.url,
file.content,
file.parsedContent,
info.classMember,
),
),
];
Expand Down
14 changes: 2 additions & 12 deletions lib/src/rules/newline_before_return.dart
Expand Up @@ -4,8 +4,6 @@ import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/source/line_info.dart';
import 'package:code_checker/rules.dart';

import 'rule_utils.dart';

// Inspired by TSLint (https://palantir.github.io/tslint/rules/newline-before-return/)

class NewlineBeforeReturnRule extends Rule {
Expand Down Expand Up @@ -48,16 +46,8 @@ class NewlineBeforeReturnRule extends Rule {

return !(tokenLine > previousTokenLine + 1);
})
.map((statement) => createIssue(
this,
_failure,
null,
null,
file.url,
file.content,
file.parsedContent,
statement,
))
.map((statement) =>
createIssue(this, nodeLocation(statement, file), _failure, null))
.toList(growable: false);
}

Expand Down
25 changes: 11 additions & 14 deletions lib/src/rules/no_boolean_literal_compare_rule.dart
Expand Up @@ -3,8 +3,6 @@ import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';

import 'rule_utils.dart';

// Inspired by TSLint (https://palantir.github.io/tslint/rules/no-boolean-literal-compare/)

class NoBooleanLiteralCompareRule extends Rule {
Expand Down Expand Up @@ -45,13 +43,13 @@ class NoBooleanLiteralCompareRule extends Rule {
if (_detectNullAwarePropertyCompareWithTrue(expression)) {
issues.add(createIssue(
this,
nodeLocation(expression, file),
_failureCompareNullAwarePropertyWithTrue,
_nullAwarePropertyCompareWithTrueCorrection(expression),
_correctionCompareNullAwarePropertyWithTrue,
file.url,
file.content,
file.parsedContent,
expression,
Replacement(
comment: _correctionCompareNullAwarePropertyWithTrue,
replacement:
_nullAwarePropertyCompareWithTrueCorrection(expression),
),
));

continue;
Expand All @@ -77,13 +75,12 @@ class NoBooleanLiteralCompareRule extends Rule {

issues.add(createIssue(
this,
nodeLocation(expression, file),
_failure,
useDirect ? correction : '!$correction',
useDirect ? _useItDirectly : _negate,
file.url,
file.content,
file.parsedContent,
expression,
Replacement(
comment: useDirect ? _useItDirectly : _negate,
replacement: useDirect ? correction : '!$correction',
),
));
}

Expand Down
14 changes: 2 additions & 12 deletions lib/src/rules/no_empty_block.dart
Expand Up @@ -2,8 +2,6 @@ import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';

import 'rule_utils.dart';

// Inspired by TSLint (https://palantir.github.io/tslint/rules/no-empty/)

class NoEmptyBlockRule extends Rule {
Expand All @@ -28,16 +26,8 @@ class NoEmptyBlockRule extends Rule {
file.parsedContent.visitChildren(_visitor);

return _visitor.emptyBlocks
.map((block) => createIssue(
this,
_failure,
null,
null,
file.url,
file.content,
file.parsedContent,
block,
))
.map((block) =>
createIssue(this, nodeLocation(block, file), _failure, null))
.toList(growable: false);
}
}
Expand Down
8 changes: 1 addition & 7 deletions lib/src/rules/no_equal_arguments.dart
Expand Up @@ -2,8 +2,6 @@ import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:code_checker/rules.dart';

import 'rule_utils.dart';

class NoEqualArguments extends Rule {
static const String ruleId = 'no-equal-arguments';
static const _documentationUrl = 'https://git.io/JUlBH';
Expand All @@ -27,13 +25,9 @@ class NoEqualArguments extends Rule {
return _visitor.arguments
.map((argument) => createIssue(
this,
nodeLocation(argument, file),
_warningMessage,
null,
null,
file.url,
file.content,
file.parsedContent,
argument,
))
.toList(growable: false);
}
Expand Down

0 comments on commit 706aa81

Please sign in to comment.