Skip to content
New issue

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

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

Already on GitHub? # to your account

go/types: assertion failed #11347

Closed
dvyukov opened this issue Jun 23, 2015 · 2 comments
Closed

go/types: assertion failed #11347

dvyukov opened this issue Jun 23, 2015 · 2 comments
Milestone

Comments

@dvyukov
Copy link
Member

dvyukov commented Jun 23, 2015

gotype crashes on the following program:

package a
var e,g,f g=0>0<<""[""[f]]>f
panic: assertion failed [recovered]
    panic: assertion failed [recovered]
    panic: assertion failed

goroutine 1 [running]:
main.checkPkgFiles.func2()
    src/golang.org/x/tools/cmd/gotype/gotype.go:212 +0x92
golang.org/x/tools/go/types.(*Checker).handleBailout(0xc8201021c0, 0xc820123d58)
    src/golang.org/x/tools/go/types/check.go:219 +0xd8
golang.org/x/tools/go/types.assert(0x63d300)
    src/golang.org/x/tools/go/types/errors.go:18 +0x6c
golang.org/x/tools/go/types.(*Checker).shift(0xc8201021c0, 0xc820010940, 0xc820010980, 0x14)
    src/golang.org/x/tools/go/types/expr.go:685 +0x6cf
golang.org/x/tools/go/types.(*Checker).binary(0xc8201021c0, 0xc820010940, 0x7fdbf004d8a8, 0xc82000aa80, 0x7fdbf004d8e0, 0xc820016c00, 0x14)
    src/golang.org/x/tools/go/types/expr.go:741 +0x136
golang.org/x/tools/go/types.(*Checker).exprInternal(0xc8201021c0, 0xc820010940, 0x7fdbf004d918, 0xc820016c30, 0x0, 0x0, 0x1)
    src/golang.org/x/tools/go/types/expr.go:1388 +0x2ef9
