title: Why does std::panic::Location::caller not return an Option?
body: <p>The definition of <a href="https://doc.rust-lang.org/std/panic/struct.Location.html#method.caller" rel="nofollow noreferrer"><code>Location::caller</code></a> states:</p>
  
  <blockquote>
    <pre class="lang-rust prettyprint-override"><code>pub fn caller() -&gt; &amp;'static Location&lt;'static&gt;`
  </code></pre>
    
    <p> This is a nightly-only experimental API. (<code>track_caller</code> <a href="https://github.com/rust-lang/rust/issues/47809" rel="nofollow noreferrer">#47809</a>)</p>
    
    <p>Returns the source location of the caller of this function. 
    If that function's caller is annotated then its call location 
    will be returned, and so on up the stack to the first call within a 
    non-tracked function body.</p>
  </blockquote>
  
  <p>That sounds to me like it should return <code>&amp;'static Option&lt;Location&lt;'static&gt;&gt;</code>.
  Anything else seems to make walking the call stack much harder than it could be. </p>
  
  <p>Is there a good reason for this decision?</p>