/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue16130.go
43 строки
948 B
Brad Fitzpatrick
all: make spelling consistent
09 дек 2016, 02:22
09 дек 2016, 02:22
4c4201f
Код
Авторство
О чём код?
// run // Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Test that an interface conversion error panics with an "interface // conversion" run-time error. It was (incorrectly) panicking with a // "nil pointer dereference." package main import ( "fmt" "runtime" "strings" ) type I interface { Get() int } func main() { defer func() { r := recover() if r == nil { panic("expected panic") } re, ok := r.(runtime.Error) if !ok { panic(fmt.Sprintf("got %T, expected runtime.Error", r)) } if !strings.Contains(re.Error(), "interface conversion") { panic(fmt.Sprintf("got %q, expected interface conversion error", re.Error())) } }() e := (interface{})(0) if _, ok := e.(I); ok { panic("unexpected interface conversion success") } fmt.Println(e.(I)) panic("unexpected interface conversion success") }