Commit 77d7771a authored by Chris Manghane's avatar Chris Manghane

cmd/internal/gc: omit non-explicit capacity in errors with map/chan make

Fixes #9083.

Change-Id: Ifbdebafb39a73a1dacf7e67171e8e88028d1f10b
Reviewed-on: https://go-review.googlesource.com/1219Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
Run-TryBot: Chris Manghane <cmang@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 85d09574
...@@ -1639,7 +1639,7 @@ func exprfmt(n *Node, prec int) string { ...@@ -1639,7 +1639,7 @@ func exprfmt(n *Node, prec int) string {
f += fmt.Sprintf("make(%v, %v, %v)", Tconv(n.Type, 0), Nconv(n.Left, 0), Nconv(n.Right, 0)) f += fmt.Sprintf("make(%v, %v, %v)", Tconv(n.Type, 0), Nconv(n.Left, 0), Nconv(n.Right, 0))
return f return f
} }
if n.Left != nil { if n.Left != nil && (n.Op == OMAKESLICE || !isideal(n.Left.Type)) {
var f string var f string
f += fmt.Sprintf("make(%v, %v)", Tconv(n.Type, 0), Nconv(n.Left, 0)) f += fmt.Sprintf("make(%v, %v)", Tconv(n.Type, 0), Nconv(n.Left, 0))
return f return f
......
...@@ -1753,7 +1753,7 @@ func slicerunetostring2() { ...@@ -1753,7 +1753,7 @@ func slicerunetostring2() {
} }
func makemap0() { func makemap0() {
m := make(map[int]int) // ERROR "make\(map\[int\]int\, 0\) does not escape" m := make(map[int]int) // ERROR "make\(map\[int\]int\) does not escape"
m[0] = 0 m[0] = 0
m[1]++ m[1]++
delete(m, 1) delete(m, 1)
...@@ -1761,10 +1761,10 @@ func makemap0() { ...@@ -1761,10 +1761,10 @@ func makemap0() {
} }
func makemap1() map[int]int { func makemap1() map[int]int {
return make(map[int]int) // ERROR "make\(map\[int\]int\, 0\) escapes to heap" return make(map[int]int) // ERROR "make\(map\[int\]int\) escapes to heap"
} }
func makemap2() { func makemap2() {
m := make(map[int]int) // ERROR "make\(map\[int\]int\, 0\) escapes to heap" m := make(map[int]int) // ERROR "make\(map\[int\]int\) escapes to heap"
sink = m sink = m
} }
...@@ -1753,7 +1753,7 @@ func slicerunetostring2() { ...@@ -1753,7 +1753,7 @@ func slicerunetostring2() {
} }
func makemap0() { func makemap0() {
m := make(map[int]int) // ERROR "make\(map\[int\]int\, 0\) does not escape" m := make(map[int]int) // ERROR "make\(map\[int\]int\) does not escape"
m[0] = 0 m[0] = 0
m[1]++ m[1]++
delete(m, 1) delete(m, 1)
...@@ -1761,10 +1761,10 @@ func makemap0() { ...@@ -1761,10 +1761,10 @@ func makemap0() {
} }
func makemap1() map[int]int { func makemap1() map[int]int {
return make(map[int]int) // ERROR "make\(map\[int\]int\, 0\) escapes to heap" return make(map[int]int) // ERROR "make\(map\[int\]int\) escapes to heap"
} }
func makemap2() { func makemap2() {
m := make(map[int]int) // ERROR "make\(map\[int\]int\, 0\) escapes to heap" m := make(map[int]int) // ERROR "make\(map\[int\]int\) escapes to heap"
sink = m sink = m
} }
// 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 9083: map/chan error messages show non-explicit capacity.
package main
// untyped constant
const zero = 0
func main() {
var x int
x = make(map[int]int) // ERROR "cannot use make\(map\[int\]int\)|incompatible"
x = make(map[int]int, 0) // ERROR "cannot use make\(map\[int\]int, 0\)|incompatible"
x = make(map[int]int, zero) // ERROR "cannot use make\(map\[int\]int, zero\)|incompatible"
x = make(chan int) // ERROR "cannot use make\(chan int\)|incompatible"
x = make(chan int, 0) // ERROR "cannot use make\(chan int, 0\)|incompatible"
x = make(chan int, zero) // ERROR "cannot use make\(chan int, zero\)|incompatible"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment