/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue26094.go
49 строк
711 B
Ian Lance Taylor
runtime: don't say "different packages" if they may not be different
12 июл 2018, 00:34
12 июл 2018, 00:34
cda1947
Код
Авторство
О чём код?
// run // Copyright 2018 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. package main import "strings" var X interface{} type T struct{} func scopes() { p, ok := recover().(error) if ok && strings.Contains(p.Error(), "different scopes") { return } panic(p) } func F1() { type T struct{} X = T{} } func F2() { type T struct{} defer scopes() _ = X.(T) } func F3() { defer scopes() _ = X.(T) } func F4() { X = T{} } func main() { F1() // set X to F1's T F2() // check that X is not F2's T F3() // check that X is not package T F4() // set X to package T F2() // check that X is not F2's T }