Skip to content

fix: use module selectors in observation macro expansion - #7

Merged
Kyle-Ye merged 3 commits into
mainfrom
optimize/export
Oct 26, 2026
Merged

Kyle-Ye merged 3 commits into
mainfrom
optimize/export

Conversation

@Kyle-Ye

@Kyle-Ye Kyle-Ye commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Summary

Avoid ambiguous observation macros when OpenObservation and Apple's Observation are visible in the same file, including through UIKit or AppKit.

Changes

  • Emit OpenObservation:: attributes and recognize unqualified names, dot-qualified names, and module selectors.
  • Generate backing storage for explicitly tracked properties without retaining the tracking attribute.
  • Add regression tests and document when module selectors are required.

Toolchain and CI

Require Swift 6.3 for module selector support. Update macOS and Ubuntu CI to Swift 6.3.3 and run macro tests in both workflows.

Ignore generated Xcode projects and Derived directories.

Validation

  • Swift 6.3.3 debug and release builds, all 17 macro tests, and workflow lint pass locally on macOS.
  • Compiler checks and OpenSwiftUI-spm Example builds pass on macOS, iOS Simulator, and visionOS Simulator.
  • Runtime checks confirm ignored-property behavior and repeated tracked updates.
  • Documentation examples pass type checking on macOS and iOS Simulator.

@Kyle-Ye Kyle-Ye changed the title fix: qualify observation macro expansion fix: use module selectors in observation macro expansion Oct 26, 2026
@Kyle-Ye
Kyle-Ye merged commit b030e44 into main Oct 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant