Files
John Hui c2952b77aa [cxx-interop] Synthesize .pointee and .successor() on-demand
.pointee is a computed variable whose getter and setter are synthesized
from operator*() (dereference).

.successor() is a method that is synthesized from operator++()
(prefix increment).

They are currently created at the end of importing each StructDecl.
That relies on importing operators eagerly, which can lead to template
over-instantiation issues, and is also extra work that we should try to
avoid.

Also, .pointee picks getters and setters based on the last-seen
operator*() overload, which is an unintuitive programming model and also
especially error-prone when matters of inheritance are involved.

We should teach ClangImporter to look up and synthesize these members
on-demand, rather than relying on synthesizing these eagerly.

rdar://167360692
2026-01-11 13:05:31 -08:00
..