Skip to content
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

Assertion in type checker fails #18729

Closed
sc8ing opened this issue Oct 19, 2023 · 2 comments
Closed

Assertion in type checker fails #18729

sc8ing opened this issue Oct 19, 2023 · 2 comments
Assignees
Labels
itype:bug itype:crash stat:needs minimization Needs a self contained minimization

Comments

@sc8ing
Copy link

sc8ing commented Oct 19, 2023

Compiler version

3.3.1 (Java 17.0.8.1, not sure if that matters)

Minimized code

// Dependencies loaded in ammonite, but fails when building outside the repl the same
import $ivy.`dev.zio::zio:2.0.10`, zio._ 
import $ivy.`dev.zio::zio-http:3.0.0-RC2`, zio.http._ 

Handler.fromFunctionZIO[Request](req => ZIO.succeed(Response.ok)).toHttpApp

Output (click arrow to expand)

Loading...
Welcome to the Ammonite Repl 3.0.0-M0-56-1bcbe7f6 (Scala 3.3.1 Java 17.0.8.1)
@ import $ivy.`dev.zio::zio:2.0.10`, zio._  
import $ivy.$                    , zio._ 

@ import $ivy.`dev.zio::zio-http:3.0.0-RC2`, zio.http._  
import $ivy.$                            , zio.http._ 

