I think this probably gets a little closer to what you were going for, but there's a puzzling error that leads me to think the parser doesn't quite understand the instantiation in the return type:
https://go2goplay.golang.org/p/gcD609dr21E
----------------
type Foo(type T) struct {}
type FooFunc(type T) func() Foo(T)
func bar(type T)() FooFunc(T) {
return func() Foo(T) {
return Foo(T){}
}
}
----------------
Looks like someone else just posted that naming the return value is a workaround for this parser issue:
https://go2goplay.golang.org/p/0Kdfj81Ot3B
----------------
type Foo(type T) struct {}
type FooFunc(type T) func() Foo(T)
func bar(type T)() FooFunc(T) {
return func() (_ Foo(T)) {
return Foo(T){}
}
}
----------------
> --
> You received this message because you are subscribed to the Google Groups "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
golang-nuts...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/2083e7d6-95f4-4d34-b5c1-6f986d0d4c51o%40googlegroups.com.