Skip to content

Commit cb3cf5c

Browse files
author
Illia Aihistov
committed
fix: handle parenthesized expressions in proper_super_calls (#235)
1 parent 5af6e2a commit cb3cf5c

2 files changed

Lines changed: 30 additions & 4 deletions

File tree

lib/src/lints/proper_super_calls/proper_super_calls_rule.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,9 @@ class ProperSuperCallsRule extends SolidLintRule {
139139
final firstStatement = statements.first;
140140

141141
if (firstStatement is ExpressionStatement) {
142-
var expression = firstStatement.expression;
142+
var expression = firstStatement.expression.unParenthesized;
143143
if (expression is AwaitExpression) {
144-
expression = expression.expression;
144+
expression = expression.expression.unParenthesized;
145145
}
146146

147147
final isSuperInitStateCalledFirst = expression is MethodInvocation &&
@@ -161,9 +161,9 @@ class ProperSuperCallsRule extends SolidLintRule {
161161
final lastStatement = statements.last;
162162

163163
if (lastStatement is ExpressionStatement) {
164-
var expression = lastStatement.expression;
164+
var expression = lastStatement.expression.unParenthesized;
165165
if (expression is AwaitExpression) {
166-
expression = expression.expression;
166+
expression = expression.expression.unParenthesized;
167167
}
168168

169169
final lastStatementIsSuperDispose = expression is MethodInvocation &&

lint_test/proper_super_calls_test.dart

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,30 @@ class _ProperSuperCallsTest3State extends State<ProperSuperCallsTest3> {
107107
}
108108
}
109109

110+
class ProperSuperCallsTest4 extends StatefulWidget {
111+
@override
112+
State<ProperSuperCallsTest4> createState() => _ProperSuperCallsTest4State();
113+
114+
ProperSuperCallsTest4();
115+
}
116+
117+
class _ProperSuperCallsTest4State extends State<ProperSuperCallsTest4> {
118+
@override
119+
Widget build() {
120+
return Widget();
121+
}
122+
123+
@override
124+
Future<void> initState() async {
125+
await (super.initState());
126+
print('');
127+
}
128+
129+
@override
130+
Future<void> dispose() async {
131+
print('');
132+
(await super.dispose());
133+
}
134+
}
135+
110136

0 commit comments

Comments
 (0)