Source file test/abi/promoted_method_expr.dir/zmain.go

     1  // Copyright 2026 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package main
     6  
     7  import "./p"
     8  
     9  var fn0 = (*p.T0).NilCheck
    10  var fn1 = (*p.T1).NilCheck
    11  var valueFn0 = (*p.ValueT0).ValueNilCheck
    12  var valueFn1 = (*p.ValueT1).ValueNilCheck
    13  
    14  func main() {
    15  	test("offset zero", func() { fn0((*p.T0)(nil)) })
    16  	test("offset non-zero", func() { fn1((*p.T1)(nil)) })
    17  	test("value offset zero", func() { valueFn0((*p.ValueT0)(nil)) })
    18  	test("value offset non-zero", func() { valueFn1((*p.ValueT1)(nil)) })
    19  }
    20  
    21  func test(name string, call func()) {
    22  	p.Called = false
    23  	defer func() {
    24  		if recover() == nil {
    25  			panic(name + ": want panic")
    26  		}
    27  		if p.Called {
    28  			panic(name + ": called embedded method")
    29  		}
    30  	}()
    31  	call()
    32  }
    33  

View as plain text