Open dabrahams opened 7 years ago
Reproduced this locally. Taking a look now.
A workaround seems to be to remove the : Iterator
constraint on this line, so I am no longer blocked
We seem to end up with ErrorType in for the type we're conforming to, but never emit a diagnostic, which means that we don't bail out after type checking, but rather continue and attempt to serialize.
(lldb) p ATD->dump()
(associated_type_decl "Iterator" interface type='Self.Iterator.Type' access=public default=Self.Base.Iterator)
(lldb) p inherited.isError()
(bool) $3 = true
(lldb) p inherited.TyR->getLoc()
(swift::SourceLoc) $2 = {
Value = (Ptr = "Iterator = Base.Iterator\n func wrap(: Base.Index) > Index\n func unwrap(: Index) ~~> Base.Index\n}\n\n/// When the `Iterator` type matches, just forward it.\nextension BidirectionalCollectionWrapper where Iterator == Base.Iterator {\n public func makeIterator() ~~> Iterator { return base.makeIterator() }\n}\n\n/// When the `Index` type matches, wrapping/unwrapping is trivial\npublic extension BidirectionalCollectionWrapper where Index == Base.Index {\n func wrap( i: Base.Index) ~~> Index { return i }\n func unwrap( i: Index) ~~> Base.Index { return i }\n}\n\n/// Forwards all the `BidirectionalCollection` APIs from `Base`, verbatim, but\n/// with whatever Index wrapping we have chosen.\nextension BidirectionalCollectionWrapper {\n // ###sourceLocation(file: "/Users/mark_lacey/swift-dave/swift/stdlib/public/core/ForwardCollectionAPIs.swift.gyb", line: 1)\n//===~~ ForwardCollectionAPIs.swift.gyb -~~-------------------------------===//\n//\n// This source file is part of the Swift.org open source project\n//\n// Copyright ")
Additional Detail from JIRA
| | | |------------------|-----------------| |Votes | 0 | |Component/s | Compiler | |Labels | Bug | |Assignee | @DougGregor | |Priority | Medium | md5: 01a4103ad84a7a9790362b211874fceeIssue Description:
and build the compiler for this assertion: