mirror of
https://github.com/apple/swift.git
synced 2026-03-04 18:24:35 +01:00
.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