This has come up when different files in the same package import different packages that share a name.
Go has no problem with this:
import (
"fmt"
abc "fmt"
bcd "fmt"
)
func main() {
fmt.Println("A")
abc.Println("B")
bcd.Println("C")
}
So interfacegen should aim to preserve aliases, otherwise it will generate broken interfaces that don't compile.