Jano Svitok created THRIFT-5150:
-----------------------------------
Summary: 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
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)