Skip to content

cmd/go2go: assertion failed in unifier.nify  #40038

@tdakkota

Description

@tdakkota

What version of Go are you using (go version)?

$ go version
go version devel +34f76220c3 Sat Jul 4 04:55:49 2020 +0000 windows/amd64

Does this issue reproduce with the latest release?

n/a

What operating system and processor architecture are you using (go env)?

  • Go2go playground
  • windows/amd64

What did you do?

https://go2goplay.golang.org/p/JXCEVdUcw-2

What did you expect to see?

Successful compilation or some error.
I don't know should or should't this example compile, but type checker should not panic.

What did you see instead?

Stack trace:

panic: assertion failed [recovered]
	panic: assertion failed

goroutine 1 [running]:
go/types.(*Checker).handleBailout(0xc0001046c0, 0xc000077be0)
	G:/workspace/exprm/go/src/go/types/check.go:251 +0x9f
panic(0x101ff20, 0x10b5700)
	G:/workspace/exprm/go/src/runtime/panic.go:969 +0x176
go/types.assert(...)
	G:/workspace/exprm/go/src/go/types/errors.go:19
go/types.(*unifier).nify(0xc000052780, 0x10c17a0, 0xc00003eba0, 0x10c1200, 0xc00007e2d0, 0x0, 0x0)
	G:/workspace/exprm/go/src/go/types/unify.go:368 +0x18e5
go/types.(*unifier).nify(0xc000052780, 0x10c15c0, 0xc00014e440, 0x10c15c0, 0xc00014ed00, 0x0, 0xf09093)
	G:/workspace/exprm/go/src/go/types/unify.go:261 +0xd07
go/types.(*unifier).nify(0xc000052780, 0x10c1340, 0xc00003eae0, 0x10c1340, 0xc00003f740, 0x0, 0xc000052780)
	G:/workspace/exprm/go/src/go/types/unify.go:278 +0xb3f
go/types.(*unifier).unify(0xc000052780, 0x10c1340, 0xc00003eae0, 0x10c1340, 0xc00003f740, 0xc00000a650)
	G:/workspace/exprm/go/src/go/types/unify.go:38 +0x65
go/types.(*Checker).missingMethod(0xc0001046c0, 0x10c1200, 0xc00007e2d0, 0xc00010a900, 0xc00014ec01, 0x10c10c0, 0xc00010a900)
	G:/workspace/exprm/go/src/go/types/lookup.go:418 +0x393
go/types.(*Checker).instantiate(0xc0001046c0, 0x306, 0x10c1340, 0xc00003f1a0, 0xc000153280, 0x4, 0x4, 0xc000010880, 0x4, 0x4, ...)
	G:/workspace/exprm/go/src/go/types/subst.go:165 +0x8b6
go/types.(*Checker).call(0xc0001046c0, 0xc000153140, 0xc00003d680, 0x1230e20)
	G:/workspace/exprm/go/src/go/types/call.go:116 +0x339
go/types.(*Checker).exprInternal(0xc0001046c0, 0xc000153140, 0x10bd540, 0xc00003d680, 0x0, 0x0, 0x10c12a0)
	G:/workspace/exprm/go/src/go/types/expr.go:1576 +0x1df0
go/types.(*Checker).rawExpr(0xc0001046c0, 0xc000153140, 0x10bd540, 0xc00003d680, 0x0, 0x0, 0x0)
	G:/workspace/exprm/go/src/go/types/expr.go:1033 +0xc7
go/types.(*Checker).exprOrType(0xc0001046c0, 0xc000153140, 0x10bd540, 0xc00003d680)
	G:/workspace/exprm/go/src/go/types/expr.go:1724 +0x5c
go/types.(*Checker).call(0xc0001046c0, 0xc000153140, 0xc00003d740, 0x230dcfab748)
	G:/workspace/exprm/go/src/go/types/call.go:17 +0x78
go/types.(*Checker).exprInternal(0xc0001046c0, 0xc000153140, 0x10bd540, 0xc00003d740, 0x0, 0x0, 0x38)
	G:/workspace/exprm/go/src/go/types/expr.go:1576 +0x1df0
go/types.(*Checker).rawExpr(0xc0001046c0, 0xc000153140, 0x10bd540, 0xc00003d740, 0x0, 0x0, 0x0)
	G:/workspace/exprm/go/src/go/types/expr.go:1033 +0xc7
go/types.(*Checker).stmt(0xc0001046c0, 0x0, 0x10bd7c0, 0xc000032e30)
	G:/workspace/exprm/go/src/go/types/stmt.go:330 +0x3e78
go/types.(*Checker).stmtList(0xc0001046c0, 0x0, 0xc000032e40, 0x1, 0x1)
	G:/workspace/exprm/go/src/go/types/stmt.go:125 +0xd6
go/types.(*Checker).funcBody(0xc0001046c0, 0xc00003e720, 0xc00000a6d8, 0x4, 0xc00003f440, 0xc000067e90, 0x0, 0x0)
	G:/workspace/exprm/go/src/go/types/stmt.go:42 +0x268
go/types.(*Checker).funcDecl.func1()
	G:/workspace/exprm/go/src/go/types/decl.go:792 +0x6e
go/types.(*Checker).processDelayed(0xc0001046c0, 0x0)
	G:/workspace/exprm/go/src/go/types/check.go:315 +0x45
go/types.(*Checker).checkFiles(0xc0001046c0, 0xc000077cb8, 0x1, 0x1, 0x0, 0x0)
	G:/workspace/exprm/go/src/go/types/check.go:283 +0x14d
go/types.(*Checker).Files(...)
	G:/workspace/exprm/go/src/go/types/check.go:256
go/types.(*Config).Check(0xc00003d780, 0xc00000a4d0, 0x4, 0xc00003c280, 0xc000077cb8, 0x1, 0x1, 0xc000041360, 0x0, 0xc000142000, ...)
	G:/workspace/exprm/go/src/go/types/api.go:387 +0x188
go/go2go.RewriteBuffer(0xc00003e2a0, 0xc00000e360, 0x26, 0xc000144000, 0x355, 0x555, 0x0, 0xc000066ba0, 0xc000066b70, 0xc000066b40, ...)
	G:/workspace/exprm/go/src/go/go2go/go2go.go:137 +0x25b
main.translateFile(0xc00003e2a0, 0xc00000e360, 0x26)
	G:/workspace/exprm/go/src/cmd/go2go/translate.go:26 +0xb0
main.main()
	G:/workspace/exprm/go/src/cmd/go2go/main.go:65 +0x30a

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions