Instructions to reproduce below (sorry I haven't minimized it).
sbt:lift-mapper:2.5-SNAPSHOT> compile
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[warn] Credentials file /home/naftoli/.sbt/.credentials does not exist
[info] Compiling 37 Scala sources to /home/naftoli/dev/liftweb/framework/persistence/mapper/target/scala-2.10/classes...
[warn] /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/MetaMapper.scala:1232: val keyword in for comprehension is deprecated
[warn] val field = ??(mft.method, toLine)) yield
[warn] ^
[warn] /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/FieldFinder.scala:86: This catches all Throwables. If this is really intended, use `case e : Throwable` to clear this warning.
[warn] case e =>
[warn] ^
[warn] /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/MappedInt.scala:177: This catches all Throwables. If this is really intended, use `case _ : Throwable` to clear this warning.
[warn] case _ => Empty
[warn] ^
[warn] /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/MappedInt.scala:198: This catches all Throwables. If this is really intended, use `case _ : Throwable` to clear this warning.
[warn] case _ => Empty
[warn] ^
[warn] /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/MetaMapper.scala:677: `withFilter' method does not yet exist on net.liftweb.json.JsonAST.JField, using `filter' method instead
[warn] JField("$persisted", JBool(per)) <- field
[warn] ^
[error] bad qualifier received: mkAttributedQualifier(<notype>, <none>)
while compiling: /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/MetaMapper.scala
during phase: patmat
library version: version 2.10.0-M6
compiler version: version 2.10.0-M6
reconstructed args: -deprecation -d /home/naftoli/dev/liftweb/framework/persistence/mapper/target/scala-2.10/classes -bootclasspath /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/netx.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/plugin.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/classes:/home/naftoli/.sbt/boot/scala-2.10.0-M6/lib/scala-library.jar -classpath /home/naftoli/dev/liftweb/framework/persistence/mapper/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/persistence/db/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/util/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/actor/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/common/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/json/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/web/webkit/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/persistence/proto/target/scala-2.10/classes:/home/naftoli/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar:/home/naftoli/.ivy2/cache/org.scala-lang/scalap/jars/scalap-2.10.0-M6.jar:/home/naftoli/.sbt/boot/scala-2.10.0-M6/lib/scala-compiler.jar:/home/naftoli/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.0-M6.jar:/home/naftoli/.ivy2/cache/com.thoughtworks.paranamer/paranamer/jars/paranamer-2.4.1.jar:/home/naftoli/.ivy2/cache/joda-time/joda-time/jars/joda-time-1.6.2.jar:/home/naftoli/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.6.jar:/home/naftoli/.ivy2/cache/javax.mail/mail/jars/mail-1.4.4.jar:/home/naftoli/.ivy2/cache/javax.activation/activation/jars/activation-1.1.jar:/home/naftoli/.ivy2/cache/nu.validator.htmlparser/htmlparser/bundles/htmlparser-1.4.jar:/home/naftoli/.ivy2/cache/commons-fileupload/commons-fileupload/jars/commons-fileupload-1.2.2.jar
last tree to typer: Ident(x)
symbol: value x (flags: <param> <synthetic>)
symbol definition: x: net.liftweb.mapper.Cmp[O,T]
tpe: net.liftweb.mapper.Cmp[O,T]
symbol owners: value x
context owners: value key -> value $anonfun -> value x$40 -> method asSafeJs -> trait KeyedMetaMapper -> package mapper
== Enclosing template or block ==
DefDef( // def asSafeJs(actual: A,f: net.liftweb.mapper.KeyObfuscator): net.liftweb.http.js.JsExp in trait KeyedMetaMapper
<method>
"asSafeJs"
[]
// 1 parameter list
ValDef( // actual: A
<param> <triedcooking>
"actual"
<tpt> // tree.tpe=A
<empty>
)
ValDef( // f: net.liftweb.mapper.KeyObfuscator
<param> <triedcooking>
"f"
<tpt> // tree.tpe=net.liftweb.mapper.KeyObfuscator
<empty>
)
<tpt> // tree.tpe=net.liftweb.http.js.JsExp
Block( // tree.tpe=net.liftweb.http.js.JsObj
// 2 statements
ValDef( // val pk: net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
<triedcooking>
"pk"
<tpt> // tree.tpe=net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
"actual"."primaryKeyField" // def primaryKeyField: net.liftweb.mapper.MappedField[KeyType,OwnerType] with net.liftweb.mapper.IndexedField[KeyType] in trait KeyedMapper, tree.tpe=net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
)
ValDef( // val first: (String, net.liftweb.http.js.JE.Str)
<triedcooking>
"first"
<tpt> // tree.tpe=(String, net.liftweb.http.js.JE.Str)
Apply( // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=(String, net.liftweb.http.js.JE.Str)
TypeApply( // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=(_1: String, _2: net.liftweb.http.js.JE.Str)(String, net.liftweb.http.js.JE.Str)
"scala"."Tuple2"."apply" // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=[T1, T2](_1: T1, _2: T2)(T1, T2)
// 2 type arguments
<tpt> // tree.tpe=String
<tpt> // tree.tpe=net.liftweb.http.js.JE.Str
)
// 2 arguments
"pk"."name" // final def name: String in trait MappedField, tree.tpe=String
Apply( // case def apply(str: String): net.liftweb.http.js.JE.Str in object Str, tree.tpe=net.liftweb.http.js.JE.Str
"http"."js"."JE"."Str"."apply" // case def apply(str: String): net.liftweb.http.js.JE.Str in object Str, tree.tpe=(str: String)net.liftweb.http.js.JE.Str
Apply( // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=String
TypeApply( // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=(theType: net.liftweb.mapper.KeyedMetaMapper[Type,A], key: Type)String
"f"."obscure" // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType], key: KeyType)String
// 2 type arguments
<tpt> // tree.tpe=Type
<tpt> // tree.tpe=A
)
// 2 arguments
This("KeyedMetaMapper")abstract trait KeyedMetaMapper[Type, A <: net.liftweb.mapper.KeyedMapper[Type,A]] extends MetaMapper[A] with KeyedMapper[Type,A] in package mapper, tree.tpe=net.liftweb.mapper.KeyedMetaMapper[Type,A] with A with net.liftweb.mapper.MetaMapper[A] with net.liftweb.mapper.KeyedMapper[Type,A]
"pk"."is" // def is: FieldType in trait MappedField, tree.tpe=Type
)
)
)
)
Apply( // def apply(members: (String, net.liftweb.http.js.JsExp)*): net.liftweb.http.js.JsObj in object JsObj, tree.tpe=net.liftweb.http.js.JsObj
"http"."js"."JE"."JsObj"."apply" // def apply(members: (String, net.liftweb.http.js.JsExp)*): net.liftweb.http.js.JsObj in object JsObj, tree.tpe=(members: (String, net.liftweb.http.js.JsExp)*)net.liftweb.http.js.JsObj
Typed( // tree.tpe=(String, net.liftweb.http.js.JsExp)
Block( // tree.tpe=List[(String, net.liftweb.http.js.JsExp)]
ValDef( // val x$42: (String, net.liftweb.http.js.JE.Str)
<synthetic> <triedcooking>
"x$42"
<tpt> // tree.tpe=(String, net.liftweb.http.js.JE.Str)
"first" // val first: (String, net.liftweb.http.js.JE.Str), tree.tpe=(String, net.liftweb.http.js.JE.Str)
)
Apply( // def ::[B >: A](x: B): List[B] in class List, tree.tpe=List[(String, net.liftweb.http.js.JsExp)]
TypeApply( // def ::[B >: A](x: B): List[B] in class List, tree.tpe=(x: (String, net.liftweb.http.js.JsExp))List[(String, net.liftweb.http.js.JsExp)]
{
<synthetic> val x$41: (String, net.liftweb.http.js.JE.Str) = scala.Tuple2.apply[String, net.liftweb.http.js.JE.Str]("$lift_class", http.js.JE.Str.apply(KeyedMetaMapper.this.dbTableName));
{
<synthetic> val x$40: List[(String, net.liftweb.http.js.JsExp)] = KeyedMetaMapper.this.mappedFieldList.map[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A], List[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]]](((f: KeyedMetaMapper.this.FieldHolder) => this.??(f.method, actual)))(immutable.this.List.canBuildFrom[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]]).filter(((f: net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]) => f.dbPrimaryKey_?.unary_!.&&(f.renderJs_?))).flatMap[(String, net.liftweb.http.js.JsExp), List[(String, net.liftweb.http.js.JsExp)]](((x0$8: net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]) => x0$8 match {
case (fk @ (_: KeyedMetaMapper.this.Q)) => {
val key: String = f.obscure[T forSome { type T }, OO](fk.dbKeyToTable,
fk.is);
immutable.this.List.apply[(String, net.liftweb.http.js.JsExp)](scala.Tuple2.apply[String, net.liftweb.http.js.JE.Str](
fk.name, http.js.JE.Str.apply(key)), scala.Tuple2.apply[String, net.liftweb.http.js.JE.AnonFunc](fk.name.+("_obj"), http.js.JE.AnonFunc.apply("index", http.js.JE.JsRaw.apply("return index[".+(util.Helpers.stringToSuper(key).encJs).+("];")).cmd)))
}
case (x @ _) => x.asJs
}))(immutable.this.List.canBuildFrom[(String, net.liftweb.http.js.JsExp)]).toList;
actual.suplementalJs(common.Full.apply[net.liftweb.mapper.KeyObfuscator](f)).:::[(String, net.liftweb.http.js.JsExp)](x$40)
}.::[(String, net.liftweb.http.js.JsExp)](x$41)
}."$colon$colon" // def ::[B >: A](x: B): List[B] in class List, tree.tpe=[B >: (String, net.liftweb.http.js.JsExp)](x: B)List[B]
<tpt> // tree.tpe=(String, net.liftweb.http.js.JsExp)
)
"x$42" // val x$42: (String, net.liftweb.http.js.JE.Str), tree.tpe=(String, net.liftweb.http.js.JE.Str)
)
)
"_*" // tree.tpe=(String, net.liftweb.http.js.JsExp)
)
)
)
)
== Expanded type of tree ==
TypeRef(
TypeSymbol(
final case class Cmp[O <: net.liftweb.mapper.Mapper[O], T] extends QueryParam[O] with Product with Serializable
)
args = List(
SkolemTypeRef(F-Bounded)(
TypeSkolem(O <: net.liftweb.mapper.Mapper[O])
)
SkolemTypeRef(TypeSkolem(T))
)
)
unhandled exception while transforming MetaMapper.scala
[error]
[error] while compiling: /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/MetaMapper.scala
[error] during phase: patmat
[error] library version: version 2.10.0-M6
[error] compiler version: version 2.10.0-M6
[error] reconstructed args: -deprecation -d /home/naftoli/dev/liftweb/framework/persistence/mapper/target/scala-2.10/classes -bootclasspath /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/netx.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/plugin.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/classes:/home/naftoli/.sbt/boot/scala-2.10.0-M6/lib/scala-library.jar -classpath /home/naftoli/dev/liftweb/framework/persistence/mapper/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/persistence/db/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/util/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/actor/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/common/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/json/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/web/webkit/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/persistence/proto/target/scala-2.10/classes:/home/naftoli/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar:/home/naftoli/.ivy2/cache/org.scala-lang/scalap/jars/scalap-2.10.0-M6.jar:/home/naftoli/.sbt/boot/scala-2.10.0-M6/lib/scala-compiler.jar:/home/naftoli/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.0-M6.jar:/home/naftoli/.ivy2/cache/com.thoughtworks.paranamer/paranamer/jars/paranamer-2.4.1.jar:/home/naftoli/.ivy2/cache/joda-time/joda-time/jars/joda-time-1.6.2.jar:/home/naftoli/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.6.jar:/home/naftoli/.ivy2/cache/javax.mail/mail/jars/mail-1.4.4.jar:/home/naftoli/.ivy2/cache/javax.activation/activation/jars/activation-1.1.jar:/home/naftoli/.ivy2/cache/nu.validator.htmlparser/htmlparser/bundles/htmlparser-1.4.jar:/home/naftoli/.ivy2/cache/commons-fileupload/commons-fileupload/jars/commons-fileupload-1.2.2.jar
[error]
[error] last tree to typer: Ident(x)
[error] symbol: value x (flags: <param> <synthetic>)
[error] symbol definition: x: net.liftweb.mapper.Cmp[O,T]
[error] tpe: net.liftweb.mapper.Cmp[O,T]
[error] symbol owners: value x
[error] context owners: value key -> value $anonfun -> value x$40 -> method asSafeJs -> trait KeyedMetaMapper -> package mapper
[error]
[error] == Enclosing template or block ==
[error]
[error] DefDef( // def asSafeJs(actual: A,f: net.liftweb.mapper.KeyObfuscator): net.liftweb.http.js.JsExp in trait KeyedMetaMapper
[error] <method>
[error] "asSafeJs"
[error] []
[error] // 1 parameter list
[error] ValDef( // actual: A
[error] <param> <triedcooking>
[error] "actual"
[error] <tpt> // tree.tpe=A
[error] <empty>
[error] )
[error] ValDef( // f: net.liftweb.mapper.KeyObfuscator
[error] <param> <triedcooking>
[error] "f"
[error] <tpt> // tree.tpe=net.liftweb.mapper.KeyObfuscator
[error] <empty>
[error] )
[error] <tpt> // tree.tpe=net.liftweb.http.js.JsExp
[error] Block( // tree.tpe=net.liftweb.http.js.JsObj
[error] // 2 statements
[error] ValDef( // val pk: net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
[error] <triedcooking>
[error] "pk"
[error] <tpt> // tree.tpe=net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
[error] "actual"."primaryKeyField" // def primaryKeyField: net.liftweb.mapper.MappedField[KeyType,OwnerType] with net.liftweb.mapper.IndexedField[KeyType] in trait KeyedMapper, tree.tpe=net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
[error] )
[error] ValDef( // val first: (String, net.liftweb.http.js.JE.Str)
[error] <triedcooking>
[error] "first"
[error] <tpt> // tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] Apply( // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] TypeApply( // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=(_1: String, _2: net.liftweb.http.js.JE.Str)(String, net.liftweb.http.js.JE.Str)
[error] "scala"."Tuple2"."apply" // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=[T1, T2](_1: T1, _2: T2)(T1, T2)
[error] // 2 type arguments
[error] <tpt> // tree.tpe=String
[error] <tpt> // tree.tpe=net.liftweb.http.js.JE.Str
[error] )
[error] // 2 arguments
[error] "pk"."name" // final def name: String in trait MappedField, tree.tpe=String
[error] Apply( // case def apply(str: String): net.liftweb.http.js.JE.Str in object Str, tree.tpe=net.liftweb.http.js.JE.Str
[error] "http"."js"."JE"."Str"."apply" // case def apply(str: String): net.liftweb.http.js.JE.Str in object Str, tree.tpe=(str: String)net.liftweb.http.js.JE.Str
[error] Apply( // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=String
[error] TypeApply( // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=(theType: net.liftweb.mapper.KeyedMetaMapper[Type,A], key: Type)String
[error] "f"."obscure" // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType], key: KeyType)String
[error] // 2 type arguments
[error] <tpt> // tree.tpe=Type
[error] <tpt> // tree.tpe=A
[error] )
[error] // 2 arguments
[error] This("KeyedMetaMapper")abstract trait KeyedMetaMapper[Type, A <: net.liftweb.mapper.KeyedMapper[Type,A]] extends MetaMapper[A] with KeyedMapper[Type,A] in package mapper, tree.tpe=net.liftweb.mapper.KeyedMetaMapper[Type,A] with A with net.liftweb.mapper.MetaMapper[A] with net.liftweb.mapper.KeyedMapper[Type,A]
[error] "pk"."is" // def is: FieldType in trait MappedField, tree.tpe=Type
[error] )
[error] )
[error] )
[error] )
[error] Apply( // def apply(members: (String, net.liftweb.http.js.JsExp)*): net.liftweb.http.js.JsObj in object JsObj, tree.tpe=net.liftweb.http.js.JsObj
[error] "http"."js"."JE"."JsObj"."apply" // def apply(members: (String, net.liftweb.http.js.JsExp)*): net.liftweb.http.js.JsObj in object JsObj, tree.tpe=(members: (String, net.liftweb.http.js.JsExp)*)net.liftweb.http.js.JsObj
[error] Typed( // tree.tpe=(String, net.liftweb.http.js.JsExp)
[error] Block( // tree.tpe=List[(String, net.liftweb.http.js.JsExp)]
[error] ValDef( // val x$42: (String, net.liftweb.http.js.JE.Str)
[error] <synthetic> <triedcooking>
[error] "x$42"
[error] <tpt> // tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] "first" // val first: (String, net.liftweb.http.js.JE.Str), tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] )
[error] Apply( // def ::[B >: A](x: B): List[B] in class List, tree.tpe=List[(String, net.liftweb.http.js.JsExp)]
[error] TypeApply( // def ::[B >: A](x: B): List[B] in class List, tree.tpe=(x: (String, net.liftweb.http.js.JsExp))List[(String, net.liftweb.http.js.JsExp)]
[error] {
[error] <synthetic> val x$41: (String, net.liftweb.http.js.JE.Str) = scala.Tuple2.apply[String, net.liftweb.http.js.JE.Str]("$lift_class", http.js.JE.Str.apply(KeyedMetaMapper.this.dbTableName));
[error] {
[error] <synthetic> val x$40: List[(String, net.liftweb.http.js.JsExp)] = KeyedMetaMapper.this.mappedFieldList.map[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A], List[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]]](((f: KeyedMetaMapper.this.FieldHolder) => this.??(f.method, actual)))(immutable.this.List.canBuildFrom[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]]).filter(((f: net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]) => f.dbPrimaryKey_?.unary_!.&&(f.renderJs_?))).flatMap[(String, net.liftweb.http.js.JsExp), List[(String, net.liftweb.http.js.JsExp)]](((x0$8: net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]) => x0$8 match {
[error] case (fk @ (_: KeyedMetaMapper.this.Q)) => {
[error] val key: String = f.obscure[T forSome { type T }, OO](fk.dbKeyToTable,
fk.is);
[error] immutable.this.List.apply[(String, net.liftweb.http.js.JsExp)](scala.Tuple2.apply[String, net.liftweb.http.js.JE.Str](
fk.name, http.js.JE.Str.apply(key)), scala.Tuple2.apply[String, net.liftweb.http.js.JE.AnonFunc](fk.name.+("_obj"), http.js.JE.AnonFunc.apply("index", http.js.JE.JsRaw.apply("return index[".+(util.Helpers.stringToSuper(key).encJs).+("];")).cmd)))
[error] }
[error] case (x @ _) => x.asJs
[error] }))(immutable.this.List.canBuildFrom[(String, net.liftweb.http.js.JsExp)]).toList;
[error] actual.suplementalJs(common.Full.apply[net.liftweb.mapper.KeyObfuscator](f)).:::[(String, net.liftweb.http.js.JsExp)](x$40)
[error] }.::[(String, net.liftweb.http.js.JsExp)](x$41)
[error] }."$colon$colon" // def ::[B >: A](x: B): List[B] in class List, tree.tpe=[B >: (String, net.liftweb.http.js.JsExp)](x: B)List[B]
[error] <tpt> // tree.tpe=(String, net.liftweb.http.js.JsExp)
[error] )
[error] "x$42" // val x$42: (String, net.liftweb.http.js.JE.Str), tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] )
[error] )
[error] "_*" // tree.tpe=(String, net.liftweb.http.js.JsExp)
[error] )
[error] )
[error] )
[error] )
[error]
[error] == Expanded type of tree ==
[error]
[error] TypeRef(
[error] TypeSymbol(
[error] final case class Cmp[O <: net.liftweb.mapper.Mapper[O], T] extends QueryParam[O] with Product with Serializable
[error]
[error] )
[error] args = List(
[error] SkolemTypeRef(F-Bounded)(
[error] TypeSkolem(O <: net.liftweb.mapper.Mapper[O])
[error] )
[error] SkolemTypeRef(TypeSkolem(T))
[error] )
[error] )
[error]
[error] uncaught exception during compilation: scala.reflect.internal.FatalError
[trace] Stack trace suppressed: run last lift-mapper/compile:compile for the full output.
[error] (lift-mapper/compile:compile) scala.reflect.internal.FatalError:
[error] while compiling: /home/naftoli/dev/liftweb/framework/persistence/mapper/src/main/scala/net/liftweb/mapper/MetaMapper.scala
[error] during phase: patmat
[error] library version: version 2.10.0-M6
[error] compiler version: version 2.10.0-M6
[error] reconstructed args: -deprecation -d /home/naftoli/dev/liftweb/framework/persistence/mapper/target/scala-2.10/classes -bootclasspath /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/netx.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/plugin.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/classes:/home/naftoli/.sbt/boot/scala-2.10.0-M6/lib/scala-library.jar -classpath /home/naftoli/dev/liftweb/framework/persistence/mapper/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/persistence/db/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/util/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/actor/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/common/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/core/json/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/web/webkit/target/scala-2.10/classes:/home/naftoli/dev/liftweb/framework/persistence/proto/target/scala-2.10/classes:/home/naftoli/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar:/home/naftoli/.ivy2/cache/org.scala-lang/scalap/jars/scalap-2.10.0-M6.jar:/home/naftoli/.sbt/boot/scala-2.10.0-M6/lib/scala-compiler.jar:/home/naftoli/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.0-M6.jar:/home/naftoli/.ivy2/cache/com.thoughtworks.paranamer/paranamer/jars/paranamer-2.4.1.jar:/home/naftoli/.ivy2/cache/joda-time/joda-time/jars/joda-time-1.6.2.jar:/home/naftoli/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.6.jar:/home/naftoli/.ivy2/cache/javax.mail/mail/jars/mail-1.4.4.jar:/home/naftoli/.ivy2/cache/javax.activation/activation/jars/activation-1.1.jar:/home/naftoli/.ivy2/cache/nu.validator.htmlparser/htmlparser/bundles/htmlparser-1.4.jar:/home/naftoli/.ivy2/cache/commons-fileupload/commons-fileupload/jars/commons-fileupload-1.2.2.jar
[error]
[error] last tree to typer: Ident(x)
[error] symbol: value x (flags: <param> <synthetic>)
[error] symbol definition: x: net.liftweb.mapper.Cmp[O,T]
[error] tpe: net.liftweb.mapper.Cmp[O,T]
[error] symbol owners: value x
[error] context owners: value key -> value $anonfun -> value x$40 -> method asSafeJs -> trait KeyedMetaMapper -> package mapper
[error]
[error] == Enclosing template or block ==
[error]
[error] DefDef( // def asSafeJs(actual: A,f: net.liftweb.mapper.KeyObfuscator): net.liftweb.http.js.JsExp in trait KeyedMetaMapper
[error] <method>
[error] "asSafeJs"
[error] []
[error] // 1 parameter list
[error] ValDef( // actual: A
[error] <param> <triedcooking>
[error] "actual"
[error] <tpt> // tree.tpe=A
[error] <empty>
[error] )
[error] ValDef( // f: net.liftweb.mapper.KeyObfuscator
[error] <param> <triedcooking>
[error] "f"
[error] <tpt> // tree.tpe=net.liftweb.mapper.KeyObfuscator
[error] <empty>
[error] )
[error] <tpt> // tree.tpe=net.liftweb.http.js.JsExp
[error] Block( // tree.tpe=net.liftweb.http.js.JsObj
[error] // 2 statements
[error] ValDef( // val pk: net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
[error] <triedcooking>
[error] "pk"
[error] <tpt> // tree.tpe=net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
[error] "actual"."primaryKeyField" // def primaryKeyField: net.liftweb.mapper.MappedField[KeyType,OwnerType] with net.liftweb.mapper.IndexedField[KeyType] in trait KeyedMapper, tree.tpe=net.liftweb.mapper.MappedField[Type,A] with net.liftweb.mapper.IndexedField[Type]
[error] )
[error] ValDef( // val first: (String, net.liftweb.http.js.JE.Str)
[error] <triedcooking>
[error] "first"
[error] <tpt> // tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] Apply( // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] TypeApply( // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=(_1: String, _2: net.liftweb.http.js.JE.Str)(String, net.liftweb.http.js.JE.Str)
[error] "scala"."Tuple2"."apply" // case def apply[T1, T2](_1: T1,_2: T2): (T1, T2) in object Tuple2, tree.tpe=[T1, T2](_1: T1, _2: T2)(T1, T2)
[error] // 2 type arguments
[error] <tpt> // tree.tpe=String
[error] <tpt> // tree.tpe=net.liftweb.http.js.JE.Str
[error] )
[error] // 2 arguments
[error] "pk"."name" // final def name: String in trait MappedField, tree.tpe=String
[error] Apply( // case def apply(str: String): net.liftweb.http.js.JE.Str in object Str, tree.tpe=net.liftweb.http.js.JE.Str
[error] "http"."js"."JE"."Str"."apply" // case def apply(str: String): net.liftweb.http.js.JE.Str in object Str, tree.tpe=(str: String)net.liftweb.http.js.JE.Str
[error] Apply( // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=String
[error] TypeApply( // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=(theType: net.liftweb.mapper.KeyedMetaMapper[Type,A], key: Type)String
[error] "f"."obscure" // def obscure[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType],key: KeyType): String in class KeyObfuscator, tree.tpe=[KeyType, MetaType <: net.liftweb.mapper.KeyedMapper[KeyType,MetaType]](theType: net.liftweb.mapper.KeyedMetaMapper[KeyType,MetaType], key: KeyType)String
[error] // 2 type arguments
[error] <tpt> // tree.tpe=Type
[error] <tpt> // tree.tpe=A
[error] )
[error] // 2 arguments
[error] This("KeyedMetaMapper")abstract trait KeyedMetaMapper[Type, A <: net.liftweb.mapper.KeyedMapper[Type,A]] extends MetaMapper[A] with KeyedMapper[Type,A] in package mapper, tree.tpe=net.liftweb.mapper.KeyedMetaMapper[Type,A] with A with net.liftweb.mapper.MetaMapper[A] with net.liftweb.mapper.KeyedMapper[Type,A]
[error] "pk"."is" // def is: FieldType in trait MappedField, tree.tpe=Type
[error] )
[error] )
[error] )
[error] )
[error] Apply( // def apply(members: (String, net.liftweb.http.js.JsExp)*): net.liftweb.http.js.JsObj in object JsObj, tree.tpe=net.liftweb.http.js.JsObj
[error] "http"."js"."JE"."JsObj"."apply" // def apply(members: (String, net.liftweb.http.js.JsExp)*): net.liftweb.http.js.JsObj in object JsObj, tree.tpe=(members: (String, net.liftweb.http.js.JsExp)*)net.liftweb.http.js.JsObj
[error] Typed( // tree.tpe=(String, net.liftweb.http.js.JsExp)
[error] Block( // tree.tpe=List[(String, net.liftweb.http.js.JsExp)]
[error] ValDef( // val x$42: (String, net.liftweb.http.js.JE.Str)
[error] <synthetic> <triedcooking>
[error] "x$42"
[error] <tpt> // tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] "first" // val first: (String, net.liftweb.http.js.JE.Str), tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] )
[error] Apply( // def ::[B >: A](x: B): List[B] in class List, tree.tpe=List[(String, net.liftweb.http.js.JsExp)]
[error] TypeApply( // def ::[B >: A](x: B): List[B] in class List, tree.tpe=(x: (String, net.liftweb.http.js.JsExp))List[(String, net.liftweb.http.js.JsExp)]
[error] {
[error] <synthetic> val x$41: (String, net.liftweb.http.js.JE.Str) = scala.Tuple2.apply[String, net.liftweb.http.js.JE.Str]("$lift_class", http.js.JE.Str.apply(KeyedMetaMapper.this.dbTableName));
[error] {
[error] <synthetic> val x$40: List[(String, net.liftweb.http.js.JsExp)] = KeyedMetaMapper.this.mappedFieldList.map[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A], List[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]]](((f: KeyedMetaMapper.this.FieldHolder) => this.??(f.method, actual)))(immutable.this.List.canBuildFrom[net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]]).filter(((f: net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]) => f.dbPrimaryKey_?.unary_!.&&(f.renderJs_?))).flatMap[(String, net.liftweb.http.js.JsExp), List[(String, net.liftweb.http.js.JsExp)]](((x0$8: net.liftweb.mapper.MappedField[KeyedMetaMapper.this.AnyBound,A]) => x0$8 match {
[error] case (fk @ (_: KeyedMetaMapper.this.Q)) => {
[error] val key: String = f.obscure[T forSome { type T }, OO](fk.dbKeyToTable,
fk.is);
[error] immutable.this.List.apply[(String, net.liftweb.http.js.JsExp)](scala.Tuple2.apply[String, net.liftweb.http.js.JE.Str](
fk.name, http.js.JE.Str.apply(key)), scala.Tuple2.apply[String, net.liftweb.http.js.JE.AnonFunc](fk.name.+("_obj"), http.js.JE.AnonFunc.apply("index", http.js.JE.JsRaw.apply("return index[".+(util.Helpers.stringToSuper(key).encJs).+("];")).cmd)))
[error] }
[error] case (x @ _) => x.asJs
[error] }))(immutable.this.List.canBuildFrom[(String, net.liftweb.http.js.JsExp)]).toList;
[error] actual.suplementalJs(common.Full.apply[net.liftweb.mapper.KeyObfuscator](f)).:::[(String, net.liftweb.http.js.JsExp)](x$40)
[error] }.::[(String, net.liftweb.http.js.JsExp)](x$41)
[error] }."$colon$colon" // def ::[B >: A](x: B): List[B] in class List, tree.tpe=[B >: (String, net.liftweb.http.js.JsExp)](x: B)List[B]
[error] <tpt> // tree.tpe=(String, net.liftweb.http.js.JsExp)
[error] )
[error] "x$42" // val x$42: (String, net.liftweb.http.js.JE.Str), tree.tpe=(String, net.liftweb.http.js.JE.Str)
[error] )
[error] )
[error] "_*" // tree.tpe=(String, net.liftweb.http.js.JsExp)
[error] )
[error] )
[error] )
[error] )
[error]
[error] == Expanded type of tree ==
[error]
[error] TypeRef(
[error] TypeSymbol(
[error] final case class Cmp[O <: net.liftweb.mapper.Mapper[O], T] extends QueryParam[O] with Product with Serializable
[error]
[error] )
[error] args = List(
[error] SkolemTypeRef(F-Bounded)(
[error] TypeSkolem(O <: net.liftweb.mapper.Mapper[O])
[error] )
[error] SkolemTypeRef(TypeSkolem(T))
[error] )
[error] )
[error]
[error] bad qualifier received: mkAttributedQualifier(<notype>, <none>)