Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,28 @@ class FunctionLinesOfCodeRule
) {
void checkNode(AstNode node) => _checkNode(resolver, reporter, node);

context.registry.addDeclaration((declarationNode) {
final isIgnored = config.parameters.exclude.shouldIgnore(declarationNode);
void checkDeclarationNode(Declaration node) {
final isIgnored = config.parameters.exclude.shouldIgnore(node);
if (isIgnored) {
return;
}
checkNode(node);
}

if (isIgnored) return;
// Check for an anonymous function
void checkFunctionExpressionNode(FunctionExpression node) {
// If a FunctionExpression is an immediate child of a FunctionDeclaration
// this means it's a named function, which are already check as part of
// addFunctionDeclaration call.
if (node.parent is FunctionDeclaration) {
return;
}
checkNode(node);
}

context.registry.addMethodDeclaration(checkNode);
context.registry.addFunctionDeclaration(checkNode);
context.registry.addFunctionExpression(checkNode);
});
context.registry.addFunctionDeclaration(checkDeclarationNode);
context.registry.addMethodDeclaration(checkDeclarationNode);
context.registry.addFunctionExpression(checkFunctionExpressionNode);
}

void _checkNode(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@ class PreferMatchFileNameRule extends SolidLintRule {
if (_doNormalizedNamesMatch(
resolver.source.fullName,
firstDeclaration.token.lexeme,
)) return;
)) {
return;
}

final nodeType =
humanReadableNodeType(firstDeclaration.parent).toLowerCase();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
/// alphabetical-by-type option enabled

class CorrectAlphabeticalByTypeClass {
final int a = 1;
final double e = 1;
final int a = 1;
}

