swiftlang/swift
Ver no GitHubOffer additional note for why method with Self reference cannot be used on `any SomeType`
Open
#76.320 aberto em 6 de set. de 2024
compilerdiagnostics qualityexistentialsgood first issueimprovementswift 6.2type checker
Métricas do repositório
- Stars
- (69.989 stars)
- Métricas de merge de PR
- (Mesclagem média 7d 6h) (556 fundiu PRs em 30d)
Description
Motivation
The following snippet;
protocol Base {
associatedtype SomeID: Hashable
}
protocol Alpha: Base {
func take(id: Self.SomeID)
}
struct Use {
let alpha: any Alpha
func test() {
alpha.take(id: 12) // error: Member 'take' cannot be used on value of type 'any Alpha'; consider using a generic constraint instead
}
}
is correct in rejecting the line, since we need Self.SomeID to be well typed, but we dont know what its type is via the any.
It'd be helpful if we can point out that "why" the method can't be used via a note, in a method with many parameters one can sometimes miss the Self reference.
Proposed solution
Adding a note on the offending parameter would be good
Alternatives considered
No response
Additional information
No response