]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/simassign.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / simassign.go
index aeb988d7dbcefd27b55305eacf73d7f1db6637af..6ba5c783e96181503b589b246e01bf4ac3293d7c 100644 (file)
@@ -1,68 +1,79 @@
-// $G $F.go && $L $F.$A && ./$A.out
+// run
 
 // 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.
 
+// Test simultaneous assignment.
+
 package main
 
-var    a,b,c,d,e,f,g,h,i int;
+var a, b, c, d, e, f, g, h, i int
 
-func
-printit()
-{
-       print a,b,c,d,e,f,g,h,i,"\n";
+func printit() {
+       println(a, b, c, d, e, f, g, h, i)
 }
 
-func
-testit() bool
-{
+func testit(permuteok bool) bool {
        if a+b+c+d+e+f+g+h+i != 45 {
-               print "sum does not add to 45\n";
-               printit();
-               panic;
+               print("sum does not add to 45\n")
+               printit()
+               return false
        }
-       return  a == 1 &&
-               b == 2 &&
-               c == 3 &&
-               d == 4 &&
-               e == 5 &&
-               f == 6 &&
-               g == 7 &&
-               h == 8 &&
-               i == 9;
+       return permuteok ||
+               a == 1 &&
+                       b == 2 &&
+                       c == 3 &&
+                       d == 4 &&
+                       e == 5 &&
+                       f == 6 &&
+                       g == 7 &&
+                       h == 8 &&
+                       i == 9
+}
+
+func swap(x, y int) (u, v int) {
+       return y, x
 }
 
-func main()
-{
-       a = 1;
-       b = 2;
-       c = 3;
-       d = 4;
-       e = 5;
-       f = 6;
-       g = 7;
-       h = 8;
-       i = 9;
+func main() {
+       a = 1
+       b = 2
+       c = 3
+       d = 4
+       e = 5
+       f = 6
+       g = 7
+       h = 8
+       i = 9
 
-       if !testit() { panic "init val\n"; }
+       if !testit(false) {
+               panic("init val\n")
+       }
 
-       for z:=0; z<100; z++ {
-               a,b,c,d, e,f,g,h,i = b,c,d,a, i,e,f,g,h;
+       for z := 0; z < 100; z++ {
+               a, b, c, d, e, f, g, h, i = b, c, d, a, i, e, f, g, h
 
-               if testit() {
-                       if z == 19 {
-                               break;
-                       }
-                       print "on ", z, "th iteration\n";
-                       printit();
-                       panic;
+               if !testit(z%20 != 19) {
+                       print("on ", z, "th iteration\n")
+                       printit()
+                       panic("fail")
                }
        }
 
-       if !testit() {
-               print "final val\n";
-               printit();
-               panic;
+       if !testit(false) {
+               print("final val\n")
+               printit()
+               panic("fail")
+       }
+
+       a, b = swap(1, 2)
+       if a != 2 || b != 1 {
+               panic("bad swap")
+       }
+
+       a, b = swap(swap(a, b))
+       if a != 2 || b != 1 {
+               panic("bad swap")
        }
 }