@@ -17,6 +17,22 @@ import SwiftSyntaxMacros
1717@_implementationOnly import SwiftSyntaxBuilder
1818
1919public struct ObservableMacro {
20+ static let moduleName = " _Observation "
21+
22+ static let conformanceName = " Observable "
23+ static var qualifiedConformanceName : String {
24+ return " \( moduleName) . \( conformanceName) "
25+ }
26+
27+ static var observableConformanceType : TypeSyntax {
28+ " \( raw: qualifiedConformanceName) "
29+ }
30+
31+ static let registrarTypeName = " ObservationRegistrar "
32+ static var qualifiedRegistrarTypeName : String {
33+ return " \( moduleName) . \( registrarTypeName) "
34+ }
35+
2036 static let trackedMacroName = " ObservationTracked "
2137 static let ignoredMacroName = " ObservationIgnored "
2238
@@ -25,7 +41,7 @@ public struct ObservableMacro {
2541 static func registrarVariable( _ observableType: TokenSyntax ) -> DeclSyntax {
2642 return
2743 """
28- @ \( raw: ignoredMacroName) private let \( raw: registrarVariableName) = ObservationRegistrar ()
44+ @ \( raw: ignoredMacroName) private let \( raw: registrarVariableName) = \( raw : qualifiedRegistrarTypeName ) ()
2945 """
3046 }
3147
@@ -264,13 +280,13 @@ extension ObservableMacro: ConformanceMacro {
264280
265281 if let inheritanceList {
266282 for inheritance in inheritanceList {
267- if inheritance. typeName. identifier == " Observable " {
283+ if inheritance. typeName. identifier == ObservableMacro . conformanceName {
268284 return [ ]
269285 }
270286 }
271287 }
272288
273- return [ ( " Observable " , nil ) ]
289+ return [ ( ObservableMacro . observableConformanceType , nil ) ]
274290 }
275291}
276292
0 commit comments