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
classD[T]
classC {
deff() = {
locally {
givend[T] as D[T]
g[D[Int]](d[Int])
}
}
inlinedeflocally[T](inlinebody: T):T= body
defg[T](x: T):T= x
}
Output (click arrow to expand)
checking tests/pos/inlined-given.scala after phase typer
exception while typing this.g[D[Int]](d[Int]) of classclass dotty.tools.dotc.ast.Trees$Apply#-1
exception while typing {
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
} of classclass dotty.tools.dotc.ast.Trees$Block#-1
exception while typing {
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
} of classclass dotty.tools.dotc.ast.Trees$Inlined#-1
exception while typing {
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
}:D[Int] of classclass dotty.tools.dotc.ast.Trees$Typed#-1
exception while typing {
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
}:D[Int] of classclass dotty.tools.dotc.ast.Trees$Inlined#-1
exception while typing {
{
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
}:D[Int]
} of classclass dotty.tools.dotc.ast.Trees$Block#-1
exception while typing deff():D[Int] =
{
{
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
}:D[Int]
} of classclass dotty.tools.dotc.ast.Trees$DefDef#-1
exception while typing classC() extendsObject() {
deff():D[Int] =
{
{
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
}:D[Int]
}
inlinedeflocally[T>:Nothing<:Any](inlinebody: T):T= body:Tdefg[T>:Nothing<:Any](x: T):T= x
} of classclass dotty.tools.dotc.ast.Trees$TypeDef#-1
exception while typing package<empty> {
classD[T>:Nothing<:Any]() extendsObject() {
T
}
classC() extendsObject() {
deff():D[Int] =
{
{
classd[T>:Nothing<:Any]() extendsD[d.this.T]() {
T
}
finalgivendef d[T>:Nothing<:Any]: d[T] =new d[T]()
this.g[D[Int]](d[Int])
}:D[Int]
}
inlinedeflocally[T>:Nothing<:Any](inlinebody: T):T= body:Tdefg[T>:Nothing<:Any](x: T):T= x
}
} of classclass dotty.tools.dotc.ast.Trees$PackageDef#-1*** error while checking tests/pos/inlined-given.scala after phase typer ***
exception occurred while compiling tests/pos/inlined-given.scala
classdotty.tools.dotc.reporting.Diagnostic$StickyError at tests/pos/inlined-given.scala:<90..90>: bad parameter reference d.this.T at Ycheck
the parameter is typeT in classd but the prefix (d.this: d)
does not define any corresponding arguments. while compiling tests/pos/inlined-given.scala
Exception in thread "main"classdotty.tools.dotc.reporting.Diagnostic$StickyError at tests/pos/inlined-given.scala:<90..90>: bad parameter reference d.this.T at Ycheck
the parameter is typeT in classd but the prefix (d.this: d)
does not define any corresponding arguments.
at dotty.tools.dotc.report$.error(report.scala:71)
at dotty.tools.dotc.report$.error(report.scala:75)
at dotty.tools.dotc.typer.ErrorReporting$.errorType(ErrorReporting.scala:34)
at dotty.tools.dotc.typer.ErrorReporting$.errorTree(ErrorReporting.scala:26)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2523)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2708)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:903)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$2$$anonfun$1(TreeChecker.scala:503)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:199)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:503)
at dotty.tools.dotc.transform.TreeChecker$Checker.withBlock(TreeChecker.scala:227)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:503)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2467)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2520)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined$$anonfun$1(TreeChecker.scala:506)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:199)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined(TreeChecker.scala:506)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2480)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2520)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:60)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2464)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2520)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined$$anonfun$1(TreeChecker.scala:506)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:199)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined(TreeChecker.scala:506)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2480)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2520)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2708)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:903)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$2$$anonfun$1(TreeChecker.scala:503)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:199)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:503)
at dotty.tools.dotc.transform.TreeChecker$Checker.withBlock(TreeChecker.scala:227)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:503)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2467)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2520)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2708)
at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1982)
at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1982)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef$$anonfun$2$$anonfun$1(TreeChecker.scala:477)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:199)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef$$anonfun$1(TreeChecker.scala:480)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:199)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef(TreeChecker.scala:481)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2436)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2615)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2664)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:521)
at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2120)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedClassDef(TreeChecker.scala:453)
at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2447)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2451)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2615)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2664)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:521)
at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2245)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2491)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2520)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:333)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2589)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2593)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:317)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2708)
at dotty.tools.dotc.transform.TreeChecker.check(TreeChecker.scala:151)
at dotty.tools.dotc.transform.TreeChecker.run(TreeChecker.scala:120)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:296)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:297)
at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:185)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
at dotty.tools.dotc.Run.runPhases$5(Run.scala:195)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:203)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
at dotty.tools.dotc.Run.compileUnits(Run.scala:210)
at dotty.tools.dotc.Run.compileSources(Run.scala:147)
at dotty.tools.dotc.Run.compile(Run.scala:129)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
at dotty.tools.dotc.Driver.process(Driver.scala:195)
at dotty.tools.dotc.Driver.process(Driver.scala:164)
at dotty.tools.dotc.Driver.process(Driver.scala:176)
at dotty.tools.dotc.Driver.main(Driver.scala:203)
at dotty.tools.dotc.Main.main(Main.scala)
The text was updated successfully, but these errors were encountered:
#9965 is unfortunately really hard to fix. Essentially, we have to copy a symbol graph which in the case of emebedded classes can become quite complicated. We manage with monomorphic classes, but cannot handle type parameters or children annotations (there's another issue for that). Essentially, whereever we have hidden Symbol->Symbol references, we fail.
odersky
added a commit
to dotty-staging/dotty
that referenced
this issue
Dec 26, 2020
Minimized code
Output (click arrow to expand)
The text was updated successfully, but these errors were encountered: