Source file src/cmd/compile/internal/inline/inlheur/actualexprpropbits_string.go

     1  // Code generated by "stringer -bitset -type ActualExprPropBits"; DO NOT EDIT.
     2  
     3  package inlheur
     4  
     5  import "strconv"
     6  import "bytes"
     7  
     8  func _() {
     9  	// An "invalid array index" compiler error signifies that the constant values have changed.
    10  	// Re-run the stringer command to generate them again.
    11  	var x [1]struct{}
    12  	_ = x[ActualExprConstant-1]
    13  	_ = x[ActualExprIsConcreteConvIface-2]
    14  	_ = x[ActualExprIsFunc-4]
    15  	_ = x[ActualExprIsInlinableFunc-8]
    16  }
    17  
    18  var _ActualExprPropBits_value = [...]uint64{
    19  	0x1, /* ActualExprConstant */
    20  	0x2, /* ActualExprIsConcreteConvIface */
    21  	0x4, /* ActualExprIsFunc */
    22  	0x8, /* ActualExprIsInlinableFunc */
    23  }
    24  
    25  const _ActualExprPropBits_name = "ActualExprConstantActualExprIsConcreteConvIfaceActualExprIsFuncActualExprIsInlinableFunc"
    26  
    27  var _ActualExprPropBits_index = [...]uint8{0, 18, 47, 63, 88}
    28  
    29  func (i ActualExprPropBits) String() string {
    30  	var b bytes.Buffer
    31  
    32  	remain := uint64(i)
    33  	seen := false
    34  
    35  	for k, v := range _ActualExprPropBits_value {
    36  		x := _ActualExprPropBits_name[_ActualExprPropBits_index[k]:_ActualExprPropBits_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 := _ActualExprPropBits_name[_ActualExprPropBits_index[k]:_ActualExprPropBits_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 "ActualExprPropBits(0x" + strconv.FormatInt(int64(i), 16) + ")"
    58  }
    59  

View as plain text