diff --git a/pkg/analyzer/test/src/summary/summarize_ast_one_phase_test.dart b/pkg/analyzer/test/src/summary/summarize_ast_one_phase_test.dart
index bbab35d..5640c3f 100644
--- a/pkg/analyzer/test/src/summary/summarize_ast_one_phase_test.dart
+++ b/pkg/analyzer/test/src/summary/summarize_ast_one_phase_test.dart
@@ -18,12 +18,6 @@
     with SummaryTestCases {
   @override
   @failingTest
-  test_bottom_reference_shared() {
-    super.test_bottom_reference_shared();
-  }
-
-  @override
-  @failingTest
   test_closure_executable_with_bottom_return_type() {
     super.test_closure_executable_with_bottom_return_type();
   }
diff --git a/pkg/analyzer/test/src/summary/summarize_ast_strong_test.dart b/pkg/analyzer/test/src/summary/summarize_ast_strong_test.dart
index 8048ebd..cb6268c 100644
--- a/pkg/analyzer/test/src/summary/summarize_ast_strong_test.dart
+++ b/pkg/analyzer/test/src/summary/summarize_ast_strong_test.dart
@@ -18,12 +18,6 @@
     with SummaryTestCases {
   @override
   @failingTest
-  test_bottom_reference_shared() {
-    super.test_bottom_reference_shared();
-  }
-
-  @override
-  @failingTest
   test_closure_executable_with_imported_return_type() {
     super.test_closure_executable_with_imported_return_type();
   }
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart
index 8279c5e..1c26903 100644
--- a/pkg/analyzer/test/src/summary/summary_common.dart
+++ b/pkg/analyzer/test/src/summary/summary_common.dart
@@ -930,11 +930,13 @@
     }
     // The synthetic executables for both `x` and `y` have type `() => `Bottom`.
     // Verify that they both use the same reference to `Bottom`.
-    serializeLibraryText('int x = null; int y = null;');
+    serializeLibraryText('var x = throw null; var y = throw null;');
     EntityRef xInitializerReturnType =
         getTypeRefForSlot(findVariable('x').initializer.inferredReturnTypeSlot);
     EntityRef yInitializerReturnType =
         getTypeRefForSlot(findVariable('y').initializer.inferredReturnTypeSlot);
+    checkLinkedTypeRef(xInitializerReturnType, null, '*bottom*');
+    checkLinkedTypeRef(yInitializerReturnType, null, '*bottom*');
     expect(xInitializerReturnType.reference, yInitializerReturnType.reference);
   }
 
