title: tail recursion fails (possibly because of implicit cons conversion)
body: <p>I have what I believe to be a fairly simple tail-recursive function. However, <code>@tailrec</code> tells me otherwise.</p>
  
  <pre><code>  @tailrec
    def _next(continue : String, current : List[Long], first : Boolean ) : Stream[Long]  = {
      current match {
        case head :: tail =&gt; head #:: _next(continue, tail, false) //this line breaks tailrec
        case Nil if first =&gt; empty
        case _ =&gt; {
          val (nc, nl) = getIds(continue)
          _next(nc, nl, true)
        }
      }
    }
  </code></pre>
  
  <p>which presents me with</p>
  
  <pre><code>[error] could not optimize @tailrec annotated method _next: it contains a recursive call not in tail position
  [error]  case head :: tail =&gt; head #:: _next(continue, tail, false)
  [error]                                     ^
  </code></pre>
  
  <p>it probably has to do with the implicit notification I receive from eclipse: <code>- Implicit conversions found: _next(continue, tail, false) =&gt; consWrapper(_next(continue, tail, false))</code>, but unfortunately, that isn't helping me resolve the issue.</p>
  
  <p>How can I fix this, and, for brownie points, where did I go wrong thinking this would tail-recurse?</p>