object Test {
  def contains(s: String, i: Int) = true
  def test1 = {
    val f = contains("", (_: Int))
    val ff = contains("", ((_: Int)))
    val g: Int => Boolean = contains("", (_))
    val gg: Int => Boolean = contains("", ((_)))
    f.apply(0)
    //     sandbox/eta.scala:4: error: type mismatch:
    //  found   : Int => Int
    //  required: Int
    //     val f = contains("", (_: Int))
    //                          ^
    // sandbox/eta.scala:5: error: apply is not a member of Boolean(f)
    //     f.apply(0)
    //      ^
  }

  def test2 = {
    val f = "".contains("", (_: Int)) // dotc:
    f.apply(0)
    // sandbox/eta.scala:18: error: apply is not a member of Boolean(f)
    //     f.apply(0)
    //       ^
  }
}

object Test {
  def contains(s: String, i: Int) = true
  def test1 = {
    val f = contains("", (_: Int))
    val ff = contains("", ((_: Int)))
    f.apply(0)
    //     sandbox/eta.scala:4: error: type mismatch:
    //  found   : Int => Int
    //  required: Int
    //     val f = contains("", (_: Int))
    //                          ^
    // sandbox/eta.scala:5: error: apply is not a member of Boolean(f)
    //     f.apply(0)
    //      ^
  }

  def test2 = {
    val f = "".contains("", (_: Int)) // dotc:
    f.apply(0)
    // sandbox/eta.scala:18: error: apply is not a member of Boolean(f)
    //     f.apply(0)
    //       ^
  }
}

--- 
+++ 
@@ -3,6 +3,8 @@
   def test1 = {
     val f = contains("", (_: Int))
     val ff = contains("", ((_: Int)))
+    val g: Int => Boolean = contains("", (_))
+    val gg: Int => Boolean = contains("", ((_)))
     f.apply(0)
     //     sandbox/eta.scala:4: error: type mismatch:
     //  found   : Int => Int
Add tests for wildcards without types

As suggested by review.
