Skip to content

Commit 656b7af

Browse files
Update check-files and error annotations
.. of tests explicitly checking implicits resolving to most specific
1 parent 46ff151 commit 656b7af

File tree

6 files changed

+32
-19
lines changed

6 files changed

+32
-19
lines changed

tests/neg/i2974.scala

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
trait Foo[-T]
3+
trait Bar[-T] extends Foo[T]
4+
5+
object Test {
6+
7+
locally:
8+
implicit val fa: Foo[Int] = ???
9+
implicit val ba: Bar[Int] = ???
10+
summon[Foo[Int]] // ok
11+
12+
locally:
13+
implicit val fa: Foo[Int] = ???
14+
implicit val ba: Bar[Any] = ???
15+
summon[Foo[Int]] // ok
16+
17+
locally:
18+
implicit val fa: Foo[Any] = ???
19+
implicit val ba: Bar[Int] = ???
20+
summon[Foo[Int]] // error: now ambiguous,
21+
// was resolving to `ba` when using intermediate rules:
22+
// better means specialize, but map all type arguments downwards
23+
24+
}

tests/pos/i2974.scala

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/run/enrich-gentraversable.check

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ List(2, 4)
44
HW
55
ArraySeq(72, 108, 108, 32, 114, 108, 100)
66
Map(bar -> 2)
7-
TreeMap(bar -> 2)
7+
Map(bar -> 2)
88
Map(bar -> 2)

tests/run/enrich-gentraversable.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ object Test extends App {
4747

4848
val tm = TreeMap(1 -> "foo", 2 -> "bar")
4949
val tmm = tm.filterMap { case (k, v) => if (k % 2 == 0) Some(v -> k) else None }
50-
typed[TreeMap[String, Int]](tmm)
50+
typed[Map[String, Int]](tmm) // was TreeMap, now Map,
51+
// since `BuildFrom` is covariant in `That` and `TreeMap[String, Int] <:< Map[String, Int]`
5152
println(tmm)
5253

5354
val mv = m.view

tests/run/implicits_poly.check

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
barFoo
1+
fooFoo

tests/warn/i15503a.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ object GivenImportOrderAtoB:
149149
object A { implicit val x: X = new X }
150150
object B { implicit val y: Y = new Y }
151151
class C {
152-
import A._ // warn
153-
import B._ // OK
152+
import A._ // OK
153+
import B._ // warn
154154
def t = implicitly[X]
155155
}
156156

@@ -160,8 +160,8 @@ object GivenImportOrderBtoA:
160160
object A { implicit val x: X = new X }
161161
object B { implicit val y: Y = new Y }
162162
class C {
163-
import B._ // OK
164-
import A._ // warn
163+
import B._ // warn
164+
import A._ // OK
165165
def t = implicitly[X]
166166
}
167167
/* END : tests on given import order */

0 commit comments

Comments
 (0)