package p
func F() {
switch t := nil.(type) {
default:
_ = t
}
}
# command-line-arguments
./prova.go:4: cannot type switch on non-interface value nil
./prova.go:4: internal compiler error: got nil for t
goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
/usr/local/go/src/runtime/debug/stack.go:24 +0x79
cmd/compile/internal/gc.Fatalf(0xaba22d, 0xd, 0xc420309a18, 0x2, 0x2)
/usr/local/go/src/cmd/compile/internal/gc/subr.go:167 +0x226
cmd/compile/internal/gc.typecheckdef(0xc420338f30, 0xc42001f560)
/usr/local/go/src/cmd/compile/internal/gc/typecheck.go:3781 +0x41a
cmd/compile/internal/gc.typecheck1(0xc420338f30, 0x22, 0x90)
/usr/local/go/src/cmd/compile/internal/gc/typecheck.go:266 +0xdd5b
cmd/compile/internal/gc.typecheck(0xc420338f30, 0x22, 0xc42030aab0)
/usr/local/go/src/cmd/compile/internal/gc/typecheck.go:188 +0x608
cmd/compile/internal/gc.typecheckswitch(0xc420338c60)
/usr/local/go/src/cmd/compile/internal/gc/swt.go:185 +0x2b8
cmd/compile/internal/gc.typecheck1(0xc420338c60, 0x1, 0x4)
/usr/local/go/src/cmd/compile/internal/gc/typecheck.go:2068 +0xc7a8
cmd/compile/internal/gc.typecheck(0xc420338c60, 0x1, 0x3)
/usr/local/go/src/cmd/compile/internal/gc/typecheck.go:188 +0x608
cmd/compile/internal/gc.typecheckslice(0xc42000c588, 0x1, 0x1, 0x1)
/usr/local/go/src/cmd/compile/internal/gc/typecheck.go:49 +0x4e
cmd/compile/internal/gc.Main()
/usr/local/go/src/cmd/compile/internal/gc/main.go:374 +0x1938
main.main()
/usr/local/go/src/cmd/compile/main.go:50 +0xfe
The following program:
crashes the go1.7.5, go1.8.1 and tip compilers with the following error: