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

Cannot parse type parameters on return interface typesΒ #666

Closed
@Fryuni

Description

@Fryuni

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions