]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: do not set ONAME type when evaluated in type context
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Thu, 4 Mar 2021 08:06:38 +0000 (15:06 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Fri, 5 Mar 2021 18:47:09 +0000 (18:47 +0000)
Updates #43311

Change-Id: I26e397d071b434256dab0cc7fff9d134b80bd6e3
Reviewed-on: https://go-review.googlesource.com/c/go/+/298711
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/typecheck/typecheck.go
test/fixedbugs/issue22389.go

index 548c1af85cd8c21f7e15b48089bc21cefea3b1a1..30632ac18b181f1ab412754e18d13eb10b6e5524 100644 (file)
@@ -446,7 +446,11 @@ func typecheck(n ir.Node, top int) (res ir.Node) {
        case top&(ctxType|ctxExpr) == ctxType && n.Op() != ir.OTYPE && n.Op() != ir.ONONAME && (t != nil || n.Op() == ir.ONAME):
                base.Errorf("%v is not a type", n)
                if t != nil {
-                       n.SetType(nil)
+                       if n.Op() == ir.ONAME {
+                               t.SetBroke(true)
+                       } else {
+                               n.SetType(nil)
+                       }
                }
 
        }
index 75dc28540358ac08541baccdd9d1ce1003ce2a9f..81e6d94e65d4321e1206b5c7f7254f7a10726644 100644 (file)
@@ -1,4 +1,4 @@
-// errorcheck
+// errorcheck -d=panic
 
 // Copyright 2017 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style