Skip to content

Commit b9fd81c

Browse files
author
Illia Aihistov
committed
Merge remote-tracking branch 'upstream/master' into add-avoid_multiple_classes_in_one_file-rule
2 parents 6e7b6b5 + 4f67033 commit b9fd81c

24 files changed

Lines changed: 98 additions & 51 deletions

‎CHANGELOG.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
## 1.1.0
2+
3+
- BREAKING CHANGE: Updated rules in `analysis_options.yaml`. Existing
4+
projects may see new static analysis issues after upgrading:
5+
- Added 15 standard linter rules:
6+
- `avoid_catches_without_on_clauses`
7+
- `avoid_returning_this`
8+
- `avoid_types_on_closure_parameters`
9+
- `cascade_invocations`
10+
- `discarded_futures`
11+
- `document_ignores`
12+
- `no_literal_bool_comparisons`
13+
- `no_wildcard_variable_uses`
14+
- `unnecessary_ignore`
15+
- `unnecessary_late`
16+
- `unnecessary_unawaited`
17+
- `unnecessary_underscores`
18+
- `unreachable_from_main`
19+
- `use_enums`
20+
- `use_truncating_division`
21+
- Enabled `named_parameters_ordering` rule and disabled
22+
`always_put_required_named_parameters_first` in favor of it.
23+
- Added `avoid_multiple_declarations_per_file` rule.
24+
- Added `prefer_mirror_test_structure` rule.
25+
- Fixed code style and analysis warnings across package utilities and rules.
26+
127
## 1.0.0
228

329
- Enhanced `prefer_early_return` rule to support loops and added `max_depth`

‎doc/docusaurus/static/llms.txt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ dart pub add dev:solid_lints
1212
Or manually in `pubspec.yaml`:
1313
```yaml
1414
dev_dependencies:
15-
solid_lints: ^1.0.0 # Replace with latest version
15+
solid_lints: ^1.1.0 # Replace with latest version
1616
```
1717

1818
Enable the plugin in `analysis_options.yaml`:
1919
```yaml
2020
include: package:solid_lints/analysis_options.yaml
2121

2222
plugins:
23-
solid_lints: ^1.0.0 # Replace with latest version
23+
solid_lints: ^1.1.0 # Replace with latest version
2424
```
2525

2626
## Documentation

‎lib/analysis_options.yaml‎

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,19 +115,19 @@ solid_lints:
115115
prefer_match_file_name: true
116116
prefer_mirror_test_structure: true
117117
proper_super_calls: true
118-
# Disabled for now due to conflict with
119-
# `always_put_required_named_parameters_first`.
120-
named_parameters_ordering: false
118+
named_parameters_ordering: true
121119
use_nearest_context: true
122120
use_descriptive_names_for_type_parameters: true
123121

124122
linter:
125123
rules:
126124
- always_declare_return_types
127-
- always_put_required_named_parameters_first
125+
# Disabled in favor of `solid_lints` rule `named_parameters_ordering`.
126+
# - always_put_required_named_parameters_first
128127
- always_use_package_imports
129128
- annotate_overrides
130129
- avoid_bool_literals_in_conditional_expressions
130+
- avoid_catches_without_on_clauses
131131
- avoid_catching_errors
132132
- avoid_double_and_int_checks
133133
- avoid_dynamic_calls
@@ -149,18 +149,21 @@ linter:
149149
- avoid_renaming_method_parameters
150150
- avoid_return_types_on_setters
151151
- avoid_returning_null_for_void
152+
- avoid_returning_this
152153
- avoid_setters_without_getters
153154
- avoid_shadowing_type_parameters
154155
- avoid_single_cascade_in_expression_statements
155156
- avoid_type_to_string
156157
- avoid_types_as_parameter_names
158+
- avoid_types_on_closure_parameters
157159
- avoid_unnecessary_containers
158160
- avoid_unused_constructor_parameters
159161
- avoid_void_async
160162
- await_only_futures
161163
- camel_case_extensions
162164
- camel_case_types
163165
- cancel_subscriptions
166+
- cascade_invocations
164167
# Similar to avoid-non-null-assertion, which is already used,
165168
# basically it suggests to not ignore possible null value
166169
- cast_nullable_to_non_nullable
@@ -174,6 +177,8 @@ linter:
174177
- deprecated_consistency
175178
# - diagnostic_describe_all_properties
176179
- directives_ordering
180+
- discarded_futures
181+
- document_ignores
177182
# Pretty much agree with Passy & linter package.
178183
# Our use case for Flutter for web where there are no flavors yet.
179184
# So using dart-define is helpful.
@@ -201,8 +206,10 @@ linter:
201206
- no_duplicate_case_values
202207
- no_leading_underscores_for_library_prefixes
203208
- no_leading_underscores_for_local_identifiers
209+
- no_literal_bool_comparisons
204210
- no_logic_in_create_state
205211
- no_runtimeType_toString
212+
- no_wildcard_variable_uses
206213
- non_constant_identifier_names
207214
- noop_primitive_operations
208215
- null_check_on_nullable_type_parameter
@@ -279,7 +286,9 @@ linter:
279286
- unnecessary_breaks
280287
- unnecessary_const
281288
- unnecessary_getters_setters
289+
- unnecessary_ignore
282290
- unnecessary_lambdas
291+
- unnecessary_late
283292
- unnecessary_new
284293
- unnecessary_null_aware_assignments
285294
- unnecessary_null_checks
@@ -293,10 +302,14 @@ linter:
293302
- unnecessary_string_interpolations
294303
- unnecessary_this
295304
- unnecessary_to_list_in_spreads
305+
- unnecessary_unawaited
306+
- unnecessary_underscores
307+
- unreachable_from_main
296308
- unrelated_type_equality_checks
297309
- use_build_context_synchronously
298310
- use_colored_box
299311
- use_decorated_box
312+
- use_enums
300313
- use_full_hex_values_for_flutter_colors
301314
- use_function_type_syntax_for_parameters
302315
- use_is_even_rather_than_modulo
@@ -307,6 +320,7 @@ linter:
307320
- use_string_buffers
308321
- use_super_parameters
309322
- use_test_throws_matchers
323+
- use_truncating_division
310324
- valid_regexps
311325
- void_checks
312326

