mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/internal/gc: do not show computed value in type error
Fixes #9076. Change-Id: Ib41a452fa9aa9fecf19f65c36d13715923548041 Reviewed-on: https://go-review.googlesource.com/1250 Reviewed-by: Minux Ma <minux@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Chris Manghane <cmang@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
b59dd94f33
commit
c7e1453e3d
3 changed files with 21 additions and 6 deletions
|
|
@ -1261,16 +1261,16 @@ func exprfmt(n *Node, prec int) string {
|
||||||
return f
|
return f
|
||||||
|
|
||||||
case OLITERAL: // this is a bit of a mess
|
case OLITERAL: // this is a bit of a mess
|
||||||
|
if n.Orig != nil && n.Orig != n {
|
||||||
|
var f string
|
||||||
|
f += exprfmt(n.Orig, prec)
|
||||||
|
return f
|
||||||
|
}
|
||||||
if fmtmode == FErr && n.Sym != nil {
|
if fmtmode == FErr && n.Sym != nil {
|
||||||
var f string
|
var f string
|
||||||
f += fmt.Sprintf("%v", Sconv(n.Sym, 0))
|
f += fmt.Sprintf("%v", Sconv(n.Sym, 0))
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
if n.Val.Ctype == CTNIL && n.Orig != nil && n.Orig != n {
|
|
||||||
var f string
|
|
||||||
f += exprfmt(n.Orig, prec)
|
|
||||||
return f
|
|
||||||
}
|
|
||||||
if n.Type != nil && n.Type != Types[n.Type.Etype] && n.Type != idealbool && n.Type != idealstring {
|
if n.Type != nil && n.Type != Types[n.Type.Etype] && n.Type != idealbool && n.Type != idealstring {
|
||||||
// Need parens when type begins with what might
|
// Need parens when type begins with what might
|
||||||
// be misinterpreted as a unary operator: * or <-.
|
// be misinterpreted as a unary operator: * or <-.
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,5 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
_ = string(-4 + 2i + 2) // ERROR "-4\+2i"
|
_ = string(-4 + 2i + 2) // ERROR "-4 \+ 2i"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
15
test/fixedbugs/issue9076.go
Normal file
15
test/fixedbugs/issue9076.go
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
// errorcheck
|
||||||
|
|
||||||
|
// Copyright 2014 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.
|
||||||
|
|
||||||
|
// Issue 9076: cmd/gc shows computed values in error messages instead of original expression.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "unsafe"
|
||||||
|
|
||||||
|
const Hundred = 100
|
||||||
|
var _ int32 = 100/unsafe.Sizeof(int(0)) + 1 // GC_ERROR "100 \/ unsafe.Sizeof\(int\(0\)\) \+ 1"
|
||||||
|
var _ int32 = Hundred/unsafe.Sizeof(int(0)) + 1 // GC_ERROR "Hundred \/ unsafe.Sizeof\(int\(0\)\) \+ 1"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue