Rework PointerNullState APIs
These now return Formulas instead of BoolValues, which drops the requirement
to be atomic bools, and opens the door to true/false becoming Formula primitives
rather than Atoms in the framework (and formula simplification).
The connection between nonnull annotations and the is_null property is now
expressed as a global invariant, so it works properly when is_null is neither
exactly true/false nor unconstrained - i.e. when it's restricted by a symbolic
nullability variable in inference.
PiperOrigin-RevId: 567282695
Change-Id: I2e8ac1c173c8bb1526a357d3eafc08935ec8a2da
diff --git a/nullability/BUILD b/nullability/BUILD
index 0ee6158..7b06d42 100644
--- a/nullability/BUILD
+++ b/nullability/BUILD
@@ -100,6 +100,7 @@
"//nullability/test:__pkg__",
],
deps = [
+ ":type_nullability",
"@llvm-project//clang:analysis",
"@llvm-project//clang:ast",
"@llvm-project//clang:basic",
@@ -112,6 +113,7 @@
srcs = ["pointer_nullability_test.cc"],
deps = [
":pointer_nullability",
+ ":type_nullability",
"@llvm-project//clang:analysis",
"@llvm-project//clang:ast",
"@llvm-project//clang:basic",