title: Implicit conversion from a Set using `toSet` causing compile error, fine otherwise
body: <p>I have the following simple wrapper class and an implicit converter to automatically wrap values:</p>
  
  <pre><code>import scala.language.implicitConversions
  
  case class Wrap[T](t: T)
  
  implicit def autoWrap[T](t: T): Wrap[T] = Wrap(t)
  </code></pre>
  
  <p>This works fine mostly:</p>
  
  <pre><code>scala&gt; val w: Wrap[_] = 5
  w: Wrap[_] = Wrap(5)
  
  scala&gt; val w: Wrap[_] = Set(1,2,3)
  w: Wrap[_] = Wrap(Set(1, 2, 3))
  </code></pre>
  
  <p>Except for in this one instance:</p>
  
  <pre><code>scala&gt; val w: Wrap[_] = Seq(1,2,3).toSet
  &lt;console&gt;:15: error: polymorphic expression cannot be instantiated to expected type;
   found   : [B &gt;: Int]scala.collection.immutable.Set[B]
   required: Wrap[_]
         val w: Wrap[_] = Seq(1,2,3).toSet
                                 ^
  </code></pre>
  
  <p>If I assign the value first, it also works:</p>
  
  <pre><code>scala&gt; Seq(1,2,3).toSet
  res1: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
  
  scala&gt; val w: Wrap[_] = res1
  w: Wrap[_] = Wrap(Set(1, 2, 3))
  </code></pre>
  
  <p>What's going on here? </p>