Commits

David Farler committed cafbff53afa
[QoI] Improve diagnostics when putting a class bound in a generic signature When declaring a nominal type: struct Weak<T> { weak var value: T } The diagnostic might mislead the developer to adding ': class' literally to the 'T' in the generic parameters for `Weak`: "'weak' may not be applied to non-class-bound protocol 'T'; consider adding a class bound" This is misleading in two ways: 1, 'T' isn't necessarily a protocol (this patch generalizes that part of the message) and 2, you can't put `: class` in the generic parameter list for `Weak`. In addition, the stray class constraint causes diagnostic spew that also hides the issue. Also provide a fix-it to constrain with 'AnyObject', which is probably what the devloper means in this case. rdar://problem/25481209