tree b0d9d4f5f9654b74687260318c32a4da5bf095e4
parent 5753445286b643fdfaa6ebf91a8911acabc411a5
author Googler <no-reply@google.com> 1697570034 -0700
committer Copybara-Service <copybara-worker@google.com> 1697570064 -0700

Handle accessors that directly return a pointer member variable

This is to handle the common pattern where the return value of an accessor is tested to see if it is non-null and, if so, the accessor called again to dereference the pointer. For example (`get_const()` is annotated as nullable)
```
if (foo.get_const()) {
  foo.get_const()->doThing();  // SAFE
}
```

Additionally, non-const member functions are treated as if they mutate the values of any non-static member variables of pointer type.

```
if (foo.get_const()) {
  foo.nonconst_method();
  foo.get_const()->doThing();  // UNSAFE
}

PiperOrigin-RevId: 574227988
Change-Id: Ie28fd056d576f0e41f01ffe7cbae198f60fe68e1
