Skip to content

Commit a7facd7

Browse files
authored
tidy up formal parameter inspection (#4289)
1 parent 0c18a65 commit a7facd7

File tree

1 file changed

+8
-28
lines changed

1 file changed

+8
-28
lines changed

lib/src/rules/unnecessary_final.dart

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,9 @@ class _Visitor extends SimpleAstVisitor<void> {
100100
void visitFormalParameterList(FormalParameterList parameterList) {
101101
for (var node in parameterList.parameters) {
102102
if (node.isFinal) {
103-
var keyword = _getFinal(node);
103+
var (keyword, type) = getParameterDetails(node);
104104
if (keyword == null) continue;
105105

106-
var type = _getType(node);
107106
var errorCode = getErrorCode(type);
108107
rule.reportLintForToken(keyword, errorCode: errorCode);
109108
}
@@ -140,32 +139,13 @@ class _Visitor extends SimpleAstVisitor<void> {
140139
}
141140
}
142141

143-
/// Return the `final` token for the parameter [node].
144-
Token? _getFinal(FormalParameter node) {
145-
// TODO(brianwilkerson) Combine with `_getType` by using a record to hold
146-
// the token and type.
142+
(Token?, AstNode?) getParameterDetails(FormalParameter node) {
147143
var parameter = node is DefaultFormalParameter ? node.parameter : node;
148-
if (parameter is FieldFormalParameter) {
149-
return parameter.keyword;
150-
} else if (parameter is SimpleFormalParameter) {
151-
return parameter.keyword;
152-
} else if (parameter is SuperFormalParameter) {
153-
return parameter.keyword;
154-
}
155-
return null;
156-
}
157-
158-
/// Return the type of the formal parameter [node], or `null` if there is no
159-
/// explicit type.
160-
AstNode? _getType(FormalParameter node) {
161-
var parameter = node is DefaultFormalParameter ? node.parameter : node;
162-
if (parameter is FieldFormalParameter) {
163-
return parameter.type;
164-
} else if (parameter is SimpleFormalParameter) {
165-
return parameter.type;
166-
} else if (parameter is SuperFormalParameter) {
167-
return parameter.type;
168-
}
169-
return null;
144+
return switch (parameter) {
145+
FieldFormalParameter() => (parameter.keyword, parameter.type),
146+
SimpleFormalParameter() => (parameter.keyword, parameter.type),
147+
SuperFormalParameter() => (parameter.keyword, parameter.type),
148+
_ => (null, null),
149+
};
170150
}
171151
}

0 commit comments

Comments
 (0)