// Copyright 2023 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.

// Code generated by "stringer -type pstate"; DO NOT EDIT.

package inlheur

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[psNoInfo-0]
	_ = x[psCallsPanic-1]
	_ = x[psMayReturn-2]
	_ = x[psTop-3]
}

const _pstate_name = "psNoInfopsCallsPanicpsMayReturnpsTop"

var _pstate_index = [...]uint8{0, 8, 20, 31, 36}

func (i pstate) String() string {
	if i < 0 || i >= pstate(len(_pstate_index)-1) {
		return "pstate(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _pstate_name[_pstate_index[i]:_pstate_index[i+1]]
}
