[
https://issues.apache.org/jira/browse/THRIFT-5150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jano Svitok resolved THRIFT-5150.
---------------------------------
Fix Version/s: 0.14.0
Assignee: Jano Svitok
Resolution: Fixed
> TSet does not compile with Swift 5.2
> ------------------------------------
>
> Key: THRIFT-5150
> URL: https://issues.apache.org/jira/browse/THRIFT-5150
> Project: Thrift
> Issue Type: Bug
> Components: Swift - Library
> Affects Versions: 0.14.0
> Reporter: Jano Svitok
> Assignee: Jano Svitok
> Priority: Major
> Fix For: 0.14.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Output from compilation:
> {noformat}
> /thrift/src/lib/swift/Sources/TSet.swift:22:15: error: type 'TSet<Element>'
> does not conform to protocol 'SetAlgebra'
> public struct TSet<Element : TSerializable & Hashable> : SetAlgebra,
> Hashable, Collection, ExpressibleByArrayLiteral, TSerializable {
> ^
> /thrift/src/lib/swift/Sources/TSet.swift:129:14: warning:
> 'Hashable.hashValue' is deprecated as a protocol requirement; conform type
> 'TSet' to 'Hashable' by implementing 'hash(into:)' instead
> public var hashValue : Int {
> ^
> /thrift/src/lib/swift/Sources/TSet.swift:22:15: error: type 'TSet<Element>'
> does not conform to protocol 'Collection'
> public struct TSet<Element : TSerializable & Hashable> : SetAlgebra,
> Hashable, Collection, ExpressibleByArrayLiteral, TSerializable {
> ^
> /thrift/src/lib/swift/Sources/TSet.swift:22:15: error: type 'TSet<Element>'
> does not conform to protocol 'Sequence'
> public struct TSet<Element : TSerializable & Hashable> : SetAlgebra,
> Hashable, Collection, ExpressibleByArrayLiteral, TSerializable {
> ^
> Swift.Sequence:3:20: note: unable to infer associated type 'Iterator' for
> protocol 'Sequence'
> associatedtype Iterator : IteratorProtocol
> ^
> Swift.Sequence:2:40: note: candidate would match and infer 'Iterator' =
> 'TSet<Element>' if 'TSet<Element>' conformed to 'IteratorProtocol'
> @inlinable public __consuming func makeIterator() -> Self
> ^
> Swift.SetAlgebra:2:20: note: protocol requires nested type 'Element'; do you
> want to add it?
> associatedtype Element
> ^
> Swift.Collection:4:20: note: protocol requires nested type 'Element'; do you
> want to add it?
> associatedtype Element
> ^
> Swift.Collection:8:20: note: protocol requires nested type 'Iterator'; do you
> want to add it?
> associatedtype Iterator = IndexingIterator<Self>
> ^
> {noformat}
>
> Reproduction:
> Change
> https://github.com/apache/thrift/blob/master/build/docker/ubuntu-bionic/Dockerfile#L254
> to:
> {noformat}
> RUN cd / && \
> wget --quiet
> https://swift.org/builds/swift-5.2-release/ubuntu1804/swift-5.2-RELEASE/swift-5.2-RELEASE-ubuntu18.04.tar.gz
> && \
> tar xf swift-5.2-RELEASE-ubuntu18.04.tar.gz --strip-components=1 && \
> rm swift-5.2-RELEASE-ubuntu18.04.tar.gz && \
> swift --version
> {noformat}
> I will provide fix.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)