Skip to content

Internal error when compile generic case class with context function field #11350

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
romanowski opened this issue Feb 8, 2021 · 0 comments · Fixed by #11527
Closed

Internal error when compile generic case class with context function field #11350

romanowski opened this issue Feb 8, 2021 · 0 comments · Fixed by #11527
Assignees
Milestone

Comments

@romanowski
Copy link
Contributor

romanowski commented Feb 8, 2021

Compiler version

3.0.0-M4-bin-20210207-16bf86f-NIGHTLY as well as 3.0.0-M3.

Minimized code

case class A[T](action: A[T] ?=> String) // produces error below

class A1[T](action: A1[T] ?=> String) // works
case class A2[T](action: A2[?] ?=> String) // works
case class A3[T](action: A3[T] => String) // works as well

Output

[info] exception occurred while typechecking /home/krzysiek/workspace/PG/derivation_bugs/src/main/scala/crash.scala
[info] exception occurred while compiling /home/krzysiek/workspace/PG/derivation_bugs/src/main/scala/crash.scala
java.lang.Error: internal error: type of right-hand side (A[<?>]) ?=> String is not fully defined, pos = <13..39> while compiling /home/krzysiek/workspace/PG/derivation_bugs/src/main/scala/crash.scala
[error] ## Exception when compiling 2 sources to /home/krzysiek/workspace/PG/derivation_bugs/target/scala-3.0.0-M4/classes
[error] java.lang.Error: internal error: type of right-hand side (A[<?>]) ?=> String is not fully defined, pos = <13..39>
[error] dotty.tools.dotc.typer.Inferencing$.fullyDefinedType(Inferencing.scala:54)
[error] dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1459)
[error] dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1470)
[error] dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1479)
[error] dotty.tools.dotc.typer.Namer.defDefSig(Namer.scala:1562)
[error] dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:703)
[error] dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:830)
[error] dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:731)
[error] dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:167)
[error] dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:188)
[error] dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:190)
[error] dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:369)
[error] dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2519)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2544)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2638)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2704)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2708)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2730)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2780)
[error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2227)
[error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2565)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2569)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2638)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2704)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2708)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2730)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2780)
[error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2362)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2610)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2639)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2704)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2708)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2824)
[error] dotty.tools.dotc.typer.FrontEnd.liftedTree1$1(FrontEnd.scala:79)
[error] dotty.tools.dotc.typer.FrontEnd.typeCheck$$anonfun$1(FrontEnd.scala:84)
[error] dotty.tools.dotc.typer.FrontEnd.monitor(FrontEnd.scala:43)
[error] dotty.tools.dotc.typer.FrontEnd.typeCheck(FrontEnd.scala:85)
[error] dotty.tools.dotc.typer.FrontEnd.runOn$$anonfun$3(FrontEnd.scala:120)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:333)
[error] dotty.tools.dotc.typer.FrontEnd.runOn(FrontEnd.scala:120)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:189)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
[error] dotty.tools.dotc.Run.runPhases$5(Run.scala:199)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:207)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:214)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:150)
[error] dotty.tools.dotc.Run.compile(Run.scala:134)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
[error] dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
[error] dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:92)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:186)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:241)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:176)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:157)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:157)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:204)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:573)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:573)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:174)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:172)
[error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:459)
[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:261)
[error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:414)
[error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499)
[error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:401)
[error] sbt.internal.inc.Incremental$.apply(Incremental.scala:166)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:573)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:491)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2177)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2134)
[error] sbt.internal.io.Retry$.apply(Retry.scala:40)
[error] sbt.internal.io.Retry$.apply(Retry.scala:23)
[error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2130)
[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:265)
[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:748)

Expectation

A successful compilation or meaningful compilation error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants