
type ReadWriteCloser interface {
io.ReadCloser
io.WriteCloser
}
И он решил исправить это. Вот пропоузал. 👇
Currently, in the section on Interface types, the language specification states:
An interface T may use a (possibly qualified) interface type name E in place of a method specification. This is called embedding interface E in T; it adds all (exported and non-exported) methods of E to the interface T.
We propose to change this to:
An interface T may use a (possibly qualified) interface type name E in place of a method specification. This is called embedding interface E in T. The method set of the resulting interface T is the union of the method set of T’s explicitly declared methods and the method sets of all of T’s embedded interfaces.
And to add the following paragraph:
The union of two method sets A and B is the method set containing each method of A and B exactly once. If a method in A has the same name as a method in B, both these methods must have identical signatures.
https://github.com/golang/proposal/blob/master/design/6977-overlapping-interfaces.md