From e6ba19f9138dfaa981b281105fafabbf55250a18 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Fri, 6 Sep 2019 20:54:36 +0000 Subject: [PATCH] Revert "cmd/compile: improve errors for invalid conversions of consts" This reverts commit 2da9c3e0f99b72cf8f3bdca01b57e7a68a546c5b. Reason for revert: while the new error messages are more informative, they're not strictly correct. This CL also conflicts with CL 187657. Change-Id: I1c36cf7e86c2f35ee83a4f98918ee38aa1f59965 Reviewed-on: https://go-review.googlesource.com/c/go/+/193977 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/const.go | 10 ++-- test/fixedbugs/issue21979.go | 75 ---------------------------- 2 files changed, 3 insertions(+), 82 deletions(-) delete mode 100644 test/fixedbugs/issue21979.go diff --git a/src/cmd/compile/internal/gc/const.go b/src/cmd/compile/internal/gc/const.go index 569cab4390..c5b8d816c6 100644 --- a/src/cmd/compile/internal/gc/const.go +++ b/src/cmd/compile/internal/gc/const.go @@ -413,20 +413,16 @@ func convlit1(n *Node, t *types.Type, explicit bool, reuse canReuseNode) *Node { return n bad: - reportErr := false if !n.Diag() { - reportErr = !t.Broke() + if !t.Broke() { + yyerror("cannot convert %L to type %v", n, t) + } n.SetDiag(true) } if n.Type.IsUntyped() { n = defaultlitreuse(n, nil, reuse) } - - if reportErr { - yyerror("cannot convert %L to type %v", n, t) - } - return n } diff --git a/test/fixedbugs/issue21979.go b/test/fixedbugs/issue21979.go deleted file mode 100644 index ac7c88f195..0000000000 --- a/test/fixedbugs/issue21979.go +++ /dev/null @@ -1,75 +0,0 @@ -// errorcheck - -// Copyright 2019 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 - -func f() { - // old error: "(type untyped string)" - _ = bool("") // ERROR "cannot convert .. \(type string\) to type bool" - - // old error: "(type untyped number)" - _ = bool(1) // ERROR "cannot convert 1 \(type int\) to type bool" - - // old error: "(type untyped number)" - _ = bool(1.0) // ERROR "cannot convert 1 \(type float64\) to type bool" - - // old error: "(type untyped number)" - _ = bool(-4 + 2i) // ERROR "cannot convert -4 \+ 2i \(type complex128\) to type bool" - - // old error: "(type untyped bool)" - _ = string(true) // ERROR "cannot convert true \(type bool\) to type string" - - _ = string(-1) - - // old error: "(type untyped number)" - _ = string(1.0) // ERROR "cannot convert 1 \(type float64\) to type string" - - // old error: "(type untyped number)" - _ = string(-4 + 2i) // ERROR "cannot convert -4 \+ 2i \(type complex128\) to type string" - - // old error: "(type untyped string)" - _ = int("") // ERROR "cannot convert .. \(type string\) to type int" - - // old error: "(type untyped bool)" - _ = int(true) // ERROR "cannot convert true \(type bool\) to type int" - - _ = int(-1) - _ = int(1) - _ = int(1.0) - _ = int(-4 + 2i) // ERROR "truncated to integer" - - // old error: "(type untyped string)" - _ = uint("") // ERROR "cannot convert .. \(type string\) to type uint" - - // old error: "(type untyped bool)" - _ = uint(true) // ERROR "cannot convert true \(type bool\) to type uint" - - _ = uint(-1) // ERROR "constant -1 overflows uint" - _ = uint(1) - _ = uint(1.0) - _ = uint(-4 + 2i) // ERROR "constant -4 overflows uint" "truncated to integer" - - // old error: "(type untyped string)" - _ = float64("") // ERROR "cannot convert .. \(type string\) to type float64" - - // old error: "(type untyped bool)" - _ = float64(true) // ERROR "cannot convert true \(type bool\) to type float64" - - _ = float64(-1) - _ = float64(1) - _ = float64(1.0) - _ = float64(-4 + 2i) // ERROR "truncated to real" - - // old error: "(type untyped string)" - _ = complex128("") // ERROR "cannot convert .. \(type string\) to type complex128" - - // old error: "(type untyped bool)" - _ = complex128(true) // ERROR "cannot convert true \(type bool\) to type complex128" - - _ = complex128(-1) - _ = complex128(1) - _ = complex128(1.0) -} -- 2.50.0