mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 17:35:46 +00:00
Don't suggest UseCurlyBraces for else-if
Change-Id: I2e29565fe67fbe8e412306ef0b8fd3c3188a970b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296661 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
0eb13c95ac
commit
9070c7baf1
|
@ -109,6 +109,11 @@ class UseCurlyBraces extends CorrectionProducer {
|
|||
|
||||
Future<void> _ifStatement(
|
||||
ChangeBuilder builder, IfStatement node, Statement? thenOrElse) async {
|
||||
final parent = node.parent;
|
||||
if (parent is IfStatement && parent.elseStatement == node) {
|
||||
return;
|
||||
}
|
||||
|
||||
var prefix = utils.getLinePrefix(node.offset);
|
||||
var indent = prefix + utils.getIndent(1);
|
||||
|
||||
|
@ -127,10 +132,15 @@ class UseCurlyBraces extends CorrectionProducer {
|
|||
}
|
||||
|
||||
var elseStatement = node.elseStatement;
|
||||
if (elseKeyword != null &&
|
||||
elseStatement != null &&
|
||||
elseStatement is! Block &&
|
||||
(thenOrElse == null || thenOrElse == elseStatement)) {
|
||||
if (elseKeyword == null || elseStatement == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (elseStatement is Block || elseStatement is IfStatement) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (thenOrElse == null || thenOrElse == elseStatement) {
|
||||
_replace(builder, elseKeyword, elseStatement, indent, prefix);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -292,6 +292,32 @@ void f() {
|
|||
await assertNoAssist();
|
||||
}
|
||||
|
||||
Future<void> test_if_else_if() async {
|
||||
await resolveTestCode('''
|
||||
void f(int a) {
|
||||
if (a == 0) {
|
||||
print(0);
|
||||
} /*caret*/else if (a == 1) {
|
||||
print(1);
|
||||
}
|
||||
}
|
||||
''');
|
||||
await assertNoAssist();
|
||||
}
|
||||
|
||||
Future<void> test_if_else_ifKeyword() async {
|
||||
await resolveTestCode('''
|
||||
void f(int a) {
|
||||
if (a == 0) {
|
||||
print(0);
|
||||
} else /*caret*/if (a == 1) {
|
||||
print(1);
|
||||
}
|
||||
}
|
||||
''');
|
||||
await assertNoAssist();
|
||||
}
|
||||
|
||||
Future<void> test_if_else_keyword() async {
|
||||
await resolveTestCode('''
|
||||
void f(int a) {
|
||||
|
@ -412,6 +438,19 @@ void f(int a) {
|
|||
''');
|
||||
}
|
||||
|
||||
Future<void> test_if_keyword_withElseIf() async {
|
||||
await resolveTestCode('''
|
||||
void f(int a) {
|
||||
/*caret*/if (a == 0) {
|
||||
print(0);
|
||||
} else if (a == 1) {
|
||||
print(1);
|
||||
}
|
||||
}
|
||||
''');
|
||||
await assertNoAssist();
|
||||
}
|
||||
|
||||
Future<void> test_if_keyword_withoutElse() async {
|
||||
await resolveTestCode('''
|
||||
void f(int a) {
|
||||
|
|
Loading…
Reference in a new issue