Skip to content

SAMs for traits inheriting traits crash backend #511

Closed
@odersky

Description

@odersky

Look at disabled/simplesams.scala in #509

package test

trait X { def foo(x: Int): Int; def bar = foo(2) }
trait XX extends X

object test {
  val x: X = (x: Int) => 2  // should be a closure
  val xx: XX = (x: Int) => 2  // should be a closure, but blows up in backend
}

This crashes the backend with

java.lang.AssertionError: assertion failed: not a method-symbol: val
at scala.Predef$.assert(Predef.scala:165)
at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.asmMethodType(BCodeHelpers.scala:253)
at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.asmMethodType(BCodeSkelBuilder.scala:51)
at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genInvokeDynamicLambda(BCodeBodyBuilder.scala:1391)
at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:324)
at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genStat(BCodeBodyBuilder.scala:78)
at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder$$anonfun$genNormalBlock$1$1.apply(BCodeBodyBuilder.scala:847)
at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder$$anonfun$genNormalBlock$1$1.apply(BCodeBodyBuilder.scala:847)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalBlock$1(BCodeBodyBuilder.scala:847)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions