[nullability] Fix a test bug.
When modifying the flow condition, we were using the null state for
`NonnullAndNotNull` instead of `NonnullAndNull`.
Thankfully, the test still passes.
In addition to fixing the bug, I've reduced the scope of the references, which
would have prevented this bug.
PiperOrigin-RevId: 573783322
Change-Id: If0c98baa25c1acdecca218d30c9171d558eb1fc6
diff --git a/nullability/pointer_nullability_test.cc b/nullability/pointer_nullability_test.cc
index 67e47de..3e54939 100644
--- a/nullability/pointer_nullability_test.cc
+++ b/nullability/pointer_nullability_test.cc
@@ -44,28 +44,36 @@
EXPECT_TRUE(isNullable(makeNullPointer(), Env));
- auto &NullableButNotNull = makePointer(NullabilityKind::Nullable);
- EXPECT_TRUE(isNullable(NullableButNotNull, Env));
- Env.addToFlowCondition(
- A.makeNot(getPointerNullState(NullableButNotNull).IsNull));
- EXPECT_FALSE(isNullable(NullableButNotNull, Env));
+ {
+ auto &NullableButNotNull = makePointer(NullabilityKind::Nullable);
+ EXPECT_TRUE(isNullable(NullableButNotNull, Env));
+ Env.addToFlowCondition(
+ A.makeNot(getPointerNullState(NullableButNotNull).IsNull));
+ EXPECT_FALSE(isNullable(NullableButNotNull, Env));
+ }
- auto &NullableAndNull = makePointer(NullabilityKind::Nullable);
- Env.addToFlowCondition(getPointerNullState(NullableAndNull).IsNull);
- EXPECT_TRUE(isNullable(NullableAndNull, Env));
+ {
+ auto &NullableAndNull = makePointer(NullabilityKind::Nullable);
+ Env.addToFlowCondition(getPointerNullState(NullableAndNull).IsNull);
+ EXPECT_TRUE(isNullable(NullableAndNull, Env));
+ }
- auto &NonnullAndNotNull = makePointer(NullabilityKind::NonNull);
- EXPECT_FALSE(isNullable(NonnullAndNotNull, Env));
- Env.addToFlowCondition(
- A.makeNot(getPointerNullState(NonnullAndNotNull).IsNull));
- EXPECT_FALSE(isNullable(NonnullAndNotNull, Env));
+ {
+ auto &NonnullAndNotNull = makePointer(NullabilityKind::NonNull);
+ EXPECT_FALSE(isNullable(NonnullAndNotNull, Env));
+ Env.addToFlowCondition(
+ A.makeNot(getPointerNullState(NonnullAndNotNull).IsNull));
+ EXPECT_FALSE(isNullable(NonnullAndNotNull, Env));
+ }
- // This is a little surprising: if a pointer comes from a non-null source but
- // is dynamically discovered to be definitely null, we still don't consider
- // it nullable.
- auto &NonnullAndNull = makePointer(NullabilityKind::NonNull);
- Env.addToFlowCondition(getPointerNullState(NonnullAndNotNull).IsNull);
- EXPECT_FALSE(isNullable(NonnullAndNull, Env));
+ {
+ // This is a little surprising: if a pointer comes from a non-null source
+ // but is dynamically discovered to be definitely null, we still don't
+ // consider it nullable.
+ auto &NonnullAndNull = makePointer(NullabilityKind::NonNull);
+ Env.addToFlowCondition(getPointerNullState(NonnullAndNull).IsNull);
+ EXPECT_FALSE(isNullable(NonnullAndNull, Env));
+ }
}
TEST_F(NullabilityPropertiesTest, IsNullableAdditionalConstraints) {