From a1a163bad1076749a46377f99dbd73f6882fa7a1 Mon Sep 17 00:00:00 2001 From: Mahdi Bahrami Date: Sun, 14 Jul 2024 15:19:35 +0330 Subject: [PATCH] Fix retroactive conformances in tests (#39) * Fix retroactive conformances in tests * conformances use a shared logic * Use `hasFeature(RetroactiveAttribute)` instead of `compiler(>=6.0)` * even better use of shared logic --- Tests/MustacheTests/TemplateParserTests.swift | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Tests/MustacheTests/TemplateParserTests.swift b/Tests/MustacheTests/TemplateParserTests.swift index e9f2380..8312535 100644 --- a/Tests/MustacheTests/TemplateParserTests.swift +++ b/Tests/MustacheTests/TemplateParserTests.swift @@ -58,13 +58,19 @@ final class TemplateParserTests: XCTestCase { } } -extension MustacheTemplate: Equatable { +extension MustacheTemplate { public static func == (lhs: MustacheTemplate, rhs: MustacheTemplate) -> Bool { lhs.tokens == rhs.tokens } } -extension MustacheTemplate.Token: Equatable { +#if hasFeature(RetroactiveAttribute) +extension MustacheTemplate: @retroactive Equatable {} +#else +extension MustacheTemplate: Equatable {} +#endif + +extension MustacheTemplate.Token { public static func == (lhs: MustacheTemplate.Token, rhs: MustacheTemplate.Token) -> Bool { switch (lhs, rhs) { case (.text(let lhs), .text(let rhs)): @@ -84,3 +90,9 @@ extension MustacheTemplate.Token: Equatable { } } } + +#if hasFeature(RetroactiveAttribute) +extension MustacheTemplate.Token: @retroactive Equatable {} +#else +extension MustacheTemplate.Token: Equatable {} +#endif