@@ -14,17 +14,17 @@ import 'package:solid_lints/src/models/solid_lint_rule.dart';
1414/// ### Example
1515///
1616/// #### BAD:
17- ///
17+ ///
1818/// ```dart
1919/// void x() {
2020/// final y = 1;
21- ///
21+ ///
2222/// return y;
2323/// }
2424/// ```
25- ///
25+ ///
2626/// #### GOOD:
27- ///
27+ ///
2828/// ```dart
2929/// void x() {
3030/// return 1;
@@ -35,7 +35,7 @@ class DontCreateAReturnVarRule extends SolidLintRule {
3535 /// This lint rule represents the error
3636 /// when unnecessary return variable statement is found
3737 static const lintName = 'dont_create_a_return_var' ;
38-
38+
3939 DontCreateAReturnVarRule ._(super .config);
4040
4141 /// Creates a new instance of [DontCreateAReturnVarRule]
@@ -52,7 +52,6 @@ Rewrite the variable evaluation into return statement instead.""",
5252 return DontCreateAReturnVarRule ._(rule);
5353 }
5454
55-
5655 @override
5756 void run (
5857 CustomLintResolver resolver,
@@ -79,16 +78,18 @@ Rewrite the variable evaluation into return statement instead.""",
7978 if (expr is ! SimpleIdentifier ) return ;
8079
8180 final element = expr.element;
82- if (element is ! LocalVariableElement2 ) return ;
81+ if (element is ! LocalVariableElement2 ) return ;
8382 final returnVariableElement = element;
8483
85- if (! returnVariableElement.isFinal && ! returnVariableElement.isConst) return ;
86-
84+ if (! returnVariableElement.isFinal && ! returnVariableElement.isConst) {
85+ return ;
86+ }
87+
8788 final blockBody = statement.parent;
8889 if (blockBody == null ) return ;
8990
9091 final visitor = DontCreateAReturnVarVisitor (
91- returnVariableElement,
92+ returnVariableElement,
9293 statement,
9394 );
9495 blockBody.visitChildren (visitor);
@@ -102,7 +103,7 @@ Rewrite the variable evaluation into return statement instead.""",
102103 }
103104
104105 final declaration = visitor.variableDeclaration;
105-
106+
106107 //check if immutable
107108 final initializer = declaration? .initializer;
108109 if (initializer == null ) return ;
@@ -111,20 +112,18 @@ Rewrite the variable evaluation into return statement instead.""",
111112
112113 reporter.atNode (statement, code);
113114 }
114-
115+
115116 bool _isExpressionImmutable (Expression expr) {
116117 if (expr is Literal ) return true ;
117118
118119 if (expr case final PrefixedIdentifier prefixed) {
119- return
120- _isExpressionImmutable (prefixed.prefix)
121- && _isExpressionImmutable (prefixed.identifier);
120+ return _isExpressionImmutable (prefixed.prefix) &&
121+ _isExpressionImmutable (prefixed.identifier);
122122 }
123123
124124 if (expr case final BinaryExpression binExpr) {
125- return
126- _isExpressionImmutable (binExpr.leftOperand)
127- && _isExpressionImmutable (binExpr.rightOperand);
125+ return _isExpressionImmutable (binExpr.leftOperand) &&
126+ _isExpressionImmutable (binExpr.rightOperand);
128127 }
129128
130129 if (expr case final SimpleIdentifier identifier) {
@@ -135,20 +134,16 @@ Rewrite the variable evaluation into return statement instead.""",
135134 }
136135
137136 bool _isSimpleIdentifierImmutable (SimpleIdentifier identifier) {
138- if (identifier.element
139- case final VariableElement2 variable
140- when variable.isFinal || variable.isConst
141- ) {
142- return true ;
137+ if (identifier.element case final VariableElement2 variable
138+ when variable.isFinal || variable.isConst) {
139+ return true ;
143140 }
144141
145142 if (identifier.element is ClassElement2 ) return true ;
146-
143+
147144 if (identifier.element case final GetterElement getter) {
148- if (getter.variable3
149- case final PropertyInducingElement2 property
150- when property.isFinal || property.isConst
151- ) {
145+ if (getter.variable3 case final PropertyInducingElement2 property
146+ when property.isFinal || property.isConst) {
152147 return true ;
153148 }
154149 }
0 commit comments