]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/closure2.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / closure2.go
index e4db05d8846cec75449a717e30fbbd9f8499a14d..081d2e2d3d178595cc60028722a6aec07c11ef46 100644 (file)
@@ -9,6 +9,8 @@
 
 package main
 
+var never bool
+
 func main() {
        {
                type X struct {
@@ -71,7 +73,8 @@ func main() {
 
        {
                var g func() int
-               for i := range [2]int{} {
+               var i int
+               for i = range [2]int{} {
                        if i == 0 {
                                g = func() int {
                                        return i // test that we capture by ref here, i is mutated on every interaction
@@ -115,4 +118,16 @@ func main() {
                        panic("g() != 2")
                }
        }
+
+       {
+               var g func() int
+               q := 0
+               q, g = 1, func() int { return q }
+               if never {
+                       g = func() int { return 2 }
+               }
+               if g() != 1 {
+                       panic("g() != 1")
+               }
+       }
 }