class WrongAlphabeticalByTypeClass {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,56 +14,68 @@ class ColorTween {}
/// `avoid_late_keyword`
/// allow_initialized option disabled
class AvoidLateKeyword {
/// expect_lint: avoid_late_keyword
/// ignored_types: Animation
late final Animation animation1;

/// ignored_types: Animation
late final animation2 = AnimationController();

/// ignored_types: Animation
late final animation3 = SubAnimationController();

/// expect_lint: avoid_late_keyword
late final ColorTween colorTween1;

/// expect_lint: avoid_late_keyword
late final colorTween2 = ColorTween();

/// expect_lint: avoid_late_keyword
late final colorTween3 = colorTween2;

/// expect_lint: avoid_late_keyword
/// ignored_types: Animation
late final AnimationController controller1;

/// expect_lint: avoid_late_keyword
late final field1 = 'string';

/// expect_lint: avoid_late_keyword
late final String field2;

/// expect_lint: avoid_late_keyword
late final String field3 = 'string';

/// expect_lint: avoid_late_keyword
late final field4;

void test() {
/// expect_lint: avoid_late_keyword
/// ignored_types: Animation
late final Animation animation1;

/// ignored_types: Animation
late final animation2 = AnimationController();

/// ignored_types: Animation
late final animation3 = SubAnimationController();

/// expect_lint: avoid_late_keyword
late final ColorTween colorTween1;

/// expect_lint: avoid_late_keyword
late final colorTween2 = ColorTween();

/// expect_lint: avoid_late_keyword
late final colorTween3 = colorTween2;

/// expect_lint: avoid_late_keyword
/// ignored_types: Animation
late final AnimationController controller1;

/// expect_lint: avoid_late_keyword
late final local1 = 'string';

/// expect_lint: avoid_late_keyword
late final String local2;

/// expect_lint: avoid_late_keyword
late final String local4 = 'string';

/// expect_lint: avoid_late_keyword
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,38 +15,38 @@ class AvoidLateKeyword {
/// expect_lint: avoid_late_keyword
late final NotAllowed na1;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription subscription1;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<ConcreteTypeWithNoGenerics> subscription2;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<List<int>> subscription3;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<List<List<int>>> subscription4;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<Map<dynamic, String>> subscription5;

void test() {
/// expect_lint: avoid_late_keyword
late final NotAllowed na1;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription subscription1;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<ConcreteTypeWithNoGenerics> subscription2;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<List<int>> subscription3;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<List<List<int>>> subscription4;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription
late final Subscription<Map<dynamic, String>> subscription5;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ class AnimationController {}

class SubAnimationController extends AnimationController {}

class Allowed {}

class NotAllowed {}

class Subscription<T> {}
Expand All @@ -18,19 +20,22 @@ class ConcreteTypeWithNoGenerics {}
/// `avoid_late_keyword`
/// allow_initialized option enabled
class AvoidLateKeyword {
/// expect_lint: avoid_late_keyword
/// ignored_types: ColorTween
late final ColorTween colorTween;

/// expect_lint: avoid_late_keyword
/// ignored_types: AnimationController
late final AnimationController controller1;

/// expect_lint: avoid_late_keyword
/// ignored_types: AnimationController
late final SubAnimationController controller2;

/// ignored_types: AnimationController
late final controller3 = AnimationController();

/// ignored_types: AnimationController
late final controller4 = SubAnimationController();

/// allow_initialized: true
late final field1 = 'string';

/// expect_lint: avoid_late_keyword
Expand All @@ -42,43 +47,47 @@ class AvoidLateKeyword {
/// expect_lint: avoid_late_keyword
late final NotAllowed na1;

late final na2 = NotAllowed();
/// allow_initialized: true
late final a = Allowed();

/// expect_lint: avoid_late_keyword
late final Subscription<String> subscription1;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription<ConcreteTypeWithNoGenerics>
late final Subscription<ConcreteTypeWithNoGenerics> subscription2;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription<List<Object?>>
late final Subscription<List<String>> subscription3;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription<List<Object?>>
late final Subscription<List<List<int>>> subscription4;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription<Map<dynamic, String>>
late final Subscription<Map<dynamic, String>> subscription5;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription<Map<dynamic, String>>
late final Subscription<Map<String, String>> subscription6;

/// expect_lint: avoid_late_keyword
late final Subscription<Map<String, dynamic>> subscription7;

void test() {
/// expect_lint: avoid_late_keyword
/// ignored_types: ColorTween
late final ColorTween colorTween;

/// expect_lint: avoid_late_keyword
/// ignored_types: AnimationController
late final AnimationController controller1;

/// expect_lint: avoid_late_keyword
/// ignored_types: AnimationController
late final SubAnimationController controller2;

/// ignored_types: AnimationController
late final controller3 = AnimationController();

/// ignored_types: AnimationController
late final controller4 = SubAnimationController();

/// allow_initialized: true
late final local1 = 'string';

/// expect_lint: avoid_late_keyword
Expand All @@ -90,15 +99,16 @@ class AvoidLateKeyword {
/// expect_lint: avoid_late_keyword
late final NotAllowed na1;

late final na2 = NotAllowed();
/// allow_initialized: true
late final a = Allowed();

/// expect_lint: avoid_late_keyword
late final Subscription<String> subscription1;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription<ConcreteTypeWithNoGenerics>
late final Subscription<ConcreteTypeWithNoGenerics> subscription2;

/// expect_lint: avoid_late_keyword
/// ignored_types: Subscription<List<String>>
late final Subscription<List<String>> subscription3;
}
}
11 changes: 0 additions & 11 deletions lint_test/avoid_unused_parameters_test/analysis_options.yaml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
// expect_lint: avoid_global_state
int banned = 5;
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,4 @@ const test2 = 'Hello World';

void test() {}

// expect_lint: avoid_global_state
int banned = 5;
7 changes: 5 additions & 2 deletions lint_test/function_lines_of_code_test/analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@ custom_lint:
- function_lines_of_code:
max_lines: 5
exclude:
- longFunctionExcluded
- longMethodExcluded
- class_name: ClassWithLongMethods
method_name: longMethodExcluded
- method_name: longFunctionExcluded
- longFunctionExcludedByDeclarationName
- longMethodExcludedByDeclarationName
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ class ClassWithLongMethods {
return i;
}

// Excluded by excludeNames
// Excluded by method_name
int longMethodExcluded() {
var i = 0;
i++;
Expand All @@ -267,6 +267,17 @@ class ClassWithLongMethods {
return i;
}

// Excluded by declaration_name
int longMethodExcludedByDeclarationName() {
var i = 0;
i++;
i++;
i++;
i++;

return i;
}

int notLongMethod() {
var i = 0;
i++;
Expand Down Expand Up @@ -481,7 +492,7 @@ int longFunction() {
return i;
}

// Excluded by excludeNames
// Excluded by method_name
int longFunctionExcluded() {
var i = 0;
i++;
Expand All @@ -491,3 +502,34 @@ int longFunctionExcluded() {

return i;
}

// Excluded by declaration_name
int longFunctionExcludedByDeclarationName() {
var i = 0;
i++;
i++;
i++;
i++;

return i;
}

// expect_lint: function_lines_of_code
final longAnonymousFunction = () {
var i = 0;
i++;
i++;
i++;
i++;

return i;
};

final notLongAnonymousFunction = () {
var i = 0;
i++;
i++;
i++;

return i;
};
Loading