]> Cypherpunks.ru repositories - gostls13.git/commitdiff
update tests for CL 30586.
authorRuss Cox <rsc@golang.org>
Thu, 25 Jun 2009 21:44:09 +0000 (14:44 -0700)
committerRuss Cox <rsc@golang.org>
Thu, 25 Jun 2009 21:44:09 +0000 (14:44 -0700)
won't submit unless 30586 goes in.

R=r
DELTA=94  (65 added, 16 deleted, 13 changed)
OCL=30592
CL=30755

test/fixedbugs/bug022.go
test/fixedbugs/bug119.go
test/fixedbugs/bug143.go
test/indirect.go
test/indirect1.go [new file with mode: 0644]

index 229f879219547ef8ad6de59d04ab4c00aee7843d..6ea233d05db760b6790e1afe180612a1c4f198fb 100644 (file)
@@ -9,7 +9,7 @@ package main
 func putint(digits *string) {
        var i byte;
        i = (*digits)[7];  // compiles
-       i = digits[7];  // doesn't compile
+       i = digits[7];  // ERROR "illegal"
 }
 
 func main() {
@@ -21,5 +21,5 @@ func main() {
 bug022.go:8: illegal types for operand
        (*<string>*STRING) INDEXPTR (<int32>INT32)
 bug022.go:8: illegal types for operand
-       (<uint8>UINT8) AS 
+       (<uint8>UINT8) AS
 */
index 8e51ef2cecbe621c88b788daed38f352366e4486..c4ce80ce0492be97d958a4c08681444dc3539052 100644 (file)
@@ -12,7 +12,6 @@ func foo(a []int) int {
 
 func main() {
        a := &[]int{12};
-       if x := a[0]   ; x != 12 { panicln(1) }
        if x := (*a)[0]; x != 12 { panicln(2) }
        if x := foo(*a) ; x != 12 { panicln(3) }  // fails (x is incorrect)
 }
@@ -28,5 +27,5 @@ panic on line 83 PC=0x14d6
 0x52bb?zi
        mainstart(1, 0, 1606416432, ...)
        mainstart(0x1, 0x7fff5fbff830, 0x0, ...)
-uetli:~/Source/go1/test/bugs gri$ 
+uetli:~/Source/go1/test/bugs gri$
 */
index f6001376a100814eee6ea022d47b34f6f5bb746a..cb86310518d5d5c520a051aa86a7ab65f4cc889e 100644 (file)
@@ -8,9 +8,9 @@ package main
 
 type myMap map[string] int;
 
-func f() *myMap {
+func f() myMap {
        m := make(map[string] int);
-       return &m
+       return m
 }
 
 func main() {
@@ -23,9 +23,6 @@ func main() {
        {
                x, ok := (*mp)["key"]
        }
-       {
-               x, ok := mp["key"]
-       }
        {
                x, ok := f()["key"]
        }
index 4200d382aeab4a064523e8da08329a9c206be276..cbe3e0df2aaefccae50f409ca2fc275121efa1b7 100644 (file)
@@ -33,11 +33,7 @@ func crash()
        // these uses of nil pointers
        // would crash but should type check
        println("crash",
-               len(m1)+
-               len(s1)+
-               len(a1)+
-               len(b1)+
-               cap(b1));
+               len(a1) + cap(a1));
 }
 
 func nocrash()
@@ -49,19 +45,15 @@ func nocrash()
        // it might also help in the traceback.
        x :=
                len(m0)+
-               len(m2)+
-               len(m3)+
-               len(m4);
-       if x != 2 {
+               len(m3);
+       if x != 1 {
                panicln("wrong maplen");
        }
 
        x =
                len(s0)+
-               len(s2)+
-               len(s3)+
-               len(s4);
-       if x != 2 {
+               len(s3);
+       if x != 1 {
                panicln("wrong stringlen");
        }
 
@@ -74,19 +66,15 @@ func nocrash()
 
        x =
                len(b0)+
-               len(b2)+
-               len(b3)+
-               len(b4);
-       if x != 6 {
+               len(b3);
+       if x != 3 {
                panicln("wrong slicelen");
        }
 
        x =
                cap(b0)+
-               cap(b2)+
-               cap(b3)+
-               cap(b4);
-       if x != 6 {
+               cap(b3);
+       if x != 3 {
                panicln("wrong slicecap");
        }
 }
diff --git a/test/indirect1.go b/test/indirect1.go
new file mode 100644 (file)
index 0000000..b5df15d
--- /dev/null
@@ -0,0 +1,69 @@
+// 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"
+               len(m2)+        // ERROR "illegal"
+               len(m3)+
+               len(m4)+        // ERROR "illegal"
+
+               len(s0)+
+               len(s1)+        // ERROR "illegal"
+               len(s2)+        // ERROR "illegal"
+               len(s3)+
+               len(s4)+        // ERROR "illegal"
+
+               len(a0)+
+               len(a1)+
+               len(a2)+
+
+               cap(a0)+
+               cap(a1)+
+               cap(a2)+
+
+               len(b0)+
+               len(b1)+        // ERROR "illegal"
+               len(b2)+        // ERROR "illegal"
+               len(b3)+
+               len(b4)+        // ERROR "illegal"
+
+               cap(b0)+
+               cap(b1)+        // ERROR "illegal"
+               cap(b2)+        // ERROR "illegal"
+               cap(b3)+
+               cap(b4);        // ERROR "illegal"
+}