diff --git a/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart
index f5f9774..5bda1ad 100644
--- a/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart
@@ -1470,6 +1470,77 @@
     assertSuggestKeywords(statementStartOutsideClass);
   }
 
+  @failingTest
+  Future<void> test_ifElement_noElse_last() async {
+    addTestSource('''
+void f() {
+  [if (true) 1 ^];
+}
+''');
+    await computeSuggestions();
+    assertSuggestKeywords([
+      ...COLLECTION_ELEMENT_START,
+      ...EXPRESSION_START_NO_INSTANCE,
+      Keyword.ELSE
+    ]);
+  }
+
+  Future<void> test_ifElement_noElse_notInElement() async {
+    addTestSource('''
+void f() {
+  [if (true) 1, ^];
+}
+''');
+    await computeSuggestions();
+    assertSuggestKeywords(
+        [...COLLECTION_ELEMENT_START, ...EXPRESSION_START_NO_INSTANCE]);
+  }
+
+  @failingTest
+  Future<void> test_ifElement_noElse_notLast() async {
+    addTestSource('''
+void f(int i) {
+  [if (true) 1 ^, i];
+}
+''');
+    await computeSuggestions();
+    assertSuggestKeywords([
+      ...COLLECTION_ELEMENT_START,
+      ...EXPRESSION_START_NO_INSTANCE,
+      Keyword.ELSE
+    ]);
+  }
+
+  @failingTest
+  Future<void> test_ifElement_partialElse_last() async {
+    addTestSource('''
+void f() {
+  [if (true) 1 e^];
+}
+''');
+    await computeSuggestions();
+    assertSuggestKeywords([
+      ...COLLECTION_ELEMENT_START,
+      ...EXPRESSION_START_NO_INSTANCE,
+      Keyword.ELSE
+    ]);
+  }
+
+  @failingTest
+  Future<void> test_ifElement_partialElse_notLast() async {
+    addTestSource('''
+void f(int i) {
+  [if (true) 1 e^, i];
+}
+''');
+    await computeSuggestions();
+    assertSuggestKeywords([
+      ...COLLECTION_ELEMENT_START,
+      ...EXPRESSION_START_NO_INSTANCE,
+      Keyword.ELSE
+    ]);
+  }
+
   Future<void> test_ifOrForElement_forElement() async {
     addTestSource('''
 f() => [for (var e in c) ^];
diff --git a/tools/VERSION b/tools/VERSION
index 5527eb6..6eb7104 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 12
 PATCH 0
-PRERELEASE 277
+PRERELEASE 278
 PRERELEASE_PATCH 0
\ No newline at end of file
