/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue33724.go
45 строк
873 B
David Chase
cmd/compile: preserve statements in late nilcheckelim optimization
15 окт 2019, 19:43
15 окт 2019, 19:43
6adaf17
Код
Авторство
О чём код?
// run package main import ( "fmt" "runtime/debug" "strings" ) type Inner struct { Err int } func (i *Inner) NotExpectedInStackTrace() int { if i == nil { return 86 } return 17 + i.Err } type Outer struct { Inner } func ExpectedInStackTrace() { var o *Outer println(o.NotExpectedInStackTrace()) } func main() { defer func() { if r := recover(); r != nil { stacktrace := string(debug.Stack()) if strings.Contains(stacktrace, "NotExpectedInStackTrace") { fmt.Println("FAIL, stacktrace contains NotExpectedInStackTrace") } if !strings.Contains(stacktrace, "ExpectedInStackTrace") { fmt.Println("FAIL, stacktrace does not contain ExpectedInStackTrace") } } else { fmt.Println("FAIL, should have panicked but did not") } }() ExpectedInStackTrace() }