Avatar
Package.swift が swift-tools-version:4.0 の状態で swift build すると #if swift(>=4.2) が正しく動かないみたい。これはバグ?
6:15 AM
#if !swift(>=4.2) print("<4.2") #endif print(CountableRange<Int>.self)
6:15 AM
というコードに対して、 $ swift --version Apple Swift version 4.2 (swiftlang-1000.0.36 clang-1000.10.44) Target: x86_64-apple-darwin17.7.0 $ swift run <4.2 Range<Int>
6:15 AM
となる。
6:16 AM
CountableRange<Int>.selfRange<Int> になってるから中身は Swift 4.2 らしく、正しく分岐できずに困ったことになりそう。 (edited)
6:19 AM
Swift 4.1 だとちゃんと CountableRange になってる。 $ swift --version Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2) Target: x86_64-apple-darwin17.7.0 $ swift run <4.2 CountableRange<Int> (edited)