scala / bug

Scala 2 bug reports only. Please, no questions — proper bug reports only.
https://scala-lang.org
232 stars 21 forks source link

scala.reflect.internal.MissingRequirementError: object scala.runtime.AbstractFunction2 in compiler mirror not found. #7802

Closed scabug closed 11 years ago

scabug commented 11 years ago

Looks like sym.initialize can lead to a MissingRequirementError. Unfortunately, I don't have a reproducible test case, all I have is a stacktrace.

scala.reflect.internal.MissingRequirementError: object scala.runtime.AbstractFunction2 in compiler mirror not found.
at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16)
at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:61)
at scala.reflect.internal.Mirrors$RootsBase.getClassByName(Mirrors.scala:99)
at scala.reflect.internal.Mirrors$RootsBase.getRequiredClass(Mirrors.scala:102)
at scala.reflect.internal.Definitions$DefinitionsClass$$anonfun$1.apply(Definitions.scala:575)
at scala.reflect.internal.Definitions$DefinitionsClass$$anonfun$1.apply(Definitions.scala:575)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.Range.foreach(Range.scala:141)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.reflect.internal.Definitions$DefinitionsClass.mkArityArray(Definitions.scala:575)
at scala.reflect.internal.Definitions$DefinitionsClass.AbstractFunctionClass$lzycompute(Definitions.scala:590)
at scala.reflect.internal.Definitions$DefinitionsClass.AbstractFunctionClass(Definitions.scala:590)
at scala.reflect.internal.TreeGen.scalaFunctionConstr(TreeGen.scala:21)
at scala.tools.nsc.typechecker.Unapplies$class.createFun$1(Unapplies.scala:135)
at scala.tools.nsc.typechecker.Unapplies$class.parents$1(Unapplies.scala:136)
at scala.tools.nsc.typechecker.Unapplies$class.caseModuleDef(Unapplies.scala:145)
at scala.tools.nsc.Global$$anon$1.caseModuleDef(Global.scala:493)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$8.apply(Namers.scala:663)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$8.apply(Namers.scala:663)
at scala.tools.nsc.typechecker.Namers$Namer.ensureCompanionObject(Namers.scala:476)
at scala.tools.nsc.typechecker.Namers$Namer.enterClassDef(Namers.scala:663)
at scala.tools.nsc.typechecker.Namers$Namer.dispatch$1(Namers.scala:234)
at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:248)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:439)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:438)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:111)
at scala.collection.immutable.List.foldLeft(List.scala:84)
at scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:438)
at scala.tools.nsc.typechecker.Namers$Namer.templateSig(Namers.scala:884)
at scala.tools.nsc.typechecker.Namers$Namer.classSig(Namers.scala:928)
at scala.tools.nsc.typechecker.Namers$Namer.getSig$1(Namers.scala:1448)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1466)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply$mcV$sp(Namers.scala:731)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:730)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:730)
at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$logAndValidate(Namers.scala:1499)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:730)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:729)
at scala.tools.nsc.typechecker.Namers$$anon$1.completeImpl(Namers.scala:1614)
at scala.tools.nsc.typechecker.Namers$LockingTypeCompleter$class.complete(Namers.scala:1622)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1612)
at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1229)
at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1365)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$ClassOwner$class.addClass(ScalaStructureBuilder.scala:408)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$Builder.addClass(ScalaStructureBuilder.scala:875)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$TreeTraverser.traverse(ScalaStructureBuilder.scala:934)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$TreeTraverser$$anonfun$traverse$1.apply(ScalaStructureBuilder.scala:955)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$TreeTraverser$$anonfun$traverse$1.apply(ScalaStructureBuilder.scala:955)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$TreeTraverser.traverse(ScalaStructureBuilder.scala:955)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$TreeTraverser$$anonfun$traverse$1.apply(ScalaStructureBuilder.scala:955)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$TreeTraverser$$anonfun$traverse$1.apply(ScalaStructureBuilder.scala:955)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser$TreeTraverser.traverse(ScalaStructureBuilder.scala:955)
at scala.tools.eclipse.javaelements.ScalaStructureBuilder$StructureBuilderTraverser.traverse(ScalaStructureBuilder.scala:908)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$buildStructure$2$$anonfun$apply$5$$anonfun$apply$1.apply$mcV$sp(ScalaCompilationUnit.scala:112)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$buildStructure$2$$anonfun$apply$5$$anonfun$apply$1.apply(ScalaCompilationUnit.scala:111)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$buildStructure$2$$anonfun$apply$5$$anonfun$apply$1.apply(ScalaCompilationUnit.scala:111)
at scala.tools.nsc.util.InterruptReq.execute(InterruptReq.scala:26)
at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:339)
at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:22)
scabug commented 11 years ago

Imported From: https://issues.scala-lang.org/browse/SI-7802?orig=1 Reporter: @dotta

scabug commented 11 years ago

@retronym said: That suggests that scala-library.jar is not in the classpath of that compiler. That seems unlikely, but its the most direct interpretation of the error message. I don't think we can do much more with this without a test case.

scabug commented 11 years ago

@dotta said: The library was definitely there, but I can understand the stacktrace doesn't provide enough clues of what is happening. Will re-open it if I happen to gather more information. Thanks Jason for the quick turnaround.

scabug commented 11 years ago

@retronym said: It could be name table corruption, as we've tried to prevent in the just-merged: https://github.com/scala/scala/pull/2864

scabug commented 11 years ago

@dragos said (edited on Sep 2, 2013 12:52:27 PM UTC): I agree with Jason that name table corruption is the second most likely explanation :)