coulomb icon indicating copy to clipboard operation
coulomb copied to clipboard

Compiler crash I can't localize

Open erikerlandson opened this issue 7 months ago • 0 comments

One example of a reproducer:

scala> import coulomb.*, coulomb.syntax.*, coulomb.conversion.*, coulomb.units.si.{*, given}, coulomb.units.si.prefixes.{*, given}, algebra.instances.all.given, coulomb.ops.algebra.all.given, coulomb.policy.standard.given, scala.language.implicitConversions

// works as expected
scala> summon[coulomb.ops.SimplifiedUnit[Meter ^ 2]]
val res0:
  coulomb.ops.SimplifiedUnit.NC[coulomb.units.si.Meter ^ 2,
    coulomb.units.si.Meter ^ 2] = coulomb.ops.SimplifiedUnit$NC@5fb1d61
                                     
// works as expected (converts type literal "2" to 2)                                                                                       
scala> summon[coulomb.ops.SimplifiedUnit[Meter ^ "2"]]
val res1:
  coulomb.ops.SimplifiedUnit.NC[coulomb.units.si.Meter ^ "2",
    coulomb.units.si.Meter ^ 2] = coulomb.ops.SimplifiedUnit$NC@cff51e5
                                                                                          
// this should be a type error but crashes the compiler:                                  
scala> summon[coulomb.ops.SimplifiedUnit[Meter ^ "x"]]
java.lang.AssertionError: assertion failed while typechecking rs$line$4
[error] java.lang.AssertionError: assertion failed
[error] 	at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:11)
[error] 	at dotty.tools.dotc.ast.tpd$.TypeApply(tpd.scala:60)
[error] 	at dotty.tools.dotc.ast.tpd$TreeOps$.appliedToTypeTrees$extension(tpd.scala:985)
[error] 	at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:4255)
...

erikerlandson avatar Nov 29 '23 00:11 erikerlandson