github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/compile/inline/inlheur/funcpropbits_string.go (about)

     1  // Copyright 2023 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  // Code generated by "stringer -bitset -type FuncPropBits"; DO NOT EDIT.
     6  
     7  package inlheur
     8  
     9  import (
    10  	"bytes"
    11  	"strconv"
    12  )
    13  
    14  func _() {
    15  	// An "invalid array index" compiler error signifies that the constant values have changed.
    16  	// Re-run the stringer command to generate them again.
    17  	var x [1]struct{}
    18  	_ = x[FuncPropNeverReturns-1]
    19  }
    20  
    21  var _FuncPropBits_value = [...]uint64{
    22  	0x1, /* FuncPropNeverReturns */
    23  }
    24  
    25  const _FuncPropBits_name = "FuncPropNeverReturns"
    26  
    27  var _FuncPropBits_index = [...]uint8{0, 20}
    28  
    29  func (i FuncPropBits) String() string {
    30  	var b bytes.Buffer
    31  
    32  	remain := uint64(i)
    33  	seen := false
    34  
    35  	for k, v := range _FuncPropBits_value {
    36  		x := _FuncPropBits_name[_FuncPropBits_index[k]:_FuncPropBits_index[k+1]]
    37  		if v == 0 {
    38  			if i == 0 {
    39  				b.WriteString(x)
    40  				return b.String()
    41  			}
    42  			continue
    43  		}
    44  		if (v & remain) == v {
    45  			remain &^= v
    46  			x := _FuncPropBits_name[_FuncPropBits_index[k]:_FuncPropBits_index[k+1]]
    47  			if seen {
    48  				b.WriteString("|")
    49  			}
    50  			seen = true
    51  			b.WriteString(x)
    52  		}
    53  	}
    54  	if remain == 0 {
    55  		return b.String()
    56  	}
    57  	return "FuncPropBits(0x" + strconv.FormatInt(int64(i), 16) + ")"
    58  }