mirror of
https://github.com/golang/go
synced 2024-11-15 00:20:30 -07:00
710f4d3e7e
Interface wrapper functions now get compiled eagerly in some cases. Consequently, they may be present in multiple translation units. Mark them as DUPOK, just like closures. Fixes #19548 Fixes #19550 Change-Id: Ibe74adb5a62dbf6447db37fde22dcbb3479969ef Reviewed-on: https://go-review.googlesource.com/38156 Reviewed-by: David Chase <drchase@google.com>
27 lines
516 B
Go
27 lines
516 B
Go
// 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.
|
|
|
|
package a
|
|
|
|
type Mode uint
|
|
|
|
func (m Mode) String() string { return "mode string" }
|
|
func (m *Mode) Addr() *Mode { return m }
|
|
|
|
type Stringer interface {
|
|
String() string
|
|
}
|
|
|
|
var global Stringer
|
|
var m Mode
|
|
|
|
func init() {
|
|
// force compilation of the (*Mode).String() wrapper
|
|
global = &m
|
|
}
|
|
|
|
func String() string {
|
|
return global.String() + Mode(0).String()
|
|
}
|