Error in SymbolTable during override indicators
java.lang.Error: T2 in class CheckBoxField cannot be instantiated from se.hedefalk.util.mapper.CheckBoxField[M,O,K2,T2]
at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:35)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.throwError$1(Types.scala:3382)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.instParam$1(Types.scala:3385)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.toInstance$1(Types.scala:3397)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3413)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3282)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3107)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3103)
at scala.tools.nsc.symtab.Types$class.map2Conserve(Types.scala:4867)
at scala.tools.nsc.symtab.SymbolTable.map2Conserve(SymbolTable.scala:13)
at scala.tools.nsc.symtab.Types$TypeMap.mapOverArgs(Types.scala:3103)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3010)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3415)
at scala.tools.nsc.symtab.Types$Type.asSeenFrom(Types.scala:544)
at scala.tools.nsc.symtab.Types$TypeRef.transform(Types.scala:1701)
at scala.tools.nsc.symtab.Types$TypeRef.betaReduce(Types.scala:1798)
at scala.tools.nsc.symtab.Types$TypeRef.dealias(Types.scala:1809)
at scala.tools.nsc.typechecker.Infer$Inferencer.isImpossibleSubType(Infer.scala:376)
at scala.tools.nsc.typechecker.Infer$Inferencer.scala$tools$nsc$typechecker$Infer$Inferencer$$isPlausiblySubType(Infer.scala:374)
at scala.tools.nsc.typechecker.Infer$Inferencer$isPlausiblyCompatible$.resultTypeCheck(Infer.scala:356)
at scala.tools.nsc.typechecker.Infer$Inferencer$CompatibilityChecker.mtcheck(Infer.scala:334)
at scala.tools.nsc.typechecker.Infer$Inferencer$CompatibilityChecker.apply(Infer.scala:345)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.survives(Implicits.scala:618)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6$$anonfun$7.apply(Implicits.scala:648)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6$$anonfun$7.apply(Implicits.scala:648)
at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:213)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:212)
at scala.collection.immutable.List.filter(List.scala:45)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6.apply(Implicits.scala:648)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6.apply(Implicits.scala:647)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:200)
at scala.collection.immutable.List.flatMap(List.scala:45)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.<init>(Implicits.scala:647)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:753)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1084)
at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:57)
at scala.tools.nsc.Global$analyzer$.inferImplicit(Global.scala:347)
at scala.tools.nsc.typechecker.Typers$Typer.wrapImplicit$1(Typers.scala:167)
at scala.tools.nsc.typechecker.Typers$Typer.inferView(Typers.scala:171)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:908)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:709)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4222)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4279)
at scala.tools.nsc.typechecker.Typers$Typer.computeType(Typers.scala:4356)
at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:947)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1187)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:551)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:549)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1376)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1372)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:732)
at scala.tools.nsc.symtab.Symbols$Symbol.tpe(Symbols.scala:704)
at scala.tools.nsc.symtab.Symbols$Symbol.tpeHK(Symbols.scala:891)
at scala.tools.nsc.symtab.Types$Type.computeMemberType(Types.scala:569)
at scala.tools.nsc.symtab.Symbols$MethodSymbol.typeAsMemberOf(Symbols.scala:1867)
at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:564)
at scala.tools.nsc.symtab.Types$Type.findMember(Types.scala:907)
at scala.tools.nsc.symtab.Types$Type.member(Types.scala:500)
at scala.tools.nsc.typechecker.Typers$Typer.typedIdent$1(Typers.scala:3678)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4134)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4217)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4279)
at scala.tools.nsc.typechecker.Typers$Typer.computeType(Typers.scala:4356)
at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:947)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1187)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:551)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:549)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1376)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1372)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:732)
at scala.tools.nsc.symtab.Symbols$Symbol.tpe(Symbols.scala:704)
at scala.tools.nsc.symtab.Symbols$Symbol.tpeHK(Symbols.scala:891)
at scala.tools.nsc.symtab.Types$Type.computeMemberType(Types.scala:569)
at scala.tools.nsc.symtab.Symbols$MethodSymbol.typeAsMemberOf(Symbols.scala:1867)
at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:564)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$matchingSymbol$1.apply(Symbols.scala:1409)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$matchingSymbol$1.apply(Symbols.scala:1408)
at scala.tools.nsc.symtab.Symbols$Symbol.filter(Symbols.scala:1060)
at scala.tools.nsc.symtab.Symbols$Symbol.matchingSymbol(Symbols.scala:1408)
at scala.tools.nsc.symtab.Symbols$Symbol.overriddenSymbol(Symbols.scala:1421)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$allOverriddenSymbols$1.apply(Symbols.scala:1433)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$allOverriddenSymbols$1.apply(Symbols.scala:1433)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.immutable.List.map(List.scala:45)
at scala.tools.nsc.symtab.Symbols$Symbol.allOverriddenSymbols(Symbols.scala:1433)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:67)
at scala.tools.nsc.ast.Trees$Traverser$$anonfun$traverseStats$1.apply(Trees.scala:928)
at scala.tools.nsc.ast.Trees$Traverser$$anonfun$traverseStats$1.apply(Trees.scala:926)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.tools.nsc.ast.Trees$Traverser.traverseStats(Trees.scala:926)
at scala.tools.nsc.ast.Trees$Traverser.traverseStats(Trees.scala:905)
at scala.reflect.generic.Trees$Traverser.traverse(Trees.scala:491)
at scala.tools.nsc.ast.Trees$Traverser.traverse(Trees.scala:920)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:87)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverse$2.apply$mcV$sp(Trees.scala:464)
at scala.reflect.generic.Trees$Traverser.atOwner(Trees.scala:576)
at scala.reflect.generic.Trees$Traverser.traverse(Trees.scala:463)
at scala.tools.nsc.ast.Trees$Traverser.traverse(Trees.scala:920)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:87)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverseTrees$1.apply(Trees.scala:561)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverseTrees$1.apply(Trees.scala:561)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.reflect.generic.Trees$Traverser.traverseTrees(Trees.scala:561)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverse$1.apply$mcV$sp(Trees.scala:460)
at scala.reflect.generic.Trees$Traverser.atOwner(Trees.scala:576)
at scala.reflect.generic.Trees$Traverser.traverse(Trees.scala:459)
at scala.tools.nsc.ast.Trees$Traverser.traverse(Trees.scala:920)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:87)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$createOverrideIndicators$1$$anonfun$apply$7$$anonfun$apply$3.apply$mcV$sp(ScalaCompilationUnit.scala:145)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$createOverrideIndicators$1$$anonfun$apply$7$$anonfun$apply$3.apply(ScalaCompilationUnit.scala:144)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$createOverrideIndicators$1$$anonfun$apply$7$$anonfun$apply$3.apply(ScalaCompilationUnit.scala:144)
at scala.tools.nsc.util.InterruptReq.liftedTree1$1(InterruptReq.scala:20)
at scala.tools.nsc.util.InterruptReq.execute(InterruptReq.scala:19)
at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:305)
at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:22)
File:
package se.hedefalk.util.mapper
import net.liftweb._
import mapper._
import common._
import http._
import util._
class CheckBoxField[M <: ManyToMany, O <: Mapper[O], K2, T2 <: KeyedMapper[K2, T2]](label: String, m: M#MappedManyToMany[O, K2, T2], repr: T2 => String) extends BaseField {
type ValueType = Seq[T2]
def name = label
case class Wrapper(value: T2, label: String) {
override def toString = label
}
def wrap(values: Seq[T2]) = values.map(v => Wrapper(v, repr(v)))
def unwrap(all: Seq[Wrapper]) = all.map(w => w.value)
def toForm = {
val possible = wrap(validValues)
val actual = wrap(m.all)
val func = (selected: Seq[Wrapper]) => set(unwrap(selected))
Full(SHtml.checkbox(possible, actual, func).toForm)
}
def validate = Nil
def validations = Nil
def setFilter = Nil
def set(values: Seq[T2]) = {
m.clear()
m.appendAll(values)
values
}
def is = get
def get = {
m.all
}
// all values
def validValues = m.otherMeta.findAll()
}
at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:35)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.throwError$1(Types.scala:3382)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.instParam$1(Types.scala:3385)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.toInstance$1(Types.scala:3397)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3413)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3282)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3107)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3103)
at scala.tools.nsc.symtab.Types$class.map2Conserve(Types.scala:4867)
at scala.tools.nsc.symtab.SymbolTable.map2Conserve(SymbolTable.scala:13)
at scala.tools.nsc.symtab.Types$TypeMap.mapOverArgs(Types.scala:3103)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3010)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3415)
at scala.tools.nsc.symtab.Types$Type.asSeenFrom(Types.scala:544)
at scala.tools.nsc.symtab.Types$TypeRef.transform(Types.scala:1701)
at scala.tools.nsc.symtab.Types$TypeRef.betaReduce(Types.scala:1798)
at scala.tools.nsc.symtab.Types$TypeRef.dealias(Types.scala:1809)
at scala.tools.nsc.typechecker.Infer$Inferencer.isImpossibleSubType(Infer.scala:376)
at scala.tools.nsc.typechecker.Infer$Inferencer.scala$tools$nsc$typechecker$Infer$Inferencer$$isPlausiblySubType(Infer.scala:374)
at scala.tools.nsc.typechecker.Infer$Inferencer$isPlausiblyCompatible$.resultTypeCheck(Infer.scala:356)
at scala.tools.nsc.typechecker.Infer$Inferencer$CompatibilityChecker.mtcheck(Infer.scala:334)
at scala.tools.nsc.typechecker.Infer$Inferencer$CompatibilityChecker.apply(Infer.scala:345)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.survives(Implicits.scala:618)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6$$anonfun$7.apply(Implicits.scala:648)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6$$anonfun$7.apply(Implicits.scala:648)
at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:213)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:212)
at scala.collection.immutable.List.filter(List.scala:45)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6.apply(Implicits.scala:648)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$6.apply(Implicits.scala:647)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:200)
at scala.collection.immutable.List.flatMap(List.scala:45)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.<init>(Implicits.scala:647)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:753)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1084)
at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:57)
at scala.tools.nsc.Global$analyzer$.inferImplicit(Global.scala:347)
at scala.tools.nsc.typechecker.Typers$Typer.wrapImplicit$1(Typers.scala:167)
at scala.tools.nsc.typechecker.Typers$Typer.inferView(Typers.scala:171)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:908)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:709)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4222)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4279)
at scala.tools.nsc.typechecker.Typers$Typer.computeType(Typers.scala:4356)
at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:947)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1187)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:551)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:549)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1376)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1372)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:732)
at scala.tools.nsc.symtab.Symbols$Symbol.tpe(Symbols.scala:704)
at scala.tools.nsc.symtab.Symbols$Symbol.tpeHK(Symbols.scala:891)
at scala.tools.nsc.symtab.Types$Type.computeMemberType(Types.scala:569)
at scala.tools.nsc.symtab.Symbols$MethodSymbol.typeAsMemberOf(Symbols.scala:1867)
at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:564)
at scala.tools.nsc.symtab.Types$Type.findMember(Types.scala:907)
at scala.tools.nsc.symtab.Types$Type.member(Types.scala:500)
at scala.tools.nsc.typechecker.Typers$Typer.typedIdent$1(Typers.scala:3678)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4134)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4217)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4279)
at scala.tools.nsc.typechecker.Typers$Typer.computeType(Typers.scala:4356)
at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:947)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1187)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:551)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$typeCompleter$1.apply(Namers.scala:549)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1376)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1372)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:732)
at scala.tools.nsc.symtab.Symbols$Symbol.tpe(Symbols.scala:704)
at scala.tools.nsc.symtab.Symbols$Symbol.tpeHK(Symbols.scala:891)
at scala.tools.nsc.symtab.Types$Type.computeMemberType(Types.scala:569)
at scala.tools.nsc.symtab.Symbols$MethodSymbol.typeAsMemberOf(Symbols.scala:1867)
at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:564)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$matchingSymbol$1.apply(Symbols.scala:1409)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$matchingSymbol$1.apply(Symbols.scala:1408)
at scala.tools.nsc.symtab.Symbols$Symbol.filter(Symbols.scala:1060)
at scala.tools.nsc.symtab.Symbols$Symbol.matchingSymbol(Symbols.scala:1408)
at scala.tools.nsc.symtab.Symbols$Symbol.overriddenSymbol(Symbols.scala:1421)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$allOverriddenSymbols$1.apply(Symbols.scala:1433)
at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$allOverriddenSymbols$1.apply(Symbols.scala:1433)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.immutable.List.map(List.scala:45)
at scala.tools.nsc.symtab.Symbols$Symbol.allOverriddenSymbols(Symbols.scala:1433)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:67)
at scala.tools.nsc.ast.Trees$Traverser$$anonfun$traverseStats$1.apply(Trees.scala:928)
at scala.tools.nsc.ast.Trees$Traverser$$anonfun$traverseStats$1.apply(Trees.scala:926)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.tools.nsc.ast.Trees$Traverser.traverseStats(Trees.scala:926)
at scala.tools.nsc.ast.Trees$Traverser.traverseStats(Trees.scala:905)
at scala.reflect.generic.Trees$Traverser.traverse(Trees.scala:491)
at scala.tools.nsc.ast.Trees$Traverser.traverse(Trees.scala:920)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:87)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverse$2.apply$mcV$sp(Trees.scala:464)
at scala.reflect.generic.Trees$Traverser.atOwner(Trees.scala:576)
at scala.reflect.generic.Trees$Traverser.traverse(Trees.scala:463)
at scala.tools.nsc.ast.Trees$Traverser.traverse(Trees.scala:920)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:87)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverseTrees$1.apply(Trees.scala:561)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverseTrees$1.apply(Trees.scala:561)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.reflect.generic.Trees$Traverser.traverseTrees(Trees.scala:561)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverse$1.apply$mcV$sp(Trees.scala:460)
at scala.reflect.generic.Trees$Traverser.atOwner(Trees.scala:576)
at scala.reflect.generic.Trees$Traverser.traverse(Trees.scala:459)
at scala.tools.nsc.ast.Trees$Traverser.traverse(Trees.scala:920)
at scala.tools.eclipse.javaelements.ScalaOverrideIndicatorBuilder$OverrideIndicatorBuilderTraverser.traverse(ScalaOverrideIndicatorBuilder.scala:87)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$createOverrideIndicators$1$$anonfun$apply$7$$anonfun$apply$3.apply$mcV$sp(ScalaCompilationUnit.scala:145)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$createOverrideIndicators$1$$anonfun$apply$7$$anonfun$apply$3.apply(ScalaCompilationUnit.scala:144)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$createOverrideIndicators$1$$anonfun$apply$7$$anonfun$apply$3.apply(ScalaCompilationUnit.scala:144)
at scala.tools.nsc.util.InterruptReq.liftedTree1$1(InterruptReq.scala:20)
at scala.tools.nsc.util.InterruptReq.execute(InterruptReq.scala:19)
at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:305)
at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:22)
File:
package se.hedefalk.util.mapper
import net.liftweb._
import mapper._
import common._
import http._
import util._
class CheckBoxField[M <: ManyToMany, O <: Mapper[O], K2, T2 <: KeyedMapper[K2, T2]](label: String, m: M#MappedManyToMany[O, K2, T2], repr: T2 => String) extends BaseField {
type ValueType = Seq[T2]
def name = label
case class Wrapper(value: T2, label: String) {
override def toString = label
}
def wrap(values: Seq[T2]) = values.map(v => Wrapper(v, repr(v)))
def unwrap(all: Seq[Wrapper]) = all.map(w => w.value)
def toForm = {
val possible = wrap(validValues)
val actual = wrap(m.all)
val func = (selected: Seq[Wrapper]) => set(unwrap(selected))
Full(SHtml.checkbox(possible, actual, func).toForm)
}
def validate = Nil
def validations = Nil
def setFilter = Nil
def set(values: Seq[T2]) = {
m.clear()
m.appendAll(values)
values
}
def is = get
def get = {
m.all
}
// all values
def validValues = m.otherMeta.findAll()
}
Leave a comment
Martin, do you have a guess for this one?
This one looks quite similar:
java.lang.Error: A in trait MetaMapper cannot be instantiated from net.liftweb.mapper.MetaMapper[A]
at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:35)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.throwError$1(Types.scala:3382)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.instParam$1(Types.scala:3385)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.toInstance$1(Types.scala:3397)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3413)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3282)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$16.apply(Types.scala:3125)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$16.apply(Types.scala:3122)
at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:79)
at scala.collection.immutable.List.exists(List.scala:45)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3122)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3024)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3415)
at scala.tools.nsc.symtab.Types$Type.asSeenFrom(Types.scala:544)
at scala.tools.nsc.symtab.Types$Type.computeMemberType(Types.scala:573)
at scala.tools.nsc.symtab.Symbols$MethodSymbol.typeAsMemberOf(Symbols.scala:1867)
at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:564)
at scala.tools.nsc.symtab.Types$OverloadedType$$anonfun$safeToString$5.apply(Types.scala:2222)
at scala.tools.nsc.symtab.Types$OverloadedType$$anonfun$safeToString$5.apply(Types.scala:2222)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.immutable.List.map(List.scala:45)
at scala.tools.nsc.symtab.Types$OverloadedType.safeToString(Types.scala:2222)
at scala.reflect.generic.Types$AbsType.toString(Types.scala:27)
at scala.tools.nsc.ast.TreePrinters$TreePrinter.printRaw(TreePrinters.scala:420)
at scala.tools.nsc.ast.TreePrinters$TreePrinter.print(TreePrinters.scala:426)
at scala.reflect.generic.Trees$Tree.toString(Trees.scala:133)
at java.lang.String.valueOf(String.java:2826)
at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:185)
at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:287)
at scala.collection.Iterator$class.foreach(Iterator.scala:652)
at scala.Product$$anon$1.foreach(Product.scala:38)
at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:285)
at scala.Product$$anon$1.addString(Product.scala:38)
at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:263)
at scala.Product$$anon$1.mkString(Product.scala:38)
at scala.runtime.ScalaRunTime$._toString(ScalaRunTime.scala:159)
at scala.Left.toString(Either.scala:88)
at java.lang.String.valueOf(String.java:2826)
at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:185)
at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:287)
at scala.collection.Iterator$class.foreach(Iterator.scala:652)
at scala.Product$$anon$1.foreach(Product.scala:38)
at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:285)
at scala.Product$$anon$1.addString(Product.scala:38)
at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:263)
at scala.Product$$anon$1.mkString(Product.scala:38)
at scala.runtime.ScalaRunTime$._toString(ScalaRunTime.scala:159)
at scala.Either$LeftProjection.toString(Either.scala:120)
at java.util.Formatter$FormatSpecifier.printString(Formatter.java:2794)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2677)
at java.util.Formatter.format(Formatter.java:2433)
at java.util.Formatter.format(Formatter.java:2367)
at java.lang.String.format(String.java:2769)
at scala.collection.immutable.StringLike$class.format(StringLike.scala:270)
at scala.collection.immutable.StringOps.format(StringOps.scala:31)
at scala.tools.eclipse.ScalaHyperlinkDetector$$anonfun$scalaHyperlinks$1.apply(ScalaHyperlinkDetector.scala:77)
at scala.tools.eclipse.ScalaHyperlinkDetector$$anonfun$scalaHyperlinks$1.apply(ScalaHyperlinkDetector.scala:38)
at scala.tools.eclipse.ScalaPresentationCompiler.withSourceFile(ScalaPresentationCompiler.scala:66)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:457)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:456)
at scala.tools.eclipse.ScalaProject$$anonfun$withPresentationCompiler$1.apply(ScalaProject.scala:450)
at scala.tools.eclipse.ScalaProject$$anonfun$withPresentationCompiler$1.apply(ScalaProject.scala:449)
at scala.tools.eclipse.util.Cached$class.apply(Cached.scala:52)
at scala.tools.eclipse.ScalaProject$$anon$1.apply(ScalaProject.scala:50)
at scala.tools.eclipse.ScalaProject.withPresentationCompiler(ScalaProject.scala:449)
at scala.tools.eclipse.ScalaProject.withSourceFile(ScalaProject.scala:458)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withSourceFile(ScalaCompilationUnit.scala:46)
at scala.tools.eclipse.javaelements.ScalaClassFile.withSourceFile(ScalaClassFile.scala:30)
at scala.tools.eclipse.ScalaHyperlinkDetector.scalaHyperlinks(ScalaHyperlinkDetector.scala:83)
at scala.tools.eclipse.ScalaHyperlinkDetector.detectHyperlinks(ScalaHyperlinkDetector.scala:94)
at scala.tools.eclipse.ScalaHyperlinkDetector.detectHyperlinks(ScalaHyperlinkDetector.scala:22)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:286)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:258)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:462)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:211)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3971)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
It feels like the presentation compiler chokes on this typical lift-pattern:
trait MetaMapper[A<:Mapper[A]] extends BaseMetaMapper with Mapper[A] {
self: A =>
java.lang.Error: A in trait MetaMapper cannot be instantiated from net.liftweb.mapper.MetaMapper[A]
at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:35)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.throwError$1(Types.scala:3382)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.instParam$1(Types.scala:3385)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.toInstance$1(Types.scala:3397)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3413)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3282)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$16.apply(Types.scala:3125)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$16.apply(Types.scala:3122)
at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:79)
at scala.collection.immutable.List.exists(List.scala:45)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3122)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3024)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3415)
at scala.tools.nsc.symtab.Types$Type.asSeenFrom(Types.scala:544)
at scala.tools.nsc.symtab.Types$Type.computeMemberType(Types.scala:573)
at scala.tools.nsc.symtab.Symbols$MethodSymbol.typeAsMemberOf(Symbols.scala:1867)
at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:564)
at scala.tools.nsc.symtab.Types$OverloadedType$$anonfun$safeToString$5.apply(Types.scala:2222)
at scala.tools.nsc.symtab.Types$OverloadedType$$anonfun$safeToString$5.apply(Types.scala:2222)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
at scala.collection.immutable.List.map(List.scala:45)
at scala.tools.nsc.symtab.Types$OverloadedType.safeToString(Types.scala:2222)
at scala.reflect.generic.Types$AbsType.toString(Types.scala:27)
at scala.tools.nsc.ast.TreePrinters$TreePrinter.printRaw(TreePrinters.scala:420)
at scala.tools.nsc.ast.TreePrinters$TreePrinter.print(TreePrinters.scala:426)
at scala.reflect.generic.Trees$Tree.toString(Trees.scala:133)
at java.lang.String.valueOf(String.java:2826)
at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:185)
at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:287)
at scala.collection.Iterator$class.foreach(Iterator.scala:652)
at scala.Product$$anon$1.foreach(Product.scala:38)
at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:285)
at scala.Product$$anon$1.addString(Product.scala:38)
at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:263)
at scala.Product$$anon$1.mkString(Product.scala:38)
at scala.runtime.ScalaRunTime$._toString(ScalaRunTime.scala:159)
at scala.Left.toString(Either.scala:88)
at java.lang.String.valueOf(String.java:2826)
at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:185)
at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:287)
at scala.collection.Iterator$class.foreach(Iterator.scala:652)
at scala.Product$$anon$1.foreach(Product.scala:38)
at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:285)
at scala.Product$$anon$1.addString(Product.scala:38)
at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:263)
at scala.Product$$anon$1.mkString(Product.scala:38)
at scala.runtime.ScalaRunTime$._toString(ScalaRunTime.scala:159)
at scala.Either$LeftProjection.toString(Either.scala:120)
at java.util.Formatter$FormatSpecifier.printString(Formatter.java:2794)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2677)
at java.util.Formatter.format(Formatter.java:2433)
at java.util.Formatter.format(Formatter.java:2367)
at java.lang.String.format(String.java:2769)
at scala.collection.immutable.StringLike$class.format(StringLike.scala:270)
at scala.collection.immutable.StringOps.format(StringOps.scala:31)
at scala.tools.eclipse.ScalaHyperlinkDetector$$anonfun$scalaHyperlinks$1.apply(ScalaHyperlinkDetector.scala:77)
at scala.tools.eclipse.ScalaHyperlinkDetector$$anonfun$scalaHyperlinks$1.apply(ScalaHyperlinkDetector.scala:38)
at scala.tools.eclipse.ScalaPresentationCompiler.withSourceFile(ScalaPresentationCompiler.scala:66)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:457)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:456)
at scala.tools.eclipse.ScalaProject$$anonfun$withPresentationCompiler$1.apply(ScalaProject.scala:450)
at scala.tools.eclipse.ScalaProject$$anonfun$withPresentationCompiler$1.apply(ScalaProject.scala:449)
at scala.tools.eclipse.util.Cached$class.apply(Cached.scala:52)
at scala.tools.eclipse.ScalaProject$$anon$1.apply(ScalaProject.scala:50)
at scala.tools.eclipse.ScalaProject.withPresentationCompiler(ScalaProject.scala:449)
at scala.tools.eclipse.ScalaProject.withSourceFile(ScalaProject.scala:458)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withSourceFile(ScalaCompilationUnit.scala:46)
at scala.tools.eclipse.javaelements.ScalaClassFile.withSourceFile(ScalaClassFile.scala:30)
at scala.tools.eclipse.ScalaHyperlinkDetector.scalaHyperlinks(ScalaHyperlinkDetector.scala:83)
at scala.tools.eclipse.ScalaHyperlinkDetector.detectHyperlinks(ScalaHyperlinkDetector.scala:94)
at scala.tools.eclipse.ScalaHyperlinkDetector.detectHyperlinks(ScalaHyperlinkDetector.scala:22)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:286)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:258)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:462)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:211)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3971)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
It feels like the presentation compiler chokes on this typical lift-pattern:
trait MetaMapper[A<:Mapper[A]] extends BaseMetaMapper with Mapper[A] {
self: A =>
I'm running into a similar stack trace in an admittedly experimental attempt at building the scala-library for gwt. For me, this isn't happening in the IDE, but in scalac when it gets to the GenJVM phase.
Also, it only happens ~80-90% of the time. Every 1-2 runs out of 10, everything works fine, so there is some amount of non-determinism involved.
Setting a few break points, I can't really tell what is going wrong; my wild guess is that the symbols should be the same but somehow end up being different instances, so fail in the equality check "sym eq ps.head" in AsSeenFromMap.instParam.
Also, it only happens ~80-90% of the time. Every 1-2 runs out of 10, everything works fine, so there is some amount of non-determinism involved.
Setting a few break points, I can't really tell what is going wrong; my wild guess is that the symbols should be the same but somehow end up being different instances, so fail in the equality check "sym eq ps.head" in AsSeenFromMap.instParam.
[ERROR] Unexpected internal compiler error
java.lang.Error: A in trait GenTraversableViewLike cannot be instantiated from
[+A, +Coll, +This <: scala.collection.GenTraversableView[A,Coll] with
scala.collection.GenTraversableViewLike[A,Coll,This]]scala.collection.GenTraversableViewLike[A,Coll,This]
at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:32)
at scala.reflect.internal.Types$AsSeenFromMap.throwError$1(Types.scala:3594)
at scala.reflect.internal.Types$AsSeenFromMap.instParam$1(Types.scala:3597)
at scala.reflect.internal.Types$AsSeenFromMap.toInstance$1(Types.scala:3609)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3625)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3494)
at scala.reflect.internal.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3321)
at scala.reflect.internal.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3317)
at scala.reflect.internal.Types$class.map2Conserve(Types.scala:5074)
at scala.reflect.internal.SymbolTable.map2Conserve(SymbolTable.scala:12)
at scala.reflect.internal.Types$TypeMap.mapOverArgs(Types.scala:3317)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3224)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3627)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3494)
at scala.collection.immutable.List.loop$1(List.scala:118)
at scala.collection.immutable.List.mapConserve(List.scala:134)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3273)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3627)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3494)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3265)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3627)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3494)
at scala.collection.immutable.List.loop$1(List.scala:118)
at scala.collection.immutable.List.loop$1(List.scala:131)
at scala.collection.immutable.List.loop$1(List.scala:131)
at scala.collection.immutable.List.mapConserve(List.scala:134)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3347)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3246)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3627)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3494)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3218)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3627)
at scala.reflect.internal.Types$Type.asSeenFrom(Types.scala:567)
at scala.reflect.internal.Types$TypeRef.transform(Types.scala:1764)
at scala.reflect.internal.Types$TypeRef$$anonfun$baseTypeSeq$5.apply(Types.scala:1978)
at scala.reflect.internal.Types$TypeRef$$anonfun$baseTypeSeq$5.apply(Types.scala:1978)
at scala.reflect.internal.BaseTypeSeqs$BaseTypeSeq.map(BaseTypeSeqs.scala:113)
at scala.reflect.internal.Types$TypeRef.baseTypeSeq(Types.scala:1978)
at scala.reflect.internal.BaseTypeSeqs$$anonfun$compoundBaseTypeSeq$1.apply(BaseTypeSeqs.scala:200)
at scala.reflect.internal.BaseTypeSeqs$$anonfun$compoundBaseTypeSeq$1.apply(BaseTypeSeqs.scala:198)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.reflect.internal.BaseTypeSeqs$class.compoundBaseTypeSeq(BaseTypeSeqs.scala:198)
at scala.reflect.internal.SymbolTable.compoundBaseTypeSeq(SymbolTable.scala:12)
at scala.reflect.internal.Types$CompoundType.baseTypeSeq(Types.scala:1327)
at scala.reflect.internal.Types$TypeRef.baseTypeSeq(Types.scala:1978)
at scala.reflect.internal.BaseTypeSeqs$$anonfun$compoundBaseTypeSeq$1.apply(BaseTypeSeqs.scala:200)
at scala.reflect.internal.BaseTypeSeqs$$anonfun$compoundBaseTypeSeq$1.apply(BaseTypeSeqs.scala:198)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.reflect.internal.BaseTypeSeqs$class.compoundBaseTypeSeq(BaseTypeSeqs.scala:198)
at scala.reflect.internal.SymbolTable.compoundBaseTypeSeq(SymbolTable.scala:12)
at scala.reflect.internal.Types$CompoundType.baseTypeSeq(Types.scala:1327)
at scala.reflect.internal.Types$TypeRef.baseTypeSeq(Types.scala:1978)
at scala.reflect.internal.BaseTypeSeqs$$anonfun$compoundBaseTypeSeq$1.apply(BaseTypeSeqs.scala:200)
at scala.reflect.internal.BaseTypeSeqs$$anonfun$compoundBaseTypeSeq$1.apply(BaseTypeSeqs.scala:198)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.reflect.internal.BaseTypeSeqs$class.compoundBaseTypeSeq(BaseTypeSeqs.scala:198)
at scala.reflect.internal.SymbolTable.compoundBaseTypeSeq(SymbolTable.scala:12)
at scala.reflect.internal.Types$CompoundType.baseTypeSeq(Types.scala:1327)
at scala.reflect.internal.Types$Type.baseTypeIndex(Types.scala:776)
at scala.reflect.internal.Symbols$Symbol.isNonBottomSubClass(Symbols.scala:1153)
at scala.reflect.internal.Types$AsSeenFromMap.toPrefix$1(Types.scala:3556)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3572)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3494)
at scala.reflect.internal.Types$TypeMap$$anonfun$16.apply(Types.scala:3339)
at scala.reflect.internal.Types$TypeMap$$anonfun$16.apply(Types.scala:3336)
at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:79)
at scala.collection.immutable.List.exists(List.scala:45)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3336)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3238)
at scala.reflect.internal.Types$AsSeenFromMap.apply(Types.scala:3627)
at scala.reflect.internal.Types$Type.asSeenFrom(Types.scala:567)
at scala.reflect.internal.Types$Type.memberInfo(Types.scala:583)
at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator$$anonfun$4.apply(GenJVM.scala:576)
at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator$$anonfun$4.apply(GenJVM.scala:576)
at scala.reflect.internal.SymbolTable.atPhase(SymbolTable.scala:95)
at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator.addGenericSignature(GenJVM.scala:576)
at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator.genMethod(GenJVM.scala:797)
at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator$$anonfun$genClass$7.apply(GenJVM.scala:312)
at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator$$anonfun$genClass$7.apply(GenJVM.scala:312)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator.genClass(GenJVM.scala:312)
at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase$$anonfun$run$4.apply(GenJVM.scala:87)
at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase$$anonfun$run$4.apply(GenJVM.scala:86)
at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(HashMap.scala:110)
at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(HashMap.scala:110)
at scala.collection.Iterator$class.foreach(Iterator.scala:663)
at scala.collection.mutable.HashTable$$anon$1.foreach(HashTable.scala:157)
at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:190)
at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:43)
at scala.collection.mutable.HashMap$$anon$2.foreach(HashMap.scala:110)
at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase.run(GenJVM.scala:86)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1031)
at scala.tools.nsc.Global$Run.compile(Global.scala:1119)
at com.google.gwt.dev.scalac.NscScalaCompiler.invokeNsc(NscScalaCompiler.java:100)
at com.google.gwt.dev.scalac.NscScalaCompiler.doCompile(NscScalaCompiler.java:111)
at com.google.gwt.dev.scalac.NscScalaCompiler.compile(NscScalaCompiler.java:88)
at com.google.gwt.dev.scalac.ScalaGwtCompiler.stealUnits(ScalaGwtCompiler.java:58)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:229)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:455)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:379)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:366)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:247)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:141)
at com.google.gwt.dev.Compiler.run(Compiler.java:232)
at com.google.gwt.dev.Compiler.run(Compiler.java:198)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)
at com.google.gwt.dev.Compiler.main(Compiler.java:177)
Some more info; there was a commented-out debug statement in the region of the failure, so I put it back in with some modifications, and here is what I'm seeing:
So, we're trying to instantiate "type A (1730877971)" from GenTraversableViewLike, but basesym (which is the same trait) .typeParams returns a list of (type A, type Coll, type This), but the 1st entry, type A, is "type A 1000705026". A different hash code, so a different instance.
So then the equality check of "sym eq ps.head" in "instParam" fails.
I'll reiterate that this is annoyingly transient--I had 2 runs in a row this morning that worked, before getting the error again (I'm not changing anything between runs, just re-invoking the compiler).
So, for some reason, sometimes the type As are the same instance, and everything works...but most of the time they are not.
Is there anything I could try to help locate the bug? I have it fairly reproducible locally, but in a somewhat hacked and large environment trying to compile the scala-library with an invocation of nsc.Main from my own class (inside of GWT). I'm not very confident I could make a smaller, reproducible example.
Console.println("instantiating " + d(sym) + " owner " + d(sym.owner) + " from " + d(basesym) + " with " + basesym.typeParams.map(tp => d(tp) + " owner " + d(tp.owner)) + " and " + baseargs.map(d)+", pre = "+d(pre)+", symclazz = "+d(symclazz));//DEBUG
instantiating type A 1730877971 (sym)
owner trait GenTraversableViewLike 1703628224
from trait GenTraversableViewLike 1703628224
with List(type A 1000705026 owner trait GenTraversableViewLike 1703628224,
type Coll 1511376799 owner trait GenTraversableViewLike 1703628224,
type This 1904932325 owner trait GenTraversableViewLike 1703628224)
and List(A 1381113320,
Coll 1348094789,
This 610450871),
pre = [+A, +Coll, +This <: scala.collection.GenTraversableView[A,Coll]
with scala.collection.GenTraversableViewLike[A,Coll,This]]scala.collection.GenTraversableViewLike[A,Coll,This] -339693385,
symclazz = trait GenTraversableViewLike 1703628224
So, we're trying to instantiate "type A (1730877971)" from GenTraversableViewLike, but basesym (which is the same trait) .typeParams returns a list of (type A, type Coll, type This), but the 1st entry, type A, is "type A 1000705026". A different hash code, so a different instance.
So then the equality check of "sym eq ps.head" in "instParam" fails.
I'll reiterate that this is annoyingly transient--I had 2 runs in a row this morning that worked, before getting the error again (I'm not changing anything between runs, just re-invoking the compiler).
So, for some reason, sometimes the type As are the same instance, and everything works...but most of the time they are not.
Is there anything I could try to help locate the bug? I have it fairly reproducible locally, but in a somewhat hacked and large environment trying to compile the scala-library with an invocation of nsc.Main from my own class (inside of GWT). I'm not very confident I could make a smaller, reproducible example.
on 2011-10-26 17:55 *
By Iulian Dragos
shaberman, can you please file your ticket on the Scala issues page? https://issues.scala-lang.org/ If it happens on the command line, it's a compiler bug.
on 2011-10-26 17:56 *
By Iulian Dragos
Priority changed from Normal (3) to Low (4)
Summary changed from Error in SymbolTable to Error in SymbolTable during override indicators
Ticket assignment reverted due to inactivity.