@ Handler.fromFunctionZIO[Request](req => ZIO.succeed(Response.ok)).toHttpApp 
java.lang.AssertionError: assertion failed while typechecking cmd2.sc
java.lang.AssertionError: assertion failed
  scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:11)
  dotty.tools.dotc.ast.tpd$.TypeApply(tpd.scala:60)
  dotty.tools.dotc.ast.tpd$TreeOps$.appliedToTypeTrees$extension(tpd.scala:985)
  dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:4255)
  dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3587)
  dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:497)
  dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897)
  dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897)
  dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:589)
  dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:653)
  dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:492)
  dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:779)
  dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:896)
  dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1126)
  dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:352)
  dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:116)
  dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:969)
  dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$2(Applications.scala:1052)
  dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3324)
  dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1063)
  dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1101)
  dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:352)
  dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:116)
  dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3048)
  dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3112)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3184)
  dotty.tools.dotc.typer.Implicits.tryConversion$1(Implicits.scala:1136)
  dotty.tools.dotc.typer.Implicits.typedImplicit(Implicits.scala:1167)
  dotty.tools.dotc.typer.Implicits.typedImplicit$(Implicits.scala:818)
  dotty.tools.dotc.typer.Typer.typedImplicit(Typer.scala:116)
  dotty.tools.dotc.typer.Implicits$ImplicitSearch.tryImplicit(Implicits.scala:1242)
  dotty.tools.dotc.typer.Implicits$ImplicitSearch.rank$1(Implicits.scala:1341)
  dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1511)
  dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1539)
  dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1547)
  dotty.tools.dotc.typer.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1572)
  dotty.tools.dotc.typer.Implicits.inferImplicit(Implicits.scala:1060)
  dotty.tools.dotc.typer.Implicits.inferImplicit$(Implicits.scala:818)
  dotty.tools.dotc.typer.Typer.inferImplicit(Typer.scala:116)
  dotty.tools.dotc.typer.Implicits.inferView(Implicits.scala:856)
  dotty.tools.dotc.typer.Implicits.inferView$(Implicits.scala:818)
  dotty.tools.dotc.typer.Typer.inferView(Typer.scala:116)
  dotty.tools.dotc.typer.Implicits.viewExists(Implicits.scala:831)
  dotty.tools.dotc.typer.Implicits.viewExists$(Implicits.scala:818)
  dotty.tools.dotc.typer.Typer.viewExists(Typer.scala:116)
  dotty.tools.dotc.typer.Implicits.ignoredConvertibleImplicits$1$$anonfun$3(Implicits.scala:960)
  scala.collection.Iterator$$anon$6.hasNext(Iterator.scala:479)
  scala.collection.Iterator.isEmpty(Iterator.scala:466)
  scala.collection.Iterator.isEmpty$(Iterator.scala:466)
  scala.collection.AbstractIterator.isEmpty(Iterator.scala:1300)
  scala.collection.View$Filter.isEmpty(View.scala:146)
  scala.collection.IterableOnceOps.nonEmpty(IterableOnce.scala:853)
  scala.collection.IterableOnceOps.nonEmpty$(IterableOnce.scala:853)
  scala.collection.AbstractIterable.nonEmpty(Iterable.scala:933)
  dotty.tools.dotc.reporting.MissingImplicitArgument.noChainConversionsNote$1(messages.scala:2838)
  dotty.tools.dotc.reporting.MissingImplicitArgument.msgPostscript$$anonfun$4(messages.scala:2846)
  scala.Option.orElse(Option.scala:477)
  dotty.tools.dotc.reporting.MissingImplicitArgument.msgPostscript(messages.scala:2846)
  dotty.tools.dotc.reporting.Message.message$$anonfun$1(Message.scala:345)
  dotty.tools.dotc.reporting.Message.inMessageContext(Message.scala:341)
  dotty.tools.dotc.reporting.Message.message(Message.scala:345)
  dotty.tools.dotc.reporting.Message.isNonSensical(Message.scala:322)
  dotty.tools.dotc.reporting.HideNonSensicalMessages.isHidden(HideNonSensicalMessages.scala:16)
  dotty.tools.dotc.reporting.HideNonSensicalMessages.isHidden$(HideNonSensicalMessages.scala:10)
  ammonite.compiler.Compiler$$anon$12.isHidden(Compiler.scala:477)
  dotty.tools.dotc.reporting.Reporter.issueUnconfigured(Reporter.scala:156)
  dotty.tools.dotc.reporting.Reporter.go$1(Reporter.scala:181)
  dotty.tools.dotc.reporting.Reporter.issueIfNotSuppressed(Reporter.scala:200)
  dotty.tools.dotc.reporting.Reporter.report(Reporter.scala:203)
  dotty.tools.dotc.reporting.StoreReporter.report(StoreReporter.scala:50)
  dotty.tools.dotc.report$.error(report.scala:68)
  dotty.tools.dotc.typer.Typer.issueErrors$1$$anonfun$1(Typer.scala:3808)
  scala.runtime.function.JProcedure3.apply(JProcedure3.java:15)
  scala.runtime.function.JProcedure3.apply(JProcedure3.java:10)
  scala.collection.LazyZip3.foreach(LazyZipOps.scala:248)
  dotty.tools.dotc.typer.Typer.issueErrors$1(Typer.scala:3810)
  dotty.tools.dotc.typer.Typer.addImplicitArgs$1(Typer.scala:3832)
  dotty.tools.dotc.typer.Typer.adaptNoArgsImplicitMethod$1(Typer.scala:3849)
  dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:4038)
  dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:4268)
  dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3587)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3184)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3188)
  dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3300)
  dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1653)
  dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1643)
  dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1653)
  dotty.tools.dotc.typer.Namer.typedAheadRhs$1$$anonfun$1(Namer.scala:1906)
  dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243)
  dotty.tools.dotc.typer.Namer.typedAheadRhs$1(Namer.scala:1906)
  dotty.tools.dotc.typer.Namer.rhsType$1(Namer.scala:1914)
  dotty.tools.dotc.typer.Namer.cookedRhsType$1(Namer.scala:1932)
  dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1933)
  dotty.tools.dotc.typer.Namer.inferredResultType(Namer.scala:1944)
  dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1691)
  dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1698)
  dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:787)
  dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:934)
  dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:814)
  dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:174)
  dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:187)
  dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:189)
  dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:393)
  dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2989)
  dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3014)
  dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3111)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3184)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3188)
  dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3210)
  dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3256)
  dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2669)
  dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3036)
  dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3040)
  dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3111)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3184)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3188)
  dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3210)
  dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3256)
  dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2812)
  dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3081)
  dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3112)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3184)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3188)
  dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3237)
  dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3256)
  dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2812)
  dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3081)
  dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3112)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3184)
  dotty.tools.dotc.typer.Typer.typed(Typer.scala:3188)
  dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3300)
  dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$1(TyperPhase.scala:44)
  dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$adapted$1(TyperPhase.scala:54)
  scala.Function0.apply$mcV$sp(Function0.scala:42)
  dotty.tools.dotc.core.Phases$Phase.monitor(Phases.scala:440)
  dotty.tools.dotc.typer.TyperPhase.typeCheck(TyperPhase.scala:54)
  dotty.tools.dotc.typer.TyperPhase.runOn$$anonfun$3(TyperPhase.scala:88)
  scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
  scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
  scala.collection.immutable.List.foreach(List.scala:333)
  dotty.tools.dotc.typer.TyperPhase.runOn(TyperPhase.scala:88)
  dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:246)
  scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
  scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
  scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
  dotty.tools.dotc.Run.runPhases$1(Run.scala:262)
  dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:270)
  dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:279)
  dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
  dotty.tools.dotc.Run.compileUnits(Run.scala:279)
  dotty.tools.dotc.Run.compileUnits(Run.scala:200)
  ammonite.compiler.Compiler.compile(Compiler.scala:233)
  ammonite.compiler.CompilerLifecycleManager.compileClass(CompilerLifecycleManager.scala:135)
  ammonite.interp.Interpreter.$anonfun$evaluateLine$2(Interpreter.scala:289)
  ammonite.util.Catching.flatMap(Res.scala:115)
  ammonite.interp.Interpreter.evaluateLine(Interpreter.scala:284)
  ammonite.interp.Interpreter.$anonfun$processLine$6(Interpreter.scala:272)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$processLine$4(Interpreter.scala:255)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$processLine$2(Interpreter.scala:248)
  ammonite.util.Catching.flatMap(Res.scala:115)
  ammonite.interp.Interpreter.processLine(Interpreter.scala:247)
  ammonite.repl.Repl.$anonfun$action$10(Repl.scala:206)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.repl.Repl.$anonfun$action$6(Repl.scala:193)
  ammonite.repl.Scoped.$anonfun$flatMap$1(Signaller.scala:45)
  ammonite.repl.Signaller.apply(Signaller.scala:28)
  ammonite.repl.Scoped.flatMap(Signaller.scala:45)
  ammonite.repl.Scoped.flatMap$(Signaller.scala:45)
  ammonite.repl.Signaller.flatMap(Signaller.scala:16)
  ammonite.repl.Repl.$anonfun$action$4(Repl.scala:185)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.repl.Repl.action(Repl.scala:175)
  ammonite.repl.Repl.loop$1(Repl.scala:219)
  ammonite.repl.Repl.run(Repl.scala:234)
  ammonite.Main.run(Main.scala:248)
  ammonite.MainRunner.$anonfun$runRepl$1(MainRunner.scala:72)
  ammonite.MainRunner.watchLoop(MainRunner.scala:53)
  ammonite.MainRunner.runRepl(MainRunner.scala:72)
  ammonite.AmmoniteMain$.main0(AmmoniteMain.scala:92)
  ammonite.AmmoniteMain$.main(AmmoniteMain.scala:31)
  ammonite.AmmoniteMain.main(AmmoniteMain.scala)
  jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  java.lang.reflect.Method.invoke(Method.java:568)
  coursier.bootstrap.launcher.a.a(Unknown Source)
  coursier.bootstrap.launcher.Launcher.main(Unknown Source)


@  
@sc8ing sc8ing added itype:bug itype:crash stat:needs triage Every issue needs to have an "area" and "itype" label labels Oct 19, 2023
@nicolasstucki nicolasstucki added the stat:needs minimization Needs a self contained minimization label Oct 20, 2023
@nicolasstucki
Copy link
Contributor

It is possible that this would be fixed by #18700

@nicolasstucki nicolasstucki removed the stat:needs triage Every issue needs to have an "area" and "itype" label label Oct 20, 2023
@dwijnand
Copy link
Member

Fixed in #18719

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
itype:bug itype:crash stat:needs minimization Needs a self contained minimization
Projects
None yet
Development

No branches or pull requests

3 participants