From fbee173545da4ecbdd80a59edcb93e6c4605241f Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Thu, 4 Mar 2021 22:27:41 +0700 Subject: cmd/compile: fix wrong condition in tcShift CL 279442 refactored typecheck arithmetic operators, but using wrong condition for checking invalid rhs. Updates #43311 Change-Id: I7a03a5535b82ac4ea4806725776b0a4f7af1b79a Reviewed-on: https://go-review.googlesource.com/c/go/+/298714 Trust: Cuong Manh Le Run-TryBot: Cuong Manh Le TryBot-Result: Go Bot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/typecheck/expr.go | 2 +- test/fixedbugs/bug297.go | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/cmd/compile/internal/typecheck/expr.go b/src/cmd/compile/internal/typecheck/expr.go index 339fb00aa4..10a4c1b1dc 100644 --- a/src/cmd/compile/internal/typecheck/expr.go +++ b/src/cmd/compile/internal/typecheck/expr.go @@ -48,7 +48,7 @@ func tcAddr(n *ir.AddrExpr) ir.Node { } func tcShift(n, l, r ir.Node) (ir.Node, ir.Node, *types.Type) { - if l.Type() == nil || l.Type() == nil { + if l.Type() == nil || r.Type() == nil { return l, r, nil } diff --git a/test/fixedbugs/bug297.go b/test/fixedbugs/bug297.go index c2bd253d05..70eb4ca9b2 100644 --- a/test/fixedbugs/bug297.go +++ b/test/fixedbugs/bug297.go @@ -1,4 +1,4 @@ -// errorcheck +// errorcheck -d=panic // Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style @@ -9,7 +9,8 @@ package main type ByteSize float64 + const ( - _ = iota; // ignore first value by assigning to blank identifier - KB ByteSize = 1<<(10*X) // ERROR "undefined" + _ = iota // ignore first value by assigning to blank identifier + KB ByteSize = 1 << (10 * X) // ERROR "undefined" ) -- cgit v1.2.3-54-g00ecf