mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
The problem is that the derived property's materializeForSet was being synthesized after recordOverride() was called, so the new accessor never got setOverridenDecl() called on it. As a result, SIL didn't know that the derived materializeForSet should replace the vtable entry for the base class materializeForSet. The more fundamental problem here is that even after some recent cleanups, accessors are still sometimes type checked before the AbstractStorageDecla and sometimes after. So things like inferring final, dynamic and overrides have to be duplicated in multiple places. Fixes <https://bugs.swift.org/browse/SR-3840> and <rdar://problem/30336146>.
4.6 KiB
4.6 KiB