Skip to content

3.3.4: tail of empty list #22258

Open
Open
@He-Pin

Description

@He-Pin

Compiler version

3.3.4

Minimized code

When compile fastparse with 3.3.4 with scalanative

https://github.com/com-lihaoyi/fastparse/actions/runs/12442757230/job/34741213212?pr=324

Output

pythonparse.native[3.3.4].compile java.lang.UnsupportedOperationException: tail of empty list
    scala.collection.immutable.Nil$.tail(List.scala:665)
    scala.collection.immutable.Nil$.tail(List.scala:662)
    dotty.tools.dotc.core.Types$Type.findMember(Types.scala:932)
    dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:720)
    dotty.tools.dotc.core.Types$Type.member(Types.scala:704)
    dotty.tools.dotc.core.Denotations$Denotation.requiredMethod(Denotations.scala:316)
    scala.scalanative.nscplugin.NirDefinitions.CFuncPtr_apply$$anonfun$1(NirDefinitions.scala:69)
    scala.collection.immutable.Vector1.map(Vector.scala:2154)
    scala.collection.immutable.Vector1.map(Vector.scala:385)
    scala.scalanative.nscplugin.NirDefinitions.CFuncPtr_apply(NirDefinitions.scala:69)
    scala.scalanative.nscplugin.PostInlineNativeInterop.transformApply(PostInlineNativeInterop.scala:68)
    dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:675)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:291)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:319)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:321)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:259)
    dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:262)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:446)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:465)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:331)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:465)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:321)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:320)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:321)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:468)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:238)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:446)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:313)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:331)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.mapValDef$1(MegaPhase.scala:245)
    dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:250)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:446)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:465)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:331)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:331)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.mapValDef$1(MegaPhase.scala:245)
    dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:250)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:446)
    dotty.tools.dotc.transform.MegaPhase.loop$3(MegaPhase.scala:480)
    dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:480)
    dotty.tools.dotc.transform.MegaPhase.transformSpecificTrees(MegaPhase.scala:483)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:404)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:331)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:444)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:405)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:259)
    dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:262)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:446)
    dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:465)
    dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:470)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:309)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:259)
    dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:262)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:446)
    dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:459)
    dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:459)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:370)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:266)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:446)
    dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:459)
    dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:459)
    dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:390)
    dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:393)
    dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:448)
    dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:475)
    dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:487)
    dotty.tools.dotc.transform.MegaPhase$MiniPhase.run(MegaPhase.scala:136)
    dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:336)
    scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
    scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
    scala.collection.immutable.List.foreach(List.scala:334)
    dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:333)
    dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:315)
    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:308)
    dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:349)
    dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:358)
    dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:69)
    dotty.tools.dotc.Run.compileUnits(Run.scala:358)
    dotty.tools.dotc.Run.compileSources(Run.scala:261)
    dotty.tools.dotc.Run.compile(Run.scala:246)
    dotty.tools.dotc.Driver.doCompile(Driver.scala:37)
    dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:141)
    dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
    sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
    sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:196)
    scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
    sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:252)
    sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:186)
    sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:166)
    sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:241)
    sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:166)
    sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:214)
    sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:542)
    sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:542)
    sbt.internal.inc.Incremental$.$anonfun$apply$3(Incremental.scala:178)
    sbt.internal.inc.Incremental$.$anonfun$apply$3$adapted(Incremental.scala:176)
    sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:454)
    sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:117)
    sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
    sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
    sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:265)
    sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:409)
    sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:496)
    sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:396)
    sbt.internal.inc.Incremental$.apply(Incremental.scala:204)
    sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:542)
    sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:496)
    sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
    sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:433)
    sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
    mill.scalalib.worker.ZincWorkerImpl.compileInternal(ZincWorkerImpl.scala:630)
    mill.scalalib.worker.ZincWorkerImpl.$anonfun$compileMixed$1(ZincWorkerImpl.scala:392)
    mill.api.FixSizedCache.withCachedValue(FixSizedCache.scala:66)
    mill.scalalib.worker.ZincWorkerImpl.withCompilers(ZincWorkerImpl.scala:474)
    mill.scalalib.worker.ZincWorkerImpl.compileMixed(ZincWorkerImpl.scala:391)
    mill.scalalib.ScalaModule.$anonfun$compile$2(ScalaModule.scala:266)
    mill.define.Task$TraverseCtx.evaluate(Task.scala:215)

Expectation

Compiles OK

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions