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){}
        }
}

----------------

> On Jun 18, 2020, at 2:17 PM, teivah....@gmail.com wrote:
> 
> Hello,
> 
> I didn't find in the latest draft design any mention of generics with closure 
> and I'm struggling in having something working:
> 
> type Foo(type T) struct {}
> 
> func bar(type T)() Foo(T) {
>    return func() Foo(T) {
>       return Foo(T){}
>    }()
> }
> 
> In this example, how can I create a closure that would return a Foo(T)?
> 
> Here is the playground: https://go2goplay.golang.org/p/N-b10vSCois
> 
> Cheers
> 
> -- 
> 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+unsubscr...@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.

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/9D3C56F5-713F-4177-82A0-27D012BA682B%40gmail.com.

Reply via email to