go/test/rename1.go
Robert Griesemer d93f02010c cmd/compile/internal/types2: only mark variables as used if they are
Marking variables in erroneous variable declarations as used is
convenient for tests but doesn't necessarily hide follow-on errors
in real code: either the variable is not supposed to be declared in
the first place and then we should get an error if it is not used,
or it is there because it is intended to be used, and the we expect
an error it if is not used.

This brings types2 closer to go/types.

Change-Id: If7ee1298fc770f7ad0cefe7e968533fd50ec2343
Reviewed-on: https://go-review.googlesource.com/c/go/+/486175
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
2023-04-19 14:07:00 +00:00

60 lines
1.1 KiB
Go

// errorcheck
// Copyright 2009 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.
// Verify that renamed identifiers no longer have their old meaning.
// Does not compile.
package main
func main() {
var n byte // ERROR "not a type|expected type"
var y = float32(0) // ERROR "cannot call|expected function"
const (
a = 1 + iota // ERROR "invalid operation|incompatible types|cannot convert"
)
_, _ = n, y
}
const (
append = 1
bool = 2
byte = 3
complex = 4
complex64 = 5
complex128 = 6
cap = 7
close = 8
delete = 9
error = 10
false = 11
float32 = 12
float64 = 13
imag = 14
int = 15
int8 = 16
int16 = 17
int32 = 18
int64 = 19
len = 20
make = 21
new = 22
nil = 23
panic = 24
print = 25
println = 26
real = 27
recover = 28
rune = 29
string = 30
true = 31
uint = 32
uint8 = 33
uint16 = 34
uint32 = 35
uint64 = 36
uintptr = 37
iota = "38"
)