Skip to content

Commit

Permalink
Add tests to verify that crash is fixed elsewhere. Fixes scala#19328
Browse files Browse the repository at this point in the history
  • Loading branch information
raquo committed Dec 23, 2023
1 parent beaf7b4 commit 34f68f5
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 0 deletions.
4 changes: 4 additions & 0 deletions tests/neg/i19328.check
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- [E172] Type Error: tests/neg/i19328.scala:14:5 ----------------------------------------------------------------------
14 | bar // error: missing implicit (should not crash)
| ^
| No given instance of type Boolean was found for parameter bool of method bar in object i19328
14 changes: 14 additions & 0 deletions tests/neg/i19328.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import scala.language.implicitConversions

object i19328:

trait Foo[B]
given foo[C]: Foo[C] = new Foo[C] {}

type Id[A] = A

implicit def wrapId[A](a: A): Id[A] = a

def bar(using bool: Boolean): Unit = ()

bar // error: missing implicit (should not crash)
4 changes: 4 additions & 0 deletions tests/neg/i19328conversion.check
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- [E172] Type Error: tests/neg/i19328conversion.scala:13:5 ------------------------------------------------------------
13 | bar // error: missing implicit (should not crash)
| ^
| No given instance of type Boolean was found for parameter bool of method bar in object i19328conversion
13 changes: 13 additions & 0 deletions tests/neg/i19328conversion.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
object i19328conversion:

trait Foo[B]
given foo[C]: Foo[C] = new Foo[C] {}

type Id[A] = A

given wrapId[A]: Conversion[A, Id[A]] with
def apply(x: A): Id[A] = x

def bar(using bool: Boolean): Unit = ()

bar // error: missing implicit (should not crash)
16 changes: 16 additions & 0 deletions tests/pos/i19328.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import scala.language.implicitConversions

object i19328:

trait Foo[B]
given foo[C]: Foo[C] = new Foo[C] {}

type Id[A] = A

implicit def wrapId[A](a: A): Id[A] = a

def bar(using bool: Boolean): Unit = ()

given Boolean = true

bar
15 changes: 15 additions & 0 deletions tests/pos/i19328conversion.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
object i19328conversion:

trait Foo[B]
given foo[C]: Foo[C] = new Foo[C] {}

type Id[A] = A

given wrapId[A]: Conversion[A, Id[A]] with
def apply(x: A): Id[A] = x

def bar(using bool: Boolean): Unit = ()

given Boolean = true

bar

0 comments on commit 34f68f5

Please sign in to comment.