]> Cypherpunks.ru repositories - gostls13.git/blob - test/indirect1.go
update tests for CL 30586.
[gostls13.git] / test / indirect1.go
1 // errchk $G -e $D/$F.go
2
3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
6
7 package main
8
9 var m0 map[string]int
10 var m1 *map[string]int
11 var m2 *map[string]int = &m0
12 var m3 map[string]int = map[string]int{"a": 1}
13 var m4 *map[string]int = &m3
14
15 var s0 string
16 var s1 *string
17 var s2 *string = &s0
18 var s3 string = "a"
19 var s4 *string = &s3
20
21 var a0 [10]int
22 var a1 *[10]int
23 var a2 *[10]int = &a0
24
25 var b0 []int
26 var b1 *[]int
27 var b2 *[]int = &b0
28 var b3 []int = []int{1, 2, 3}
29 var b4 *[]int = &b3
30
31 func f()
32 {
33         // this is spaced funny so that
34         // the compiler will print a different
35         // line number for each len call when
36         // it decides there are type errors.
37         x :=
38                 len(m0)+
39                 len(m1)+        // ERROR "illegal"
40                 len(m2)+        // ERROR "illegal"
41                 len(m3)+
42                 len(m4)+        // ERROR "illegal"
43
44                 len(s0)+
45                 len(s1)+        // ERROR "illegal"
46                 len(s2)+        // ERROR "illegal"
47                 len(s3)+
48                 len(s4)+        // ERROR "illegal"
49
50                 len(a0)+
51                 len(a1)+
52                 len(a2)+
53
54                 cap(a0)+
55                 cap(a1)+
56                 cap(a2)+
57
58                 len(b0)+
59                 len(b1)+        // ERROR "illegal"
60                 len(b2)+        // ERROR "illegal"
61                 len(b3)+
62                 len(b4)+        // ERROR "illegal"
63
64                 cap(b0)+
65                 cap(b1)+        // ERROR "illegal"
66                 cap(b2)+        // ERROR "illegal"
67                 cap(b3)+
68                 cap(b4);        // ERROR "illegal"
69 }