Skip to content

Airframe surface: crash with a type inherited from a trait #3869

@OndrejSpanel

Description

@OndrejSpanel

Following code crashes the Scala 3.6.3 compiler when using "org.wvlet.airframe" %% "airframe-surface" % "2025.1.8":

import wvlet.airframe.surface.Surface

object MT extends MT

trait MT {
  case class B(min: Int = 0, max: Int = 0)
}

object Crash {
  val schema = Surface.of[MT.B]

  def main(args: Array[String]): Unit = {
    println(schema)
  }
}

The exception is:

scala: ## Exception when compiling 1 sources to C:\Dev\SurfaceCrash\target\scala-3.6.3\classes
java.lang.AssertionError: assertion failed: missing outer accessor in �[33mobject�[0m �[35mCrash�[0m
scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
dotty.tools.dotc.transform.ExplicitOuter$.dotty$tools$dotc$transform$ExplicitOuter$$$outerParamAccessor(ExplicitOuter.scala:236)
dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.loop$1(ExplicitOuter.scala:460)
dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.path$extension(ExplicitOuter.scala:469)
dotty.tools.dotc.transform.Erasure$Typer.typedThis(Erasure.scala:814)
dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3501)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions