swift
19a37c8a - Sema: Fix source compatibility break from relaxed witness matching rules

Commit
7 years ago
Sema: Fix source compatibility break from relaxed witness matching rules This is fix for a source compat regression from: commit 790625ab5b80d6b673a0ab7255561700643a415b Author: Doug Gregor <dgregor@apple.com> Date: Mon Mar 19 15:29:32 2018 -0700 Allow a witness's noescape parameter to match a requirement's escaping parameter The regression is not severe but its easy enough to fix. With the above change, it was possible for an optional requirement that did not have a witness in Swift 4.1 to pick up a witness in Swift 4.2, because the escaping/noescape mismatch prevented it from being considered in Swift 4.1. If the new witness was not sufficiently visible, this caused a source compatibility regression. Work around this by discarding the witness if its not sufficiently visible. In -swift-version 5, the hack expires, and we revert to the stricter, more consistent behavior. Fixes <rdar://problem/39614880>.
Author
Committer
Parents
Loading