{"push_id":3101153222,"size":2,"distinct_size":2,"ref":"refs/heads/master","head":"a9232818035dc99fce73750759927d4421262448","before":"799cdfab6d44186e9dd46805e90ea916ce9f9382","commits":[{"sha":"984bd99b4042189f78162717e62a621d3f0992ac","author":{"name":"Andrew Trick","email":"6050ac38e168b9c48bd260f485ec2f5d125e78d6@apple.com"},"message":"Fix SILCombine to devirtualize existentials wrapped in enum.\n\nThis allows Swift code to implement a fast path via a protocol type\ncheck as follows:\n\n  if let existentialVal = genericVal as? SomeProtocol {\n    // do something fast.\n  }\n\nFixes <rdar://problem/46322928> Failure to devirtualize a protocol\nmethod applied to an opened existential blocks implemention of\nDataProtocol.\n\nNote: the approach of devirtualization via backward pattern matching\nis fundamentally wrong and will never be fully general. It should be a\nforward type propagation.","distinct":true,"url":"https://api.github.com/repos/apple/swift/commits/984bd99b4042189f78162717e62a621d3f0992ac"},{"sha":"a9232818035dc99fce73750759927d4421262448","author":{"name":"Andrew Trick","email":"6050ac38e168b9c48bd260f485ec2f5d125e78d6@apple.com"},"message":"Merge pull request #20920 from atrick/fix-devirt-enum\n\nFix SILCombine to devirtualize existentials wrapped in enum.","distinct":true,"url":"https://api.github.com/repos/apple/swift/commits/a9232818035dc99fce73750759927d4421262448"}]}
{"actor":{"display_login":"atrick"}}