diff --git a/Sources/TokamakCore/Preferences/PreferenceKey.swift b/Sources/TokamakCore/Preferences/PreferenceKey.swift index d67845218..a94cdf671 100644 --- a/Sources/TokamakCore/Preferences/PreferenceKey.swift +++ b/Sources/TokamakCore/Preferences/PreferenceKey.swift @@ -51,7 +51,7 @@ public struct _PreferenceStore { public func value(forKey key: Key.Type = Key.self) -> _PreferenceValue where Key: PreferenceKey { - values[String(describing: key)] as? _PreferenceValue + values[String(reflecting: key)] as? _PreferenceValue ?? _PreferenceValue(valueList: [Key.defaultValue]) } @@ -59,7 +59,7 @@ public struct _PreferenceStore { where Key: PreferenceKey { let previousValues = self.value(forKey: key).valueList - values[String(describing: key)] = _PreferenceValue(valueList: previousValues + [value]) + values[String(reflecting: key)] = _PreferenceValue(valueList: previousValues + [value]) } public mutating func merge(with other: Self) { diff --git a/Sources/TokamakCore/Reflection/typeConstructorName.swift b/Sources/TokamakCore/Reflection/typeConstructorName.swift index 112814165..921460f9f 100644 --- a/Sources/TokamakCore/Reflection/typeConstructorName.swift +++ b/Sources/TokamakCore/Reflection/typeConstructorName.swift @@ -18,9 +18,5 @@ is returned. */ public func typeConstructorName(_ type: Any.Type) -> String { - // FIXME: no idea if this calculation is reliable, but seems to be the only way to get - // a name of a type constructor in runtime. Should definitely check if these are different - // across modules, otherwise can cause problems with views with same names in different - // modules. - String(String(describing: type).prefix { $0 != "<" }) + String(String(reflecting: type).prefix { $0 != "<" }) } diff --git a/Sources/TokamakCore/Views/View.swift b/Sources/TokamakCore/Views/View.swift index 32b144b18..35f38a8e9 100644 --- a/Sources/TokamakCore/Views/View.swift +++ b/Sources/TokamakCore/Views/View.swift @@ -36,7 +36,7 @@ public protocol PrimitiveView: View where Body == Never {} public extension PrimitiveView { @_spi(TokamakCore) var body: Never { - neverBody(String(describing: Self.self)) + neverBody(String(reflecting: Self.self)) } }