@@ -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
@@ -262,13 +278,13 @@ extension ObservableMacro: ConformanceMacro {
262278
263279 if let inheritanceList {
264280 for inheritance in inheritanceList {
265- if inheritance. typeName. identifier == " Observable " {
281+ if inheritance. typeName. identifier == ObservableMacro . conformanceName {
266282 return [ ]
267283 }
268284 }
269285 }
270286
271- return [ ( " Observable " , nil ) ]
287+ return [ ( ObservableMacro . observableConformanceType , nil ) ]
272288 }
273289}
274290
0 commit comments