Created
February 12, 2026 10:54
-
-
Save rhysm94/6d8e3438696bdea998c1816b77119b7a to your computer and use it in GitHub Desktop.
Swift Macros can't see other macros
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import Unimplemented | |
| @Unimplemented | |
| protocol Logger { | |
| func log(message: String) | |
| } | |
| // Generated: | |
| // struct UnimplementedLogger: Logger { | |
| // init() {} | |
| // var _log: (_ message: String) -> Void = IssueReporting.unimplemented("Logger.log") | |
| // func log(message: String) { | |
| // _log(message) | |
| // } | |
| // } | |
| @Observable | |
| final class Model { | |
| let logger: any Logger | |
| init(logger: any Logger = UnimplementedLogger()) { | |
| self.logger = logger | |
| } | |
| } | |
| // This works! | |
| #Preview { | |
| @Previewable @State var model = Model() | |
| } | |
| // This doesn't! | |
| #Preview { | |
| @Previewable @State var model = Model(logger: UnimplementedLogger()) // Cannot find 'UnimplementedLogger' in scope | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment