/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/devirt.go
38 строк
574 B
Keith Randall
[dev.typeparams] cmd/compile: simplify interface conversions
09 авг 2021, 19:10
09 авг 2021, 19:10
57668b8
Код
Авторство
О чём код?
// errorcheck -0 -d=ssa/opt/debug=1 package main // Trivial interface call devirtualization test. type real struct { value int } func (r *real) Value() int { return r.value } type Valuer interface { Value() int } type indirectiface struct { a, b, c int } func (i indirectiface) Value() int { return i.a + i.b + i.c } func main() { var r Valuer rptr := &real{value: 3} r = rptr if r.Value() != 3 { // ERROR "de-virtualizing call$" panic("not 3") } r = indirectiface{3, 4, 5} if r.Value() != 12 { // ERROR "de-virtualizing call$" panic("not 12") } }