Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[generics] doesn't handle name collision #39834

kovetskiy opened this issue Jun 24, 2020 · 2 comments

[generics] doesn't handle name collision #39834

kovetskiy opened this issue Jun 24, 2020 · 2 comments


Copy link

@kovetskiy kovetskiy commented Jun 24, 2020

go version devel +2dc2987ac87 Tue Jun 23 23:41:16 2020 +0000 linux/amd64


package main

import "bug/lib"

type Bug(type T) interface {
	Get() T

func MakeCollision(type T)(bug Bug(T)) {

func main() {
	impl := lib.NewBug(int)(1)


package lib

type Bug(type T) struct {
	x T

func NewBug(type T)(x T) Bug(T) {
	return Bug(T){x: x}

func (bug Bug(T)) Get() T {
	return bug.x

current result:

 > go tool go2go run a.go2
   # command-line-arguments
   ./a.go2:5: invalid composite literal type instantiate୦୦Bug୦int
   ./a.go2:10: instantiate୦୦Bug୦int redeclared in this block
        previous declaration at ./a.go2:11
   /usr/lib/go/bin/go [run a.go] failed: exit status 2
Copy link

@gopherbot gopherbot commented Jun 24, 2020

Change mentions this issue: [dev.go2go] go/go2go: include package in instantation of ident

Copy link

@ianlancetaylor ianlancetaylor commented Jun 24, 2020

Thanks. This is now fixed on the dev.go2go branch.

gopherbot pushed a commit that referenced this issue Jun 24, 2020
If an instantiated function from a different package uses a plain
identifier to instantiate a generic type or function, include the
package name in the generated identifier.

Fixes #39834

Change-Id: I4c786bac8972475e180cb41178520439343a36ea
Reviewed-by: Ian Lance Taylor <>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.