Skip to content

crash on compilable code: assertion failed: Cannot emit primitive conversion from Lscala/Function0; to Ljava/lang/String; #1776

Closed
@helloqirun

Description

@helloqirun

scalac compiles but dotc crashes.

$ cat abc.scala

class X(val y: String)
class Y(y: => String) extends X(y)

$ dotc abc.scala

java.lang.AssertionError: assertion failed: Cannot emit primitive conversion from Lscala/Function0; to Ljava/lang/String;
	at scala.Predef$.assert(Predef.scala:165)
	at scala.tools.nsc.backend.jvm.BCodeIdiomatic$JCodeMethodN.emitT2T(BCodeIdiomatic.scala:255)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.adapt(BCodeBodyBuilder.scala:901)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:436)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder$$anonfun$genLoadArguments$1.apply(BCodeBodyBuilder.scala:1003)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder$$anonfun$genLoadArguments$1.apply(BCodeBodyBuilder.scala:1003)
	at scala.collection.immutable.List.foreach(List.scala:381)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1005)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:661)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:338)
	at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genStat(BCodeBodyBuilder.scala:90)
<snipped>

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions