PR #8735 adds supports for @_implements, which serves some niche but important purposes in the standard library.
Currently, we’re running into some potential source breakage with conditional conformances (for standard library types) for which @_implements would be perfect. However, it seems like this attribute simply doesn’t work inside extensions. By which I mean, the following compiles:
Given that @_implements can result in weird diagnostics I don't think it was really intended to be used anywhere but for compiler-synthesized == yet. But if it really would be useful I don't think there's an inherent reason not to allow it in extensions. graydon (JIRA User), thoughts?
The intended use here is for conditional implementations of == in the standard library, so we wouldn’t be stretching very far. I can see that the diagnostics are hardcoded but this isn’t going to be a problem for the intended use as it requires very little additional code to have the diagnostics cooperate here.
The workaround I could devise today requires a public underscored protocol, so being able to eliminate that from the ABI would be nice (TM).
Sorry, the diagnostics I'm talking about are when the member that uses _implements ends up getting mentioned for some reason, not the diagnostics around _implements itself. People don't expect it to have a different name. (This doesn't happen very often, but...)