| // run |
| |
| // Copyright 2013 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. |
| |
| // Issue 5607: generation of init() function incorrectly |
| // uses initializers of blank variables inside closures. |
| |
| package main |
| |
| var Test = func() { |
| var mymap = map[string]string{"a": "b"} |
| |
| var innerTest = func() { |
| // Used to crash trying to compile this line as |
| // part of init() (funcdepth mismatch). |
| var _, x = mymap["a"] |
| println(x) |
| } |
| innerTest() |
| } |
| |
| var Test2 = func() { |
| // The following initializer should not be part of init() |
| // The compiler used to generate a call to Panic() in init(). |
| var _, x = Panic() |
| _ = x |
| } |
| |
| func Panic() (int, int) { |
| panic("omg") |
| return 1, 2 |
| } |
| |
| func main() {} |