You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix check for unimplemented members in a concrete class
Before this commit, this check was done using Type#matchesLoosely, which
behaves differently from Denotation#matchesLoosely, in particular the
latter requires matching signatures and the former does not, and because
bridge generation at Erasure relies on denotation matching, we could end
up with unimplemented members at runtime. Fixed by switching to
denotation matching which should now be used uniformly everywhere we
check for overrides.
This commit also improves the error message of this check to list where
the abstract member and non-matching concrete members come from, since
this can be difficult to figure out in a complex hierarchy.
Fixes#10666.
0 commit comments