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
--Error: main.scala:7:15------------------------------------------------------7| pdTypeMacro[outer.Inner]
|^^^^^^^^^^^^^^^^^^^^^^^^|Malformed tree was found while expanding macro with-Xcheck-macros.
|The tree does not conform to the compiler's tree invariants.
||Macrowas:
|scala.quoted.runtime.Expr.splice[scala.Unit](((contextual$1: scala.quoted.Quotes) ?=> macro$package.pdTypeMacroImpl[outer.Inner](contextual$1, scala.quoted.Type.of[outer.Inner](contextual$1))))
||The macro returned:
|{
|Outer.this.Inner| scala.Predef.???|}
||Error:|assertion failed: error while typing Outer.this, method main is not contained in classOuter||stacktrace available when compiling with`-Ydebug`|-----------------------------------------------------------------------------|Inline stack trace
|---------------------------------------|This location contains code that was inlined from macro.scala:33|inline defpdTypeMacro[T]:Unit=${ pdTypeMacroImpl[T] }
|^^^^^^^^^^^^^^^^^^^^^^^-----------------------------------------------------------------------------
Without:
exception while retyping Outer.this of classThis#-1An unhandled exception was thrown in the compiler.
Please file a crash report here:
https://github.com/scala/scala3/issues/new/choose
For non-enriched exceptions, compile with-Yno-enrich-error-messages.
whilecompiling: main.scala
during phase: MegaPhase{elimErasedValueType, pureStats, vcElideAllocations, etaReduce, arrayApply, elimPolyFunction, tailrec, completeJavaEnums, mixin, lazyVals, memoize, nonLocalReturns, capturedVars}
mode: Mode(ImplicitsEnabled)
library version: version 2.13.12
compiler version: version 3.4.2-RC1-bin-SNAPSHOT-nonbootstrapped-git-3694d95
settings: -classpath /Users/jchyb/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.12/scala-library-2.13.12.jar:/Users/jchyb/Documents/workspace/dotty/library/../out/bootstrap/scala3-library-bootstrapped/scala-3.4.2-RC1-bin-SNAPSHOT-nonbootstrapped/scala3-library_3-3.4.2-RC1-bin-SNAPSHOT.jar
Exception in thread "main"Exceptionwhile compiling macro.scala, main.scala
An unhandled exception was thrown in the compiler.
Please file a crash report here:
https://github.com/scala/scala3/issues/new/choose
For non-enriched exceptions, compile with-Yno-enrich-error-messages.
whilecompiling: <no file>
during phase: parser
mode: Mode()
library version: version 2.13.12
compiler version: version 3.4.2-RC1-bin-SNAPSHOT-nonbootstrapped-git-3694d95
settings: -classpath /Users/jchyb/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.12/scala-library-2.13.12.jar:/Users/jchyb/Documents/workspace/dotty/library/../out/bootstrap/scala3-library-bootstrapped/scala-3.4.2-RC1-bin-SNAPSHOT-nonbootstrapped/scala3-library_3-3.4.2-RC1-bin-SNAPSHOT.jar
java.lang.AssertionError: assertion failed: missing outer accessor in objectTest
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
at dotty.tools.dotc.transform.ExplicitOuter$.dotty$tools$dotc$transform$ExplicitOuter$$$outerParamAccessor(ExplicitOuter.scala:237)
at dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.loop$1(ExplicitOuter.scala:474)
at dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.path$extension(ExplicitOuter.scala:483)
at dotty.tools.dotc.transform.Erasure$Typer.typedThis(Erasure.scala:804)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3124)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3281)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:671)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3098)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3206)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:904)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3146)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3337)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3356)
at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1073)
at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1197)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1201)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3131)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:904)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3146)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:627)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3128)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3281)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:904)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3146)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3399)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1204)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3131)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3399)
at dotty.tools.dotc.typer.Typer.$anonfun$63(Typer.scala:2613)
at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:256)
at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2613)
at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:960)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3105)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3206)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3310)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3356)
at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1073)
at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2800)
at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1049)
at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3111)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3115)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3206)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3310)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3356)
at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1073)
at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2933)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3157)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3207)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:174)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3284)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3288)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3399)
at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:144)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:354)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:360)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:315)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:337)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:350)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:360)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:69)
at dotty.tools.dotc.Run.compileUnits(Run.scala:360)
at dotty.tools.dotc.Run.compileUnits(Run.scala:267)
at dotty.tools.dotc.Run.compileSuspendedUnits(Run.scala:371)
at dotty.tools.dotc.Driver.finish(Driver.scala:57)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
at dotty.tools.dotc.Driver.process(Driver.scala:196)
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:206)
at dotty.tools.dotc.Main.main(Main.scala)
## Expectation
This is not a high priority, as this is caught by `-Xcheck-macros` after all, but I would expect Symbols to represent more correct information about the types. As it is now, any path dependent types like `outer.Inner` effectively become Outer.this.Inner, which is incorrect.
The text was updated successfully, but these errors were encountered:
Compiler version
If you're not sure what version you're using, run
print scalaVersion
from sbt(if you're running scalac manually, use
scalac -version
instead).Minimized code
Macro.scala:
Main.scala:
Output
WIth
-Xcheck-macros
Without:
The text was updated successfully, but these errors were encountered: