23 lines
604 B
Go
23 lines
604 B
Go
|
// Copyright 2018 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
//go:build !go1.11
|
||
|
// +build !go1.11
|
||
|
|
||
|
package gcimporter
|
||
|
|
||
|
import "go/types"
|
||
|
|
||
|
func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface {
|
||
|
named := make([]*types.Named, len(embeddeds))
|
||
|
for i, e := range embeddeds {
|
||
|
var ok bool
|
||
|
named[i], ok = e.(*types.Named)
|
||
|
if !ok {
|
||
|
panic("embedding of non-defined interfaces in interfaces is not supported before Go 1.11")
|
||
|
}
|
||
|
}
|
||
|
return types.NewInterface(methods, named)
|
||
|
}
|