Commits

Jordan Rose committed ac2a9c06da0
When looking for conformances, make sure to check inherited conformances too. Previously, if we were looking for, say, ForwardIndex conformance on Int, we would see that Int is a BidirectionalIndex, and that BidirectionalIndex refines ForwardIndex...but we'd have no way to get a conformance from BidirectionalIndex (since it's not really BidirectionalIndex that conforms to ForwardIndex, but rather Int-via-BidirectionalIndex). Change Module::lookupConformance's helper findExplicitConformance to actually keep conformance records around and walk those instead of just looking at the ProtocolDecl's list of adopted protocols. I don't have a minimal test case for this, but it fixes <rdar://problem/15691181>, which allows DictionaryIndex to just adopt BidirectionalIndex and have the ForwardIndex part be inferred. The problem manifested as a crash in test/stdlib/Dictionary.swift, which just uses a Dictionary in very basic ways, so I imagine we'll notice if this regresses. Swift SVN r11521