Skip to content

Commit 89e940a

Browse files
committed
Issue #92: changed if chain to switch statement (more readable)
1 parent 5390736 commit 89e940a

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

lib/src/lints/dont_create_a_return_var/dont_create_a_return_var_rule.dart

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -114,38 +114,39 @@ Rewrite the variable evaluation into return statement instead.""",
114114
}
115115

116116
bool _isExpressionImmutable(Expression expr) {
117-
if (expr is Literal) return true;
117+
switch (expr) {
118+
case Literal _:
119+
return true;
118120

119-
if (expr case final PrefixedIdentifier prefixed) {
120-
return _isExpressionImmutable(prefixed.prefix) &&
121-
_isExpressionImmutable(prefixed.identifier);
122-
}
121+
case final PrefixedIdentifier prefixed:
122+
return _isExpressionImmutable(prefixed.prefix) &&
123+
_isExpressionImmutable(prefixed.identifier);
123124

124-
if (expr case final BinaryExpression binExpr) {
125-
return _isExpressionImmutable(binExpr.leftOperand) &&
126-
_isExpressionImmutable(binExpr.rightOperand);
127-
}
125+
case final BinaryExpression binExpr:
126+
return _isExpressionImmutable(binExpr.leftOperand) &&
127+
_isExpressionImmutable(binExpr.rightOperand);
128128

129-
if (expr case final SimpleIdentifier identifier) {
130-
return _isSimpleIdentifierImmutable(identifier);
129+
case final SimpleIdentifier identifier:
130+
return _isSimpleIdentifierImmutable(identifier);
131131
}
132132

133133
return false;
134134
}
135135

136136
bool _isSimpleIdentifierImmutable(SimpleIdentifier identifier) {
137-
if (identifier.element case final VariableElement2 variable
138-
when variable.isFinal || variable.isConst) {
139-
return true;
140-
}
141-
142-
if (identifier.element is ClassElement2) return true;
137+
switch (identifier.element) {
138+
case final VariableElement2 variable
139+
when variable.isFinal || variable.isConst:
140+
return true;
143141

144-
if (identifier.element case final GetterElement getter) {
145-
if (getter.variable3 case final PropertyInducingElement2 property
146-
when property.isFinal || property.isConst) {
142+
case ClassElement2 _:
147143
return true;
148-
}
144+
145+
case final GetterElement getter:
146+
if (getter.variable3 case final PropertyInducingElement2 property
147+
when property.isFinal || property.isConst) {
148+
return true;
149+
}
149150
}
150151

151152
return false;

0 commit comments

Comments
 (0)