You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
object test {
def f[a](x: a) = {
def print = (x)
class A {
{
class B { def h = print }
new B
}
}
}
}
$ dotc abc.scala
exception while transforming print() of class class dotty.tools.dotc.ast.Trees$Apply # 228
exception while transforming def h(): Object = print() of class class dotty.tools.dotc.ast.Trees$DefDef # 229
exception while transforming extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
} of class class dotty.tools.dotc.ast.Trees$Template # 253
exception while transforming private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
} of class class dotty.tools.dotc.ast.Trees$TypeDef # 254
exception while transforming {
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
} of class class dotty.tools.dotc.ast.Trees$Block # 255
exception while transforming {
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
} of class class dotty.tools.dotc.ast.Trees$Block # 264
exception while transforming def <init>(): Unit =
{
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
} of class class dotty.tools.dotc.ast.Trees$DefDef # 265
exception while transforming extends Object {
def <init>(): Unit =
{
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
}
} of class class dotty.tools.dotc.ast.Trees$Template # 266
exception while transforming private class A extends Object {
def <init>(): Unit =
{
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
}
} of class class dotty.tools.dotc.ast.Trees$TypeDef # 267
exception while transforming {
private def print(): Object = x
private class A extends Object {
def <init>(): Unit =
{
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
}
}
()
} of class class dotty.tools.dotc.ast.Trees$Block # 268
exception while transforming def f(x: Object): Unit =
{
private def print(): Object = x
private class A extends Object {
def <init>(): Unit =
{
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
}
}
()
} of class class dotty.tools.dotc.ast.Trees$DefDef # 269
exception while transforming extends Object {
def <init>(): Unit =
{
super()
()
}
def f(x: Object): Unit =
{
private def print(): Object = x
private class A extends Object {
def <init>(): Unit =
{
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
}
}
()
}
} of class class dotty.tools.dotc.ast.Trees$Template # 280
exception while transforming @scala.annotation.internal.SourceFile("abc.scala") final module class test$ extends Object {
def <init>(): Unit =
{
super()
()
}
def f(x: Object): Unit =
{
private def print(): Object = x
private class A extends Object {
def <init>(): Unit =
{
super()
{
private class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
}
}
()
}
} of class class dotty.tools.dotc.ast.Trees$TypeDef # 281
exception while transforming package <empty> {
final lazy module val test: test$ = new test$()
@scala.annotation.internal.SourceFile("abc.scala") final module class test$ extends Object {
def <init>(): Unit =
{
super()
()
}
def f(x: Object): Unit =
{
def print(): Object = x
class A extends Object {
def <init>(): Unit =
{
super()
{
class B extends Object {
def <init>(): Unit =
{
super()
()
}
def h(): Object = print()
}
new B(): Object
}
()
}
}
()
}
}
} of class class dotty.tools.dotc.ast.Trees$PackageDef # 282
exception occurred while compiling abc.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: failure to construct path from method h/class B/class A/object test/package <empty>/package <root> to `this` of class A in object test;
class B in class A does not have an outer accessor
at scala.Predef$.assert(Predef.scala:165)
at dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.loop$1(ExplicitOuter.scala:337)
at dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.path$extension(ExplicitOuter.scala:343)
at dotty.tools.dotc.transform.LambdaLift$LambdaLifter.memberRef(LambdaLift.scala:446)
at dotty.tools.dotc.transform.LambdaLift$LambdaLifter.dotty$tools$dotc$transform$LambdaLift$LambdaLifter$$proxyRef(LambdaLift.scala:452)
at dotty.tools.dotc.transform.LambdaLift$LambdaLifter$$anonfun$addFreeArgs$1.apply(LambdaLift.scala:457)
at dotty.tools.dotc.transform.LambdaLift$LambdaLifter$$anonfun$addFreeArgs$1.apply(LambdaLift.scala:457)
at scala.collection.immutable.List.map(List.scala:273)
at dotty.tools.dotc.transform.LambdaLift$LambdaLifter.addFreeArgs(LambdaLift.scala:457)
at dotty.tools.dotc.transform.LambdaLift$LambdaLifter.transformApply(LambdaLift.scala:518)
at dotty.tools.dotc.transform.LambdaLift$LambdaLifter.transformApply(LambdaLift.scala:77)
<snipped>
The text was updated successfully, but these errors were encountered:
Uh oh!
There was an error while loading. Please reload this page.
scalac can compile it but dotc crashes.
$ cat abc.scala
$ dotc abc.scala
The text was updated successfully, but these errors were encountered: