mirror of
https://github.com/golang/go
synced 2024-11-17 16:34:43 -07:00
go/types, types2: add the Interface.MarkImplicit method
Add a new interface method, MarkImplicit, to allow marking interfaces as implicit from outside the type-checker. This is necessary so that we can capture the implicit bit in export data, and use it from importers. For #48424 For #49040 Change-Id: I999aba2a298f92432326d7ccbd87fe133a2e1a72 Reviewed-on: https://go-review.googlesource.com/c/go/+/357796 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
5a3d0f5a63
commit
3beab0cd71
@ -54,6 +54,14 @@ func NewInterfaceType(methods []*Func, embeddeds []Type) *Interface {
|
||||
return typ
|
||||
}
|
||||
|
||||
// MarkImplicit marks the interface t as implicit, meaning this interface
|
||||
// corresponds to a constraint literal such as ~T or A|B without explicit
|
||||
// interface embedding. MarkImplicit should be called before any concurrent use
|
||||
// of implicit interfaces.
|
||||
func (t *Interface) MarkImplicit() {
|
||||
t.implicit = true
|
||||
}
|
||||
|
||||
// NumExplicitMethods returns the number of explicitly declared methods of interface t.
|
||||
func (t *Interface) NumExplicitMethods() int { return len(t.methods) }
|
||||
|
||||
|
@ -73,6 +73,14 @@ func NewInterfaceType(methods []*Func, embeddeds []Type) *Interface {
|
||||
return typ
|
||||
}
|
||||
|
||||
// MarkImplicit marks the interface t as implicit, meaning this interface
|
||||
// corresponds to a constraint literal such as ~T or A|B without explicit
|
||||
// interface embedding. MarkImplicit should be called before any concurrent use
|
||||
// of implicit interfaces.
|
||||
func (t *Interface) MarkImplicit() {
|
||||
t.implicit = true
|
||||
}
|
||||
|
||||
// NumExplicitMethods returns the number of explicitly declared methods of interface t.
|
||||
func (t *Interface) NumExplicitMethods() int { return len(t.methods) }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user