go/test/fixedbugs/issue8183.go
Matthew Dempsky a1b5cb1d04 cmd/compile: simplify isGoConst
The only ways to construct an OLITERAL node are (1) a basic literal
from the source package, (2) constant folding within evconst (which
only folds Go language constants), (3) the universal "nil" constant,
and (4) implicit conversions of nil to some concrete type.

Passes toolstash-check.

Change-Id: I30fc6b07ebede7adbdfa4ed562436cbb7078a2ff
Reviewed-on: https://go-review.googlesource.com/c/go/+/166981
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
2019-03-13 18:24:02 +00:00

24 lines
497 B
Go

// errorcheck
// Copyright 2015 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.
// Tests correct reporting of line numbers for errors involving iota,
// Issue #8183.
package foo
const (
ok = byte(iota + 253)
bad
barn
bard // ERROR "constant 256 overflows byte"
)
const (
c = len([1 - iota]int{})
d
e // ERROR "array bound must be non-negative"
f // ERROR "array bound must be non-negative"
)