title: global error variable remains nil after initialization
body: <p>When I initialize an error variable globally it seems that it's nil to another function in the same package.<br>
  I don't understand why is this code not panicing?  </p>
  
  <pre><code>package main
  
  import (
      "os"
      "fmt"
  )
  
  var loadErr error
  
  func main() {
      f, loadErr := os.Open("asdasd")
      if loadErr != nil {
          checkErr()
      }
      if f != nil {
          fmt.Println(f.Name())
      }
  }
  
  // panic won't be called because loadErr is nil
  func checkErr() {
      if loadErr != nil {
          panic(loadErr)
      }
  }
  </code></pre>
  
  <p>But when I do this, it seems to work as expected?  </p>
  
  <pre><code>package main
  
  import (
      "os"
  )
  
  var loadErr error
  
  func main() {
      _, err := os.Open("asdasd")
      loadErr = err
      if loadErr != nil {
          checkErr()
      }
  }
  
  // panic will be called as expected
  func checkErr() {
      if loadErr != nil {
          panic(loadErr)
      }
  }
  </code></pre>