mirror of
https://github.com/golang/go
synced 2024-11-22 03:14:41 -07:00
387e7c2742
I haven't looked at the source, but the gc compiler appears to omit "not used" errors when there is an error in the initializer. This is harder to do in gccgo, and frankly I think the "not used" error is still useful even if the initializer has a problem. This CL tweaks some tests to avoid the error, which is not the point of these tests in any case. R=golang-dev, r CC=golang-dev https://golang.org/cl/5561059
70 lines
1.4 KiB
Go
70 lines
1.4 KiB
Go
// errchk $G -e $D/$F.go
|
|
|
|
// Copyright 2009 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.
|
|
|
|
package main
|
|
|
|
var m0 map[string]int
|
|
var m1 *map[string]int
|
|
var m2 *map[string]int = &m0
|
|
var m3 map[string]int = map[string]int{"a": 1}
|
|
var m4 *map[string]int = &m3
|
|
|
|
var s0 string
|
|
var s1 *string
|
|
var s2 *string = &s0
|
|
var s3 string = "a"
|
|
var s4 *string = &s3
|
|
|
|
var a0 [10]int
|
|
var a1 *[10]int
|
|
var a2 *[10]int = &a0
|
|
|
|
var b0 []int
|
|
var b1 *[]int
|
|
var b2 *[]int = &b0
|
|
var b3 []int = []int{1, 2, 3}
|
|
var b4 *[]int = &b3
|
|
|
|
func f() {
|
|
// this is spaced funny so that
|
|
// the compiler will print a different
|
|
// line number for each len call when
|
|
// it decides there are type errors.
|
|
x :=
|
|
len(m0)+
|
|
len(m1)+ // ERROR "illegal|invalid|must be"
|
|
len(m2)+ // ERROR "illegal|invalid|must be"
|
|
len(m3)+
|
|
len(m4)+ // ERROR "illegal|invalid|must be"
|
|
|
|
len(s0)+
|
|
len(s1)+ // ERROR "illegal|invalid|must be"
|
|
len(s2)+ // ERROR "illegal|invalid|must be"
|
|
len(s3)+
|
|
len(s4)+ // ERROR "illegal|invalid|must be"
|
|
|
|
len(a0)+
|
|
len(a1)+
|
|
len(a2)+
|
|
|
|
cap(a0)+
|
|
cap(a1)+
|
|
cap(a2)+
|
|
|
|
len(b0)+
|
|
len(b1)+ // ERROR "illegal|invalid|must be"
|
|
len(b2)+ // ERROR "illegal|invalid|must be"
|
|
len(b3)+
|
|
len(b4)+ // ERROR "illegal|invalid|must be"
|
|
|
|
cap(b0)+
|
|
cap(b1)+ // ERROR "illegal|invalid|must be"
|
|
cap(b2)+ // ERROR "illegal|invalid|must be"
|
|
cap(b3)+
|
|
cap(b4) // ERROR "illegal|invalid|must be"
|
|
_ = x
|
|
}
|