tree 65a18fb99480df7d88b0f1e3a313a2313670d703
parent 5950ee85a170860fba24741a7674624930c732f8
author Googler <no-reply@google.com> 1719410208 -0700
committer Copybara-Service <copybara-worker@google.com> 1719410288 -0700

Emit evidence for virtual methods and overrides that constrain each other.

The nullabilities of return and parameter types for these functions are partially constrained by the overriding/overridden method(s). So when collecting evidence for one, collect the same evidence for the overriding or overridden method as appropriate for that constraint.

Because callers can virtually call Derived::foo or Base::foo from a Base object and can call only Derived::foo from a Derived object (without very explicitly referencing the Base method decl), the Derived API can be only as restrictive as the Base API from the *caller's* perspective in terms of what it can return or what it accepts for parameters. Derived::foo can be less restrictive, or equally restrictive, but not more, e.g. Derived::foo can accept Nullable parameters instead of just Base::foo's Nonnulls, but Derived::foo can't require Nonnull parameters instead of Base::foo's allowed Nullables.

Therefore, we apply the following rules for evidence collection. For return types, evidence pointing towards Nonnull emitted for Base methods is emitted also for Derived methods and evidence pointing towards Nullable emitted for Derived methods is emitted also for Base methods. For parameter types, this is flipped. See the many tests in this change for examples of evidence collected and inferences made in various scenarios.

PiperOrigin-RevId: 646930709
Change-Id: I541ec5b9973d80f26114e53f81d9fbfae38ff24c
