]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.unified] cmd/compile: set base.Pos when process assignDef in Unified IR
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Tue, 7 Jun 2022 02:22:32 +0000 (09:22 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Thu, 9 Jun 2022 01:34:36 +0000 (01:34 +0000)
CL 410343 changes Unified IR to visit LHS before RHS/X in assign/for
statement. Thus, it needs to set base.Pos before processing assignee
expression, so invalid type can be reported with correct position.

Updates #53058

Change-Id: Ic9f60cbf35c8bd71cb391e806396572c37811af7
Reviewed-on: https://go-review.googlesource.com/c/go/+/410794
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/cmd/compile/internal/noder/reader.go
test/run.go

index d050275f9eb48c552ecaaeb71c9930e94eec42bc..3cd6ec5668cbe5b6bba3471ea08f66ab14779b61 100644 (file)
@@ -1338,6 +1338,7 @@ func (r *reader) assign() (ir.Node, bool) {
 
        case assignDef:
                pos := r.pos()
+               setBasePos(pos)
                _, sym := r.localIdent()
                typ := r.typ()
 
index 8763660ea848f8c53d31b0caebba32af763b1e61..866654629e9186be869c1cf53aba8381797408c5 100644 (file)
@@ -1999,7 +1999,6 @@ var unifiedFailures = setOf(
 
        "fixedbugs/issue7921.go",  // prints "… escapes to heap", but test expects "string(…) escapes to heap"
        "typeparam/issue47631.go", // unified IR can handle local type declarations
-       "fixedbugs/issue49767.go", // unified IR reports channel element too large on different line than irgen
 )
 
 func setOf(keys ...string) map[string]bool {