// Copyright 2019 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 A interface { M(i interface{}) interface{} } var a1 A var a2 A func V(p A, k, v interface{}) A { defer func() { a1, a2 = a2, a1 }() return a1 }