Open xuwei-k opened 1 year ago
scalaVersion: 2.12.17, 2.13.10, 2.13.11-M1, 2.13.11-bin-362a9f0-SNAPSHOT
full reproduce example repository is here
https://github.com/xuwei-k/value-class-private-companion-crash/commit/a00e275cbe8b2110dda4b8efb76ab4a09b196279
package p1 final class A(private val x1: String) extends AnyVal { def f: String = x1 + A.x2 } private object A { private val x2: String = "x2" } trait C { implicit def stringToA(s: String): A = new A(s) }
package p2 class C extends p1.C { def g = "a".f }
https://github.com/xuwei-k/value-class-private-companion-crash/actions/runs/4624877588/jobs/8180134576#step:4:24
[error] [error] EmptyScope.enter [error] while compiling: /home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a2/src/main/scala/B.scala [error] during phase: globalPhase=erasure, enteringPhase=posterasure [error] library version: version 2.13.10 [error] compiler version: version 2.13.10 [error] reconstructed args: -bootclasspath /opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/resources.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/rt.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/sunrsasign.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/jsse.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/jce.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/charsets.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/jfr.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/classes:/home/runner/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.10/scala-library-2.13.10.jar -classpath /home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a2/target/scala-2.13/classes:/home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a1/target/scala-2.13/classes [error] [error] last tree to typer: TypeTree(class String) [error] tree position: line 4 of /home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a2/src/main/scala/B.scala [error] tree tpe: String [error] symbol: final class String in package lang [error] symbol definition: final class String extends Serializable with Comparable with CharSequence (a ClassSymbol) [error] symbol package: java.lang [error] symbol owners: class String [error] call site: method g in class C in package p2 [error] [error] == Source file context for tree position == [error] [error] 1 package p2 [error] 2 [error] 3 class C extends p1.C { [error] 4 def g = "a".f [error] 5 } [error] 6 exception when typing p1.<A: error> exception when typing p1.<A: error>.f$extension exception when typing p1.<A: error>.f$extension(C.this.stringToA("a")) exception when typing def g(): String = p1.<A: error>.f$extension(C.this.stringToA("a")) exception when typing class C extends Object with p1.C { def <init>(): p2.C = { C.super.<init>(); () }; def g(): String = p1.<A: error>.f$extension(C.this.stringToA("a")) } exception when typing package p2 { class C extends Object with p1.C { def <init>(): p2.C = { C.super.<init>(); () }; def g(): String = p1.<A: error>.f$extension(C.this.stringToA("a")) } } [error] ## Exception when compiling 1 sources to /home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a2/target/scala-2.13/classes [error] scala.reflect.internal.FatalError: [error] EmptyScope.enter [error] while compiling: /home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a2/src/main/scala/B.scala [error] during phase: globalPhase=erasure, enteringPhase=posterasure [error] library version: version 2.13.10 [error] compiler version: version 2.13.10 [error] reconstructed args: -bootclasspath /opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/resources.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/rt.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/sunrsasign.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/jsse.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/jce.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/charsets.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/lib/jfr.jar:/opt/hostedtoolcache/Java_Corretto_jdk/8.362.08.1/x64/jre/classes:/home/runner/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.10/scala-library-2.13.10.jar -classpath /home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a2/target/scala-2.13/classes:/home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a1/target/scala-2.13/classes [error] [error] last tree to typer: TypeTree(class String) [error] tree position: line 4 of /home/runner/work/value-class-private-companion-crash/value-class-private-companion-crash/a2/src/main/scala/B.scala [error] tree tpe: String [error] symbol: final class String in package lang [error] symbol definition: final class String extends Serializable with Comparable with CharSequence (a ClassSymbol) [error] symbol package: java.lang [error] symbol owners: class String [error] call site: method g in class C in package p2 [error] [error] == Source file context for tree position == [error] [error] 1 package p2 [error] 2 [error] 3 class C extends p1.C { [error] 4 def g = "a".f [error] 5 } [error] 6 [error] scala.reflect.internal.Reporting.abort(Reporting.scala:69) [error] scala.reflect.internal.Reporting.abort$(Reporting.scala:65) [error] scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:28) [error] scala.reflect.internal.Scopes$EmptyScope$.enterEntry(Scopes.scala:550) [error] scala.reflect.internal.Scopes$Scope.enter(Scopes.scala:157) [error] scala.reflect.internal.Symbols$Symbol.setInfoAndEnter(Symbols.scala:1610) [error] scala.tools.nsc.typechecker.Implicits.memberWildcardType(Implicits.scala:349) [error] scala.tools.nsc.typechecker.Implicits.memberWildcardType$(Implicits.scala:343) [error] scala.tools.nsc.transform.Erasure.memberWildcardType(Erasure.scala:23) [error] scala.tools.nsc.typechecker.Implicits$HasMember$.$anonfun$apply$1(Implicits.scala:360) [error] scala.collection.mutable.HashMap.getOrElseUpdate(HashMap.scala:454) [error] scala.tools.nsc.typechecker.Implicits$HasMember$.apply(Implicits.scala:360) [error] scala.tools.nsc.typechecker.Typers$Typer.$anonfun$adaptToMemberWithArgs$6(Typers.scala:1384) [error] scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:712) [error] scala.tools.nsc.typechecker.Typers$Typer.adaptToMemberWithArgs(Typers.scala:1384) [error] scala.tools.nsc.typechecker.Typers$Typer.typedSelect$1(Typers.scala:5370) [error] scala.tools.nsc.typechecker.Typers$Typer.typedSelectOrSuperCall$1(Typers.scala:5417) [error] scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5992) [error] scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:821) [error] scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:6047) [error] scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:739) [error] scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:821) [error] scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:6047) [error] scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typed1$41(Typers.scala:5078) [error] scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:698) [error] scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:5080) [error] scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:5110) [error] scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5991) [error] scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:821) [error] scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:6047) [error] scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:6311) [error] scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5956) [error] scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:821) [error] scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:6047) [error] scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:6125) [error] scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3403) [error] scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3403) [error] scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:2057) [error] scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1895) [error] scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5957) [error] scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:821) [error] scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:6047) [error] scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:6125) [error] scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3403) [error] scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3403) [error] scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5640) [error] scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5960) [error] scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:821) [error] scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:6047) [error] scala.tools.nsc.transform.Erasure$ErasureTransformer.$anonfun$transform$2(Erasure.scala:1394) [error] scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:1394) [error] scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:182) [error] scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:32) [error] scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:467) [error] scala.tools.nsc.Global$GlobalPhase.run(Global.scala:414) [error] scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1530) [error] scala.tools.nsc.Global$Run.compileUnits(Global.scala:1514) [error] scala.tools.nsc.Global$Run.compileSources(Global.scala:1506) [error] scala.tools.nsc.Global$Run.compileFiles(Global.scala:1619) [error] xsbt.CachedCompiler0.run(CompilerBridge.scala:163) [error] xsbt.CachedCompiler0.run(CompilerBridge.scala:134) [error] xsbt.CompilerBridge.run(CompilerBridge.scala:39) [error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:193) [error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) [error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:[24](https://github.com/xuwei-k/value-class-private-companion-crash/actions/runs/4624877588/jobs/8180134576#step:4:25)8) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:183) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:163) [error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239) [error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:163) [error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:211) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:534) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:534) [error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:179) [error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:177) [error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:463) [error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116) [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56) [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52) [error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263) [error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:418) [error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:506) [error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:405) [error] sbt.internal.inc.Incremental$.apply(Incremental.scala:171) [error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:534) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:488) [error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332) [error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:4[25](https://github.com/xuwei-k/value-class-private-companion-crash/actions/runs/4624877588/jobs/8180134576#step:4:26)) [error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137) [error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2363) [error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2313) [error] sbt.internal.server.BspCompileTask$.$anonfun$compute$1(BspCompileTask.scala:30) [error] sbt.internal.io.Retry$.apply(Retry.scala:46) [error] sbt.internal.io.Retry$.apply(Retry.scala:28) [error] sbt.internal.io.Retry$.apply(Retry.scala:23) [error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:30) [error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2311) [error] scala.Function1.$anonfun$compose$1(Function1.scala:49) [error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62) [error] sbt.std.Transform$$anon$4.work(Transform.scala:68) [error] sbt.Execute.$anonfun$submit$2(Execute.scala:282) [error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23) [error] sbt.Execute.work(Execute.scala:291) [error] sbt.Execute.$anonfun$submit$1(Execute.scala:282) [error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:[26](https://github.com/xuwei-k/value-class-private-companion-crash/actions/runs/4624877588/jobs/8180134576#step:4:27)5) [error] sbt.CompletionService$$anon$2.call(CompletionService.scala:64) [error] java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [error] java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [error] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [error] java.lang.Thread.run(Thread.java:7[50](https://github.com/xuwei-k/value-class-private-companion-crash/actions/runs/4624877588/jobs/8180134576#step:4:51))
Reproduction steps
scalaVersion: 2.12.17, 2.13.10, 2.13.11-M1, 2.13.11-bin-362a9f0-SNAPSHOT
full reproduce example repository is here
https://github.com/xuwei-k/value-class-private-companion-crash/commit/a00e275cbe8b2110dda4b8efb76ab4a09b196279
Problem
https://github.com/xuwei-k/value-class-private-companion-crash/actions/runs/4624877588/jobs/8180134576#step:4:24