// -lang=go1.12

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

package p

type resultFlags uint

// Example from #52031.
//
// The following shifts should not produce errors on Go < 1.13, as their
// untyped constant operands are representable by type uint.
const (
	_ resultFlags = (1 << iota) / 2

	reportEqual
	reportUnequal
	reportByIgnore
	reportByMethod
	reportByFunc
	reportByCycle
)

// Invalid cases.
var x int = 1
var _ = (8 << x /* ERRORx `signed shift count .* requires go1.13 or later` */)

const _ = (1 << 1.2 /* ERROR "truncated to uint" */)

var y float64
var _ = (1 << y /* ERROR "must be integer" */)