‎lib/src/common/parameter_parser/analysis_options_parser.dart‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class AnalysisOptionsParser {
6464
final parsed = loadYaml(optionsString);
6565
if (parsed is! Map) return null;
6666
return _toStandardMap(parsed);
67-
} catch (_) {
67+
} on Object catch (_) {
6868
return null;
6969
}
7070
}

‎lib/src/common/parameter_parser/package_config_resolver.dart‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class PackageConfigResolver {
103103
),
104104
};
105105
}
106-
} catch (_) {}
106+
} on Object catch (_) {}
107107

108108
return const {};
109109
}

‎lib/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule.dart‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ class AvoidDebugPrintInReleaseRule extends AnalysisRule {
5454
RuleContext context,
5555
) {
5656
final visitor = AvoidDebugPrintInReleaseVisitor(this);
57-
registry.addMethodInvocation(this, visitor);
58-
registry.addSimpleIdentifier(this, visitor);
57+
registry
58+
..addMethodInvocation(this, visitor)
59+
..addSimpleIdentifier(this, visitor);
5960
}
6061
}

‎lib/src/lints/avoid_final_with_getter/fixes/avoid_final_with_getter_fix.dart‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ class AvoidFinalWithGetterFix extends ResolvedCorrectionProducer {
5858
: variableName;
5959

6060
await builder.addDartFileEdit(file, (builder) {
61-
builder.addDeletion(getterNode.sourceRange);
62-
63-
builder.addSimpleReplacement(
64-
variableDeclaration.name.sourceRange,
65-
newPublicVariableName,
66-
);
61+
builder
62+
..addDeletion(getterNode.sourceRange)
63+
..addSimpleReplacement(
64+
variableDeclaration.name.sourceRange,
65+
newPublicVariableName,
66+
);
6767

6868
for (final reference in variableReferences) {
6969
if (reference.sourceRange.intersects(getterNode.sourceRange)) {

‎lib/src/lints/avoid_global_state/avoid_global_state_rule.dart‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ class AvoidGlobalStateRule extends AnalysisRule {
6363
) {
6464
final visitor = AvoidGlobalStateVisitor(this);
6565

66-
registry.addTopLevelVariableDeclaration(this, visitor);
67-
registry.addFieldDeclaration(this, visitor);
66+
registry
67+
..addTopLevelVariableDeclaration(this, visitor)
68+
..addFieldDeclaration(this, visitor);
6869
}
6970
}

‎lib/src/lints/avoid_using_api/avoid_using_api_rule.dart‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,11 @@ class AvoidUsingApiRule extends SolidMultiLintRule<AvoidUsingApiParameters> {
108108
context: context,
109109
);
110110

111-
registry.addSimpleIdentifier(this, visitor);
112-
registry.addNamedType(this, visitor);
113-
registry.addVariableDeclaration(this, visitor);
114-
registry.addInstanceCreationExpression(this, visitor);
115-
registry.addMethodInvocation(this, visitor);
111+
registry
112+
..addSimpleIdentifier(this, visitor)
113+
..addNamedType(this, visitor)
114+
..addVariableDeclaration(this, visitor)
115+
..addInstanceCreationExpression(this, visitor)
116+
..addMethodInvocation(this, visitor);
116117
}
117118
}

‎lib/src/lints/cyclomatic_complexity/cyclomatic_complexity_rule.dart‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ class CyclomaticComplexityRule
5959

6060
final visitor = CyclomaticComplexityVisitor(this, parameters);
6161

62-
registry.addFunctionDeclaration(this, visitor);
63-
registry.addConstructorDeclaration(this, visitor);
64-
registry.addMethodDeclaration(this, visitor);
62+
registry
63+
..addFunctionDeclaration(this, visitor)
64+
..addConstructorDeclaration(this, visitor)
65+
..addMethodDeclaration(this, visitor);
6566
}
6667
}

0 commit comments

Comments
 (0)