mirror of https://github.com/golang/go.git
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/1219 Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Chris Manghane <cmang@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
85d09574fd
commit
77d7771a82
|
|
@ -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() {
|
||||||
}
|
}
|
||||||
|
|
||||||
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() {
|
||||||
}
|
}
|
||||||
|
|
||||||
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() {
|
||||||
}
|
}
|
||||||
|
|
||||||
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() {
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
// 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"
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue