Skip to content
This repository has been archived by the owner on Jun 27, 2023. It is now read-only.

Cannot parse type parameters on return interface types #666

Closed
Fryuni opened this issue Jul 21, 2022 · 2 comments
Closed

Cannot parse type parameters on return interface types #666

Fryuni opened this issue Jul 21, 2022 · 2 comments

Comments

@Fryuni
Copy link

Fryuni commented Jul 21, 2022

Actual behavior A clear and concise description of what the bug is.
When the return of an interface includes another interface that uses one of the available type parameter the parsing fails with:

❯ mockgen -source=foo.go
2022/07/21 01:01:20 Loading input failed: foo.go:5:6: failed parsing returns: don't know how to parse type *ast.IndexExpr

This seems similar to #643, but that issue was using reflect mode.

Expected behavior A clear and concise description of what you expected to
happen.

The mock should be generated like any other generic interface, keeping the return type exactly as defined.

To Reproduce Steps to reproduce the behavior

Minimal reproduction
Save this file:

package bugTest

type (
	Foo[T any] interface {
		Bar() Bar[T]
	}
	Bar[T any] interface {
		Baz() T
	}
)

Run mockgen -source <path to file>

Additional Information

  • gomock mode (reflect or source): source
  • gomock version or git ref: v1.6.0
  • golang version: go version go1.19rc2 linux/amd64

Triage Notes for the Maintainers

@bradleygore
Copy link

I have a PR that aims to address this in source mode: #663

@codyoss
Copy link
Member

codyoss commented Aug 11, 2022

Closing as a dupe of #643

@codyoss codyoss closed this as completed Aug 11, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants