mirror of
https://github.com/golang/go
synced 2024-11-02 11:50:30 +00:00
go/types: add the Interface.IsMethodSet method
As pointed out in #47916, the IsConstraint method becomes ambiguously named if ever we allow interfaces with structural restrictions outside of constraint position. Add instead an IsMethodSet method, which has the opposite sense and avoids this ambiguity. In a subsequent CL the IsConstraint method will be removed, once x/tools has been updated to use the IsMethodSet API. Updates #47916 Change-Id: I82ad16b111464b0cd2f354b8ecdd4b3f14796cd9 Reviewed-on: https://go-review.googlesource.com/c/go/+/352616 Trust: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
5511f14a73
commit
02d56a1584
1 changed files with 6 additions and 0 deletions
|
@ -104,7 +104,13 @@ func (t *Interface) Empty() bool { return t.typeSet().IsAll() }
|
|||
// IsComparable reports whether each type in interface t's type set is comparable.
|
||||
func (t *Interface) IsComparable() bool { return t.typeSet().IsComparable() }
|
||||
|
||||
// IsMethodSet reports whether the interface t is fully described by its method
|
||||
// set.
|
||||
func (t *Interface) IsMethodSet() bool { return !t.typeSet().IsConstraint() }
|
||||
|
||||
// IsConstraint reports whether interface t is not just a method set.
|
||||
//
|
||||
// TODO(rfindley): remove this method.
|
||||
func (t *Interface) IsConstraint() bool { return t.typeSet().IsConstraint() }
|
||||
|
||||
// Complete computes the interface's type set. It must be called by users of
|
||||
|
|
Loading…
Reference in a new issue