github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/compile/ssa/testdata/pushback.go (about)

     1  package main
     2  
     3  type Node struct {
     4  	Circular bool
     5  }
     6  
     7  type ExtNode[V any] struct {
     8  	v V
     9  	Node
    10  }
    11  
    12  type List[V any] struct {
    13  	root *ExtNode[V]
    14  	len  int
    15  }
    16  
    17  func (list *List[V]) PushBack(arg V) {
    18  	if list.len == 0 {
    19  		list.root = &ExtNode[V]{v: arg}
    20  		list.root.Circular = true
    21  		list.len++
    22  		return
    23  	}
    24  	list.len++
    25  }
    26  
    27  func main() {
    28  	var v List[int]
    29  	v.PushBack(1)
    30  }