golang.org/x/tools/go/types.(*Checker).rawExpr(0xc8201021c0, 0xc820010940, 0x7fdbf004d918, 0xc820016c30, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/expr.go:914 +0x7d
golang.org/x/tools/go/types.(*Checker).expr(0xc8201021c0, 0xc820010940, 0x7fdbf004d918, 0xc820016c30)
    src/golang.org/x/tools/go/types/expr.go:1442 +0x63
golang.org/x/tools/go/types.(*Checker).binary(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d8a8, 0xc82000aa60, 0x7fdbf004d918, 0xc820016c30, 0x29)
    src/golang.org/x/tools/go/types/expr.go:729 +0xa6
golang.org/x/tools/go/types.(*Checker).exprInternal(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d918, 0xc820016c60, 0x0, 0x0, 0x7e)
    src/golang.org/x/tools/go/types/expr.go:1388 +0x2ef9
golang.org/x/tools/go/types.(*Checker).rawExpr(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d918, 0xc820016c60, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/expr.go:914 +0x7d
golang.org/x/tools/go/types.(*Checker).expr(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d918, 0xc820016c60)
    src/golang.org/x/tools/go/types/expr.go:1442 +0x63
golang.org/x/tools/go/types.(*Checker).binary(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d918, 0xc820016c60, 0x7fdbf004d870, 0xc82000ab20, 0x29)
    src/golang.org/x/tools/go/types/expr.go:728 +0x71
golang.org/x/tools/go/types.(*Checker).exprInternal(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d918, 0xc820016c90, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/expr.go:1388 +0x2ef9
golang.org/x/tools/go/types.(*Checker).rawExpr(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d918, 0xc820016c90, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/expr.go:914 +0x7d
golang.org/x/tools/go/types.(*Checker).expr(0xc8201021c0, 0xc8200108c0, 0x7fdbf004d918, 0xc820016c90)
    src/golang.org/x/tools/go/types/expr.go:1442 +0x63
golang.org/x/tools/go/types.(*Checker).initVars.func1(0xc8200108c0, 0x0)
    src/golang.org/x/tools/go/types/assignments.go:208 +0x72
golang.org/x/tools/go/types.unpack(0xc8201231a8, 0x1, 0x7ac400, 0x7fdbf004d318, 0x896440, 0x412099)
    src/golang.org/x/tools/go/types/call.go:139 +0x60
golang.org/x/tools/go/types.(*Checker).initVars(0xc8201021c0, 0xc82000ab60, 0x3, 0x3, 0xc82000ea30, 0x1, 0x1, 0x0)
    src/golang.org/x/tools/go/types/assignments.go:208 +0xcb
golang.org/x/tools/go/types.(*Checker).varDecl(0xc8201021c0, 0xc820015c20, 0xc82000ab60, 0x3, 0x3, 0x7fdbf004d870, 0xc82000aa40, 0x7fdbf004d918, 0xc820016c90)
    src/golang.org/x/tools/go/types/decl.go:177 +0x2df
golang.org/x/tools/go/types.(*Checker).objDecl(0xc8201021c0, 0x7fdbf004da28, 0xc820015c20, 0x0, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/decl.go:82 +0x483
golang.org/x/tools/go/types.(*Checker).ident(0xc8201021c0, 0xc820010840, 0xc82000aa40, 0x0, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/typexpr.go:37 +0x3a6
golang.org/x/tools/go/types.(*Checker).typExprInternal(0xc8201021c0, 0x7fdbf004d870, 0xc82000aa40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/typexpr.go:218 +0x150
golang.org/x/tools/go/types.(*Checker).typExpr(0xc8201021c0, 0x7fdbf004d870, 0xc82000aa40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    src/golang.org/x/tools/go/types/typexpr.go:133 +0x88
golang.org/x/tools/go/types.(*Checker).typ(0xc8201021c0, 0x7fdbf004d870, 0xc82000aa40, 0x0, 0x0)
    src/golang.org/x/tools/go/types/typexpr.go:141 +0x5b
golang.org/x/tools/go/types.(*Checker).varDecl(0xc8201021c0, 0xc820015bd0, 0xc82000ab60, 0x3, 0x3, 0x7fdbf004d870, 0xc82000aa40, 0x7fdbf004d918, 0xc820016c90)
    src/golang.org/x/tools/go/types/decl.go:144 +0x129
golang.org/x/tools/go/types.(*Checker).objDecl(0xc8201021c0, 0x7fdbf004da28, 0xc820015bd0, 0x0, 0xc820123c80, 0x0, 0x8)
    src/golang.org/x/tools/go/types/decl.go:82 +0x483
golang.org/x/tools/go/types.(*Checker).packageObjects(0xc8201021c0, 0xc820016db0, 0x3, 0x3)
    src/golang.org/x/tools/go/types/resolver.go:400 +0x22a
golang.org/x/tools/go/types.(*Checker).Files(0xc8201021c0, 0xc82006c060, 0x1, 0x1, 0x0, 0x0)
    src/golang.org/x/tools/go/types/check.go:231 +0xfc
golang.org/x/tools/go/types.(*Config).Check(0xc820010800, 0x71ed30, 0x3, 0xc820010780, 0xc82006c060, 0x1, 0x1, 0x0, 0x1, 0x0, ...)
    src/golang.org/x/tools/go/types/api.go:340 +0x248
main.checkPkgFiles(0xc82006c060, 0x1, 0x1)
    src/golang.org/x/tools/cmd/gotype/gotype.go:217 +0x204
main.main()
    src/golang.org/x/tools/cmd/gotype/gotype.go:254 +0x1d9

on commit e9a746d

@griesemer
Copy link
Contributor

Slightly simpler test case:

package p
var e, f = 0 > 0<<""[f]

@griesemer griesemer added this to the Unplanned milestone Jun 23, 2015
@gopherbot
Copy link
Contributor

CL https://golang.org/cl/12812 mentions this issue.

@griesemer griesemer modified the milestones: Go1.6, Unplanned Jul 31, 2015
@griesemer griesemer changed the title x/tools/go/types: assertion failed go/types: assertion failed Aug 7, 2015
@golang golang locked and limited conversation to collaborators Aug 22, 2016
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

No branches or pull requests

3 participants