AndyS | 2 Aug 2012 01:01

implicits and type erasures in scalabeans

Hi All - I'm a scala noob and could do with a hint on this, I suspect this is a type erasure style problem but am only just learning the scala type system so thought I'd check with the experts....

I've been playing with the cool scalabeans framework and looking to deserialize a config file into a scala class instance and I wanted to use a neat implicit for the class type based on the return type rather then explicitly pass the classOf as the argument. However the implicit type seems to get swallowed into a java.lang.Object on route:

so the sweetConfig call fails with a java.lang.ClassCastException: java.lang.Object cannot be cast to SystemConfig


import org.scalatest.FunSuite
import java.io.File
import org.scalastuff.scalabeans.Preamble._

class ConfigTest extends FunSuite{

  test("Loading example-config"){

    var uglyConfig: SystemConfig = deserializeConfigWithClassOf(classOf[SystemConfig],new File("example-config.conf"))
    var sweetConfig: SystemConfig = deserializeConfig(new File("example-config.conf"))
  }

  def deserializeConfigWithClassOf[T <: AnyRef:Manifest](clz: Class[T], file: File) : T = {

    val config = descriptorOf[T].newInstance().asInstanceOf[T]

    config
  }

  def deserializeConfig[T <: AnyRef:Manifest](file: File) : T = {

    val config = descriptorOf[T].newInstance().asInstanceOf[T]

    config
  }

}

class SystemConfig {
  var appName: String = ""
}

any advice on cutting out the explicit classOf[] or how to remove the asInstanceOf[] cast would be appreciated!


Ka Ter | 2 Aug 2012 02:19

Re: Nested Wrappers again

Hi,

I tested the concept in my project and it works very well. Now I have
some problems with implicits as they don't automatically apply. I added
another type member 'Nested' that holds the exact type of the nested
wrapper and a new attribute 'nested' that holds the instance of the
nested wrapper.
As each concrete wrapper class can have its own specific methods I
created an implicit to automatically unwrap a nested wrapper from its
nesting class.
The following code in the main method produces a compiler error since
the implicit is not applied automatically. Is there any hint to achieve
this?
Any ideas? I used Scala 2.9.2 and 2.9.3.

    trait Wrapper[A]
    {
        type W[X] <: Wrapper[X]
        type Nested <: Wrapper[A]

        val nested: Nested
    }

    class Base[A](val value: A) extends Wrapper[A] {
        type W[X] = Base[X]
        type Nested = this.type

        val nested: Nested = this
      }

    class AWrapper[A, B <: Wrapper[A]](val nestedWrapper: B with
Wrapper[A]) extends Wrapper[A] {
        type W[X] = AWrapper[X, B#W[X]]
        type Nested = B

        val nested = nestedWrapper.asInstanceOf[Nested] // This is
necessary, otherwise it won't compile

        def methodOfAWrapper: Unit = Unit
      }

   
    class AnotherWrapper[A, B <: Wrapper[A]](val nestedWrapper: B with
Wrapper[A]) extends Wrapper[A] {
        type W[X] = AnotherWrapper[X, B#W[X]]
        type Nested = B

        val nested = nestedWrapper.asInstanceOf[Nested]

        def methodOfAnotherWrapper: Unit = Unit
      }

object Main
{   
    def main(args: Array[String]): Unit =
    {
        val b = new Base(5)
        val a = new AWrapper(b)
        val an = new AnotherWrapper(a)

        implicit def unwrap1[A, W <: Wrapper[A]](w: W with Wrapper[A]):
W#Nested = w.nested

        val z = an.methodOfAnotherWrapper
        val y = an.methodOfAWrapper             // error due to failure
in implicit
        val x = unwrap1(an).methodOfAWrapper     // but this works !!!!
    }   
}

Best Regards

Ka Ter

Am 18.07.2012 17:13, schrieb Ka Ter:
> You are right. It works now! Has there anything changed from Scala 2.9.1
> to 2.9.2? Most probably I simply did something wrong.
>  
> The only disturbing thing now is the cumbersome type notation.
>
> I am developing an internal DSL that uses nested wrappers a lot. If you type
> an.map(_.toString).map(_ => 5).map(_.toString).map(_ => 6).map(_.toString)
> then the result type is
>
> AnotherWrapper[java.lang.String,AWrapper[Int,Base[Int]]#W[java.lang
>  .String]#W[Int]#W[java.lang.String]#W[Int]#W[java.lang.String]]
>
> instead of simply
> AnotherWrapper[java.lang.String,AWrapper[java.lang.String,Base[java.lang.String]]
>
> But it is easier than working with the implicits monster.
>
> I will try some further things.... Perhaps this is really the solution
> for all of my problems. Thanks.
>
> Best Regards
>
> Ka Ter
>
> Am 18.07.2012 16:35, schrieb Ryan Hendrickson:
>>> Yes, but the problem with type members is, that the type list is getting
>>> longer with each map operation. Try an.map(_.toString).map(_.toString)
>>> and so on. After that you have a very long result type with a lot of #W
>>> in it. At the end the compiler
>>> cannot decide if two types are identical due to this kind of type list,
>>> even in case if both types are identical.
>> I could imagine cases like this that would trip up the compiler, but I think it does fine with this literal example.
>>
>>   var x = an.map(_.toString)
>>   x = x.map(_.toString).map(_.toString).map(_.toString)
>>
>>   var y = an.map(_.toString).map(_.toString).map(_.toString)
>>   y = an.map(_.toString)
>>
>>> For example an
>>> AnotherWrapper[java.lang.String,AWrapper[String,Base[String]]#W[java.lang.String]]
>>> is not identical to
>>> AnotherWrapper[java.lang.String,AWrapper[String,Base[String]] although
>>> we know that both types are identical. The compiler cannot resolve this
>>> at compile-time. Hence you cannot define a
>>> method that takes a function like def someMethod[A, T <: Wrapper[A]](f:
>>> T => T) and call it with this pattern:
>>> someMethod[String,
>>> AnotherWrapper[java.lang.String,AWrapper[String,Base[String]]](an =>
>>> an.map(_.toString)) as the inner
>>> functions result type does not match the expected type T.
>> That seems to work for me, actually:
>>
>>   def someMethod[A, T <: Wrapper[A]](f: T => T) {}
>>   someMethod[String, AnotherWrapper[java.lang.String,AWrapper[String,Base[String]]](an => an.map(_.toString))
>>
>> Could you post some code that you would expect to type-check but which does not?
>>
>>
>>
>>
>>
>> (please forgive me my corporate legal disclaimer)
>>
>> ----------------------------------------
>>
>> This message is intended exclusively for the individual(s) or entity to
>> which it is addressed. It may contain information that is proprietary, 
>> privileged or confidential or otherwise legally exempt from disclosure. 
>> If you are not the named addressee, you are not authorized to read, 
>> print, retain, copy or disseminate this message or any part of it. 
>> If you have received this message in error, please notify the sender 
>> immediately by e-mail and delete all copies of the message.
>>
>

Paul Phillips | 2 Aug 2012 22:38

when namespaces collide

In general a source file is treated as if it had these leading imports:

  import java.lang._
  import scala._
  import Predef._

This means the imported identifiers are subject to being masked.  Now where do identifiers come from? One place you get root-scoped identifiers is from your classpath.  Every top-level package is an identifier.  Which are the top-level packages? Beyond those in jars, for every directory on your classpath, every direct subdirectory is a top-level package, at least in the mind of scalac.

This has extremely perverse consequences:

% scalac ./a.scala
% mkdir any2stringadd
% scalac ./a.scala 
./a.scala:2: error: value + is not a member of object Test
  println(this + "")
               ^
one error found

The only thing more fun than a bug like that is watching it come and go based on your current working directory, since "." is the default classpath.

This came to my attention most recently because we have source files which do things like this:

  self: tools.nsc.Global =>

This can't be compiled from the repository root without changing one's classpath because the repository has a root-level directory called "tools".  There are no classfiles in that directory, but scalac doesn't care, it's going to shadow scala.tools.

Surely we don't have to accept this quantity of non-determinism.

Josh Suereth | 2 Aug 2012 22:46
Picon
Gravatar

Re: when namespaces collide

+1
I, just recently, ran into trouble using tuples when a sub package was named "scala".  

On Aug 2, 2012 4:38 PM, "Paul Phillips" <paulp <at> improving.org> wrote:
In general a source file is treated as if it had these leading imports:

  import java.lang._
  import scala._
  import Predef._

This means the imported identifiers are subject to being masked.  Now where do identifiers come from? One place you get root-scoped identifiers is from your classpath.  Every top-level package is an identifier.  Which are the top-level packages? Beyond those in jars, for every directory on your classpath, every direct subdirectory is a top-level package, at least in the mind of scalac.

This has extremely perverse consequences:

% scalac ./a.scala
% mkdir any2stringadd
% scalac ./a.scala 
./a.scala:2: error: value + is not a member of object Test
  println(this + "")
               ^
one error found

The only thing more fun than a bug like that is watching it come and go based on your current working directory, since "." is the default classpath.

This came to my attention most recently because we have source files which do things like this:

  self: tools.nsc.Global =>

This can't be compiled from the repository root without changing one's classpath because the repository has a root-level directory called "tools".  There are no classfiles in that directory, but scalac doesn't care, it's going to shadow scala.tools.

Surely we don't have to accept this quantity of non-determinism.

Paul Phillips | 2 Aug 2012 23:27

Re: when namespaces collide

If you have a strong stomach, see the attached files, which are the output from attempting to compile each of (compiler, library, reflect) after doing this:


mkdir $(find /scala/trunk/src/{library,compiler,reflect}/scala -maxdepth 1 -type d |xargs basename |sort -u)

Which gives us these empty directories:

  annotation beans collection compat concurrent io math parallel   
  ref reflect runtime scala sys testing text tools util xml

Not only do all of them explode horribly, 2/3 crash (in different ways) which strongly suggests the compiler is preferring these empty directories to its own scala subpackages not only for resolving the identifiers in source code but during its operation.  Here's what we can see it admit to before the forces of crashiness overwhelm the defenses.

Remember, the only thing making all this happen is that there are some empty subdirectories of my current directory.


Global.scala:57: error: not found: type Mirror
Contexts.scala:97: error: not found: type Tree
Contexts.scala:115: error: not found: type Type
Contexts.scala:115: error: not found: type Tree
Macros.scala:44: error: not found: value definitions
ExprUtils.scala:10: error: not found: value Literal
ExprUtils.scala:12: error: not found: value Literal
ExprUtils.scala:14: error: not found: value Literal
ExprUtils.scala:16: error: not found: value Literal
ExprUtils.scala:18: error: not found: value Literal
ExprUtils.scala:20: error: not found: value Literal
ExprUtils.scala:22: error: not found: value Literal
ExprUtils.scala:24: error: not found: value Literal
ExprUtils.scala:26: error: not found: value Literal
ExprUtils.scala:28: error: not found: value Literal
ExprUtils.scala:30: error: not found: value Literal
ExprUtils.scala:32: error: not found: value Literal
ExprUtils.scala:34: error: not found: value Literal
Contexts.scala:397: error: not found: type TypeError
CompilationUnits.scala:35: error: not found: type Tree
Macros.scala:49: error: not found: value perRunCaches
Reifiers.scala:14: error: not found: value definitions
Reifiers.scala:39: error: not found: value ExprSplice
Reifiers.scala:40: error: not found: value Select
SymbolTables.scala:11: error: not found: value definitions
SymbolTables.scala:12: error: not found: value Flag
SymbolTables.scala:23: error: not found: type Tree
Extractors.scala:8: error: not found: value definitions
Extractors.scala:9: error: not found: value Flag
Extractors.scala:194: error: not found: type Tree
Extractors.scala:194: error: not found: type TermName
Extractors.scala:194: error: not found: type Tree
Extractors.scala:194: error: not found: type Tree
Reifiers.scala:65: error: not found: value binding
Reifiers.scala:66: error: not found: value showRaw
Extractors.scala:213: error: not found: type Tree
Extractors.scala:213: error: not found: type TermName
Extractors.scala:213: error: not found: type Tree
Extractors.scala:213: error: not found: type Tree
Reifiers.scala:67: error: not found: value binding
Reifiers.scala:68: error: not found: value showRaw
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Type
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Tree
Reifiers.scala:75: error: not found: value symtab
Extractors.scala:154: error: not found: type Tree
Extractors.scala:154: error: not found: type Tree
Extractors.scala:154: error: not found: type Type
GenericTraversableTemplate.scala:29: error: not found: type uncheckedVariance
ScalaNumberProxy.scala:23: error: not found: type ScalaNumericConversions
GenericParTemplate.scala:28: error: not found: type uncheckedVariance
TraversableOnce.scala:257: error: not found: type uV
TraversableOnce.scala:257: error: not found: type uV
TraversableOnce.scala:232: error: not found: type ClassTag
ParMap.scala:34: error: not found: type GenericParMapTemplate
ParMapLike.scala:39: error: not found: type Growable
ParMapLike.scala:40: error: not found: type Shrinkable
TrieMap.scala:641: error: not found: type ParTrieMap
TrieMap.scala:435: error: not found: type ImmutableListMap
TrieMap.scala:437: error: not found: value ImmutableListMap
TrieMap.scala:438: error: not found: value ImmutableListMap
TrieMap.scala:638: error: not found: type Hashing
TrieMap.scala:644: error: not found: value Hashing
TrieMap.scala:921: error: not found: type Hashing
ParMap.scala:71: error: not found: type ParMapFactory
ParMap.scala:76: error: not found: type CanCombineFrom
TrieMap.scala:651: error: not found: type Hashing
TrieMap.scala:658: error: not found: value Hashing
TrieMap.scala:679: error: not found: type Hashing
TrieMap.scala:783: error: not found: type ParTrieMap
Position.scala:39: error: not found: type PositionApi
Statistics.scala:193: error: not found: value mutable
Statistics.scala:193: error: not found: value mutable
BaseTypeSeqs.scala:135: error: not found: value max
Chars.scala:54: error: not found: type switch
Chars.scala:89: error: not found: type switch
ClassfileConstants.scala:341: error: not found: type switch
Definitions.scala:933: error: not found: value meta
Definitions.scala:934: error: not found: value meta
Definitions.scala:935: error: not found: value meta
Definitions.scala:936: error: not found: value meta
Definitions.scala:937: error: not found: value meta
Definitions.scala:938: error: not found: value meta
Definitions.scala:939: error: not found: value meta
Definitions.scala:940: error: not found: value meta
Definitions.scala:941: error: not found: value meta
Definitions.scala:942: error: not found: value meta
UnPickler.scala:322: error: not found: type switch
UnPickler.scala:401: error: not found: type switch
UnPickler.scala:460: error: not found: type ListBuffer
UnPickler.scala:461: error: not found: type ListBuffer
Printers.scala:517: error: not found: value EOL
Printers.scala:521: error: not found: value EOL
Trees.scala:1412: error: not found: type ListBuffer
Trees.scala:1420: error: not found: type ListBuffer
Position.scala:45: error: not found: type Attachments
Statistics.scala:238: error: not found: value mutable
Statistics.scala:121: error: not found: value mutable
TwoWayCache.scala:16: error: not found: type WeakHashMap
TwoWayCache.scala:17: error: not found: type WeakHashMap
JavaMirrors.scala:794: error: not found: type ListBuffer
SymbolLoaders.scala:106: error: not found: value mutable
TwoWayCache.scala:36: error: not found: value v

/scratch/trunk1/src/compiler/scala/tools/nsc/symtab/SymbolTable.scala:9: error: object internal is not a member of package reflect
abstract class SymbolTable extends reflect.internal.SymbolTable
                                           ^
/scratch/trunk1/src/compiler/scala/tools/nsc/ast/Trees.scala:18: error: object internal is not a member of package reflect
trait Trees extends reflect.internal.Trees { self: Global =>
                            ^
/scratch/trunk1/src/compiler/scala/tools/nsc/symtab/package.scala:5: error: object internal is not a member of package reflect
  val Flags = reflect.internal.Flags
                      ^
/scratch/trunk1/src/compiler/scala/tools/nsc/ast/Printers.scala:13: error: object internal is not a member of package reflect
trait Printers extends reflect.internal.Printers { this: Global =>
                               ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:18: error: value Expr is not a member of scala.tools.nsc.Global
  override val Expr = universe.Expr
                               ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:22: error: value AbsTypeTag is not a member of scala.tools.nsc.Global
  override val AbsTypeTag = universe.AbsTypeTag
                                     ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:23: error: value TypeTag is not a member of scala.tools.nsc.Global
  override val TypeTag = universe.TypeTag
                                  ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:7: error: type Symbol is not a member of scala.tools.nsc.Global
  override type Symbol = universe.Symbol
                                  ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:8: error: type Type is not a member of scala.tools.nsc.Global
  override type Type = universe.Type
                                ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:9: error: type Name is not a member of scala.tools.nsc.Global
  override type Name = universe.Name
                                ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:10: error: type TermName is not a member of scala.tools.nsc.Global
  override type TermName = universe.TermName
                                    ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:11: error: type TypeName is not a member of scala.tools.nsc.Global
  override type TypeName = universe.TypeName
                                    ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:12: error: type Tree is not a member of scala.tools.nsc.Global
  override type Tree = universe.Tree
                                ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:14: error: type Scope is not a member of scala.tools.nsc.Global
  override type Scope = universe.Scope
                                 ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:15: error: type Modifiers is not a member of scala.tools.nsc.Global
  override type Modifiers = universe.Modifiers
                                     ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:17: error: type Expr is not a member of scala.tools.nsc.Global
  override type Expr[+T] = universe.Expr[T]
                                    ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:20: error: type AbsTypeTag is not a member of scala.tools.nsc.Global
  override type AbsTypeTag[T] = universe.AbsTypeTag[T]
                                         ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:21: error: type TypeTag is not a member of scala.tools.nsc.Global
  override type TypeTag[T] = universe.TypeTag[T]
                                      ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Aliases.scala:25: error: value tpe is not a member of Aliases.this.TypeTag[T]
  override def typeOf[T](implicit ttag: TypeTag[T]): Type = ttag.tpe
                                                                 ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/CapturedVariables.scala:10: error: value captureVariable is not a member of scala.tools.nsc.Global
  def captureVariable(vble: Symbol): Unit = universe.captureVariable(vble)
                                                     ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/CapturedVariables.scala:12: error: value referenceCapturedVariable is not a member of scala.tools.nsc.Global
  def referenceCapturedVariable(vble: Symbol): Tree = universe.referenceCapturedVariable(vble)
                                                               ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/CapturedVariables.scala:14: error: value capturedVariableType is not a member of scala.tools.nsc.Global
  def capturedVariableType(vble: Symbol): Type = universe.capturedVariableType(vble)
                                                          ^
/scratch/trunk1/src/compiler/scala/tools/nsc/Global.scala:57: error: not found: type Mirror
  lazy val rootMirror: Mirror = {
                       ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Contexts.scala:97: error: not found: type Tree
    var tree: Tree = _                      // Tree associated with this context
              ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Enclosures.scala:12: error: value pos is not a member of <error>
  private def enclPoses  = enclosingMacros map (_.macroApplication.pos) filterNot (_ eq NoPosition)
                                                                   ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Contexts.scala:115: error: not found: type Type
    var openImplicits: List[(Type,Tree)] = List()   // types for which implicit arguments
                             ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Contexts.scala:115: error: not found: type Tree
    var openImplicits: List[(Type,Tree)] = List()   // types for which implicit arguments
                                  ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Macros.scala:44: error: not found: value definitions
  import definitions._
         ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Evals.scala:12: error: type mismatch;
 found   : scala.tools.nsc.Global
 required: scala.reflect.api.Universe
  private lazy val evalImporter = ru.mkImporter(universe).asInstanceOf[ru.Importer { val from: universe.type }]
                                                ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Exprs.scala:7: error: value Expr is not a member of scala.tools.nsc.Global
  def Expr[T: AbsTypeTag](tree: Tree): Expr[T] = universe.Expr[T](mirror, universe.FixedMirrorTreeCreator(mirror, tree))
                                                          ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:10: error: not found: value Literal
  def literalNull = Expr[Null](Literal(Constant(null)))(TypeTag.Null)
                               ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:12: error: not found: value Literal
  def literalUnit = Expr[Unit](Literal(Constant(())))(TypeTag.Unit)
                               ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:14: error: not found: value Literal
  def literalTrue = Expr[Boolean](Literal(Constant(true)))(TypeTag.Boolean)
                                  ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:16: error: not found: value Literal
  def literalFalse = Expr[Boolean](Literal(Constant(false)))(TypeTag.Boolean)
                                   ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:18: error: not found: value Literal
  def literal(x: Boolean) = Expr[Boolean](Literal(Constant(x)))(TypeTag.Boolean)
                                          ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:20: error: not found: value Literal
  def literal(x: Byte) = Expr[Byte](Literal(Constant(x)))(TypeTag.Byte)
                                    ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:22: error: not found: value Literal
  def literal(x: Short) = Expr[Short](Literal(Constant(x)))(TypeTag.Short)
                                      ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:24: error: not found: value Literal
  def literal(x: Int) = Expr[Int](Literal(Constant(x)))(TypeTag.Int)
                                  ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:26: error: not found: value Literal
  def literal(x: Long) = Expr[Long](Literal(Constant(x)))(TypeTag.Long)
                                    ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:28: error: not found: value Literal
  def literal(x: Float) = Expr[Float](Literal(Constant(x)))(TypeTag.Float)
                                      ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:30: error: not found: value Literal
  def literal(x: Double) = Expr[Double](Literal(Constant(x)))(TypeTag.Double)
                                        ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:32: error: not found: value Literal
  def literal(x: String) = Expr[String](Literal(Constant(x)))(TypeTag[String](definitions.StringClass.asTypeConstructor))
                                        ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/ExprUtils.scala:34: error: not found: value Literal
  def literal(x: Char) = Expr[Char](Literal(Constant(x)))(TypeTag.Char)
                                    ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Contexts.scala:11: error: object tailrec is not a member of package annotation
import annotation.tailrec
       ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Contexts.scala:397: error: not found: type TypeError
      else throw new TypeError(pos, msg1)
                     ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/FrontEnds.scala:44: error: object nsc is not a member of package tools
    case reporter: tools.nsc.reporters.AbstractReporter => reporter.displayPrompt()
                         ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/FrontEnds.scala:44: error: value displayPrompt is not a member of scala.tools.nsc.reporters.Reporter
    case reporter: tools.nsc.reporters.AbstractReporter => reporter.displayPrompt()
                                                                    ^
/scratch/trunk1/src/compiler/scala/tools/nsc/CompilationUnits.scala:35: error: not found: type Tree
    var body: Tree = EmptyTree
              ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Infrastructure.scala:47: error: value symbol is not a member of Infrastructure.this.Tree
  val currentMacro: Symbol = expandee.symbol
                                      ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Infrastructure.scala:49: error: object mutable is not a member of package collection
  val globalCache: collection.mutable.Map[Any, Any] = universe.analyzer.globalMacroCache
                              ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Macros.scala:48: error: object mutable is not a member of package collection
  val globalMacroCache = collection.mutable.Map[Any, Any]()
                                    ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Infrastructure.scala:51: error: object mutable is not a member of package collection
  val cache: collection.mutable.Map[Any, Any] = universe.analyzer.perRunMacroCache.getOrElseUpdate(currentMacro, collection.mutable.Map[Any, Any]())
                        ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Macros.scala:49: error: not found: value perRunCaches
  val perRunMacroCache = perRunCaches.newMap[Symbol, collection.mutable.Map[Any, Any]]
                         ^
/scratch/trunk1/src/compiler/scala/tools/nsc/typechecker/Macros.scala:49: error: object mutable is not a member of package collection
  val perRunMacroCache = perRunCaches.newMap[Symbol, collection.mutable.Map[Any, Any]]
                                                                ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Names.scala:16: error: value mapName is not a member of type parameter NameType
    name.mapName(freshNameCreator.newName(_)).asInstanceOf[NameType]
         ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Parsers.scala:16: error: value mkImporter is not a member of scala.tools.nsc.Global
      val importer = universe.mkImporter(ru)
                              ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:14: error: not found: value definitions
  import definitions._
         ^
/scratch/trunk1/src/compiler/scala/tools/nsc/ast/TreeGen.scala:17: error: object internal is not a member of package reflect
abstract class TreeGen extends reflect.internal.TreeGen with TreeDSL {
                                       ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:16: error: value mkBasisUniverseRef is not a member of object Reifiers.this.universe.gen
  lazy val basisUniverse: Tree = gen.mkBasisUniverseRef
                                     ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:18: error: value mkRuntimeUniverseRef is not a member of object Reifiers.this.universe.gen
  lazy val runtimeUniverse: Tree = gen.mkRuntimeUniverseRef
                                       ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:37: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyTree(global: Global)(typer: global.analyzer.Typer, universe: global.Tree, mirror: global.Tree, tree: global.Tree): global.Tree =
                                                                                                                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:37: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyTree(global: Global)(typer: global.analyzer.Typer, universe: global.Tree, mirror: global.Tree, tree: global.Tree): global.Tree =
                                                                               ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:37: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyTree(global: Global)(typer: global.analyzer.Typer, universe: global.Tree, mirror: global.Tree, tree: global.Tree): global.Tree =
                                                                                                    ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:37: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyTree(global: Global)(typer: global.analyzer.Typer, universe: global.Tree, mirror: global.Tree, tree: global.Tree): global.Tree =
                                                                                                                       ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:40: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyType(global: Global)(typer: global.analyzer.Typer,universe: global.Tree, mirror: global.Tree, tpe: global.Type, concrete: Boolean = false): global.Tree =
                                                                                                                                                              ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:40: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyType(global: Global)(typer: global.analyzer.Typer,universe: global.Tree, mirror: global.Tree, tpe: global.Type, concrete: Boolean = false): global.Tree =
                                                                              ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:40: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyType(global: Global)(typer: global.analyzer.Typer,universe: global.Tree, mirror: global.Tree, tpe: global.Type, concrete: Boolean = false): global.Tree =
                                                                                                   ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:40: error: type Type is not a member of scala.tools.nsc.Global
  def reifyType(global: Global)(typer: global.analyzer.Typer,universe: global.Tree, mirror: global.Tree, tpe: global.Type, concrete: Boolean = false): global.Tree =
                                                                                                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:43: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyRuntimeClass(global: Global)(typer0: global.analyzer.Typer, tpe: global.Type, concrete: Boolean = true): global.Tree = {
                                                                                                                           ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:43: error: type Type is not a member of scala.tools.nsc.Global
  def reifyRuntimeClass(global: Global)(typer0: global.analyzer.Typer, tpe: global.Type, concrete: Boolean = true): global.Tree = {
                                                                                   ^
/scratch/trunk1/src/compiler/scala/reflect/reify/package.scala:65: error: type Tree is not a member of scala.tools.nsc.Global
  def reifyEnclosingRuntimeClass(global: Global)(typer0: global.analyzer.Typer): global.Tree = {
                                                                                        ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:39: error: not found: value ExprSplice
    assert(ExprSplice != NoSymbol)
           ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:40: error: not found: value Select
    Select(tree, ExprSplice)
    ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/SymbolTables.scala:11: error: not found: value definitions
  import definitions._
         ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/SymbolTables.scala:12: error: not found: value Flag
  import Flag._
         ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/SymbolTables.scala:23: error: not found: type Tree
    def symDef(sym: Symbol): Tree =
                             ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:8: error: not found: value definitions
  import definitions._
         ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:9: error: not found: value Flag
  import Flag._
         ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:194: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:194: error: not found: type TermName
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                                           ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:194: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:194: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                      ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:65: error: not found: value binding
        case FreeTermDef(_, _, binding, _, origin) if universe.settings.logFreeTerms.value && binding.tpe == null =>
                                                                                              ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:66: error: not found: value showRaw
          reporter.echo(position, "free term: %s %s".format(showRaw(binding), origin))
                                                            ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:213: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:213: error: not found: type TermName
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                                           ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:213: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:213: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, TermName, Tree, Long, String)] = tree match {
                      ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:67: error: not found: value binding
        case FreeTypeDef(_, _, binding, _, origin) if universe.settings.logFreeTypes.value && binding.tpe == null =>
                                                                                              ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:68: error: not found: value showRaw
          reporter.echo(position, "free type: %s %s".format(showRaw(binding), origin))
                                                            ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:127: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Tree, Type, Tree, Boolean)] = tree match {
                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:127: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Tree, Type, Tree, Boolean)] = tree match {
                                           ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:127: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Tree, Type, Tree, Boolean)] = tree match {
                                                              ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:127: error: not found: type Type
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Tree, Type, Tree, Boolean)] = tree match {
                                                                    ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:127: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Tree, Type, Tree, Boolean)] = tree match {
                                                                          ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:127: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Tree, Type, Tree, Boolean)] = tree match {
                      ^
/scratch/trunk1/src/compiler/scala/reflect/makro/runtime/Reifiers.scala:75: error: not found: value symtab
        case ReifiedTree(_, _, symtab, _, _, _, _) => logFreeVars(symtab)
                                                                  ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:154: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Type, Tree, Boolean)] = tree match {
                                     ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:154: error: not found: type Tree
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Type, Tree, Boolean)] = tree match {
                                           ^
/scratch/trunk1/src/compiler/scala/reflect/reify/utils/Extractors.scala:154: error: not found: type Type
    def unapply(tree: Tree): Option[(Tree, Tree, SymbolTable, Type, Tree, Boolean)] = tree match {
                                                              ^
Exception in thread "main" java.lang.StackOverflowError
	at scala.reflect.internal.Types$InstantiateDependentMap.apply(Types.scala:4694)
	at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:4047)
	at scala.reflect.internal.Types$InstantiateDependentMap.apply(Types.scala:4694)
	at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:4047)
	at scala.reflect.internal.Types$InstantiateDependentMap.apply(Types.scala:4694)
	at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:4039)
	at scala.reflect.internal.Types$InstantiateDependentMap.apply(Types.scala:4694)
	at scala.reflect.internal.Types$MethodType.resultType(Types.scala:2547)
	at scala.tools.nsc.typechecker.Infer$Inferencer.typesCompatible$1(Infer.scala:766)
	at scala.tools.nsc.typechecker.Infer$Inferencer.scala$tools$nsc$typechecker$Infer$Inferencer$$isApplicable(Infer.scala:787)
	at scala.tools.nsc.typechecker.Infer$Inferencer.isAsSpecific(Infer.scala:862)
	at scala.tools.nsc.typechecker.Infer$Inferencer.isStrictlyMoreSpecific(Infer.scala:925)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$inferExprAlternative$1.scala$tools$nsc$typechecker$Infer$Inferencer$$anonfun$$improves$1(Infer.scala:1568)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$inferExprAlternative$1$$anonfun$44.apply(Infer.scala:1571)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$inferExprAlternative$1$$anonfun$44.apply(Infer.scala:1570)
	at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:111)
	at scala.collection.immutable.List.foldLeft(List.scala:78)
	at scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:138)
	at scala.collection.AbstractTraversable.$div$colon(Traversable.scala:105)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$inferExprAlternative$1.apply(Infer.scala:1570)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$inferExprAlternative$1.apply(Infer.scala:1556)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$tryTwice$1.apply$mcV$sp(Infer.scala:1724)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$tryTwice$1.apply(Infer.scala:1724)
	at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$tryTwice$1.apply(Infer.scala:1724)
	at scala.tools.nsc.typechecker.Contexts$Context.withImplicitsDisabled(Contexts.scala:205)
	at scala.tools.nsc.typechecker.Infer$Inferencer.tryTwice(Infer.scala:1724)
	at scala.tools.nsc.typechecker.Infer$Inferencer.inferExprAlternative(Infer.scala:1556)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1074)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
	at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1075)
/scratch/trunk1/src/library/scala/annotation/bridge.scala:14: error: type StaticAnnotation is
not a member of package annotation
private[scala] class bridge extends annotation.StaticAnnotation
                                               ^
/scratch/trunk1/src/library/scala/annotation/cloneable.scala:15: error: type StaticAnnotation
is not a member of package annotation
class cloneable extends annotation.StaticAnnotation
                                   ^
/scratch/trunk1/src/library/scala/annotation/elidable.scala:65: error: type StaticAnnotation
is not a member of package annotation
final class elidable(final val level: Int) extends annotation.StaticAnnotation {}
                                                              ^
/scratch/trunk1/src/library/scala/collection/immutable/StringLike.scala:44: error: type
IndexedSeqOptimized is not a member of package collection
trait StringLike[+Repr] extends Any with collection.IndexedSeqOptimized[Char, Repr] with
Ordered[String] {
                                                    ^
/scratch/trunk1/src/library/scala/collection/generic/GenericTraversableTemplate.scala:16:
error: object unchecked is not a member of package annotation
import annotation.unchecked.uncheckedVariance
                  ^
/scratch/trunk1/src/library/scala/collection/generic/GenericTraversableTemplate.scala:29:
error: not found: type uncheckedVariance
trait GenericTraversableTemplate[+A, +CC[X] <: GenTraversable[X]] extends HasNewBuilder[A, CC[A]
 <at> uncheckedVariance] {
                                                                                                  ^
/scratch/trunk1/src/library/scala/runtime/ScalaNumberProxy.scala:12: error: object
ScalaNumericConversions is not a member of package math
import math.ScalaNumericConversions
       ^
/scratch/trunk1/src/library/scala/runtime/ScalaNumberProxy.scala:23: error: not found: type ScalaNumericConversions
abstract class ScalaNumberProxy[T: Numeric] extends ScalaNumericConversions with Typed[T] with
OrderedProxy[T] {
                                                    ^
/scratch/trunk1/src/library/scala/annotation/implicitNotFound.scala:18: error: type
StaticAnnotation is not a member of package annotation
final class implicitNotFound(msg: String) extends annotation.StaticAnnotation {}
                                                             ^
/scratch/trunk1/src/library/scala/annotation/meta/beanGetter.scala:13: error: type
StaticAnnotation is not a member of package annotation
final class beanGetter extends annotation.StaticAnnotation
                                          ^
/scratch/trunk1/src/library/scala/annotation/meta/beanSetter.scala:13: error: type
StaticAnnotation is not a member of package annotation
final class beanSetter extends annotation.StaticAnnotation
                                          ^
/scratch/trunk1/src/library/scala/annotation/meta/companionClass.scala:17: error: type
StaticAnnotation is not a member of package annotation
final class companionClass extends annotation.StaticAnnotation
                                              ^
/scratch/trunk1/src/library/scala/annotation/meta/companionMethod.scala:17: error: type
StaticAnnotation is not a member of package annotation
final class companionMethod extends annotation.StaticAnnotation
                                               ^
/scratch/trunk1/src/library/scala/annotation/meta/companionObject.scala:14: error: type
StaticAnnotation is not a member of package annotation
final class companionObject extends annotation.StaticAnnotation
                                               ^
/scratch/trunk1/src/library/scala/annotation/meta/field.scala:13: error: type
StaticAnnotation is not a member of package annotation
final class field extends annotation.StaticAnnotation
                                     ^
/scratch/trunk1/src/library/scala/annotation/meta/getter.scala:13: error: type
StaticAnnotation is not a member of package annotation
final class getter extends annotation.StaticAnnotation
                                      ^
/scratch/trunk1/src/library/scala/annotation/meta/languageFeature.scala:13: error: type
StaticAnnotation is not a member of package annotation
final class languageFeature(feature: String, enableRequired: Boolean) extends annotation.StaticAnnotation
                                                                                         ^
/scratch/trunk1/src/library/scala/annotation/meta/param.scala:13: error: type
StaticAnnotation is not a member of package annotation
final class param extends annotation.StaticAnnotation
                                     ^
/scratch/trunk1/src/library/scala/annotation/meta/setter.scala:13: error: type
StaticAnnotation is not a member of package annotation
final class setter extends annotation.StaticAnnotation
                                      ^
/scratch/trunk1/src/library/scala/annotation/migration.scala:27: error: type StaticAnnotation
is not a member of package annotation
 private[scala] final class migration(message: String, changedIn: String) extends
annotation.StaticAnnotation {
                                                                                             ^
/scratch/trunk1/src/library/scala/annotation/serializable.scala:15: error: type
StaticAnnotation is not a member of package annotation
class serializable extends annotation.StaticAnnotation
                                      ^
/scratch/trunk1/src/library/scala/annotation/strictfp.scala:18: error: type StaticAnnotation
is not a member of package annotation
class strictfp extends annotation.StaticAnnotation
                                  ^
/scratch/trunk1/src/library/scala/annotation/switch.scala:29: error: type StaticAnnotation is
not a member of package annotation
final class switch extends annotation.StaticAnnotation
                                      ^
/scratch/trunk1/src/library/scala/annotation/tailrec.scala:19: error: type StaticAnnotation is
not a member of package annotation
final class tailrec extends annotation.StaticAnnotation
                                       ^
/scratch/trunk1/src/library/scala/annotation/unchecked/uncheckedStable.scala:15: error: type
StaticAnnotation is not a member of package annotation
final class uncheckedStable extends annotation.StaticAnnotation {}
                                               ^
/scratch/trunk1/src/library/scala/annotation/unchecked/uncheckedVariance.scala:15: error:
type StaticAnnotation is not a member of package annotation
final class uncheckedVariance extends annotation.StaticAnnotation {}
                                                 ^
/scratch/trunk1/src/library/scala/annotation/unspecialized.scala:17: error: type
StaticAnnotation is not a member of package annotation
class unspecialized extends annotation.StaticAnnotation
                                       ^
/scratch/trunk1/src/library/scala/annotation/varargs.scala:17: error: type StaticAnnotation is
not a member of package annotation
final class varargs extends annotation.StaticAnnotation
                                       ^
/scratch/trunk1/src/library/scala/collection/immutable/Range.scala:46: error: type
AbstractSeq is not a member of package collection
extends collection.AbstractSeq[Int]
                   ^
/scratch/trunk1/src/library/scala/collection/immutable/Range.scala:48: error: type
CustomParallelizable is not a member of package collection
   with collection.CustomParallelizable[Int, ParRange]
                   ^
/scratch/trunk1/src/library/scala/collection/generic/GenericParTemplate.scala:16: error:
object unchecked is not a member of package annotation
import annotation.unchecked.uncheckedVariance
                  ^
/scratch/trunk1/src/library/scala/collection/generic/GenericParTemplate.scala:28: error: not
found: type uncheckedVariance
   with HasNewCombiner[A, CC[A]  <at> uncheckedVariance]
                                 ^
/scratch/trunk1/src/library/scala/collection/parallel/package.scala:69: error: type
GenTraversableOnce is not a member of package collection
  implicit def traversable2ops[T](t: collection.GenTraversableOnce[T]) = new TraversableOps[T] {
                                                ^
/scratch/trunk1/src/library/scala/collection/TraversableOnce.scala:15: error: object ClassTag
is not a member of package reflect
import reflect.ClassTag
       ^
/scratch/trunk1/src/library/scala/collection/TraversableOnce.scala:13: error: object
unchecked is not a member of package annotation
import annotation.unchecked.{ uncheckedVariance => uV }
                  ^
/scratch/trunk1/src/library/scala/beans/BeanDescription.scala:18: error: type Annotation is not
a member of package annotation
class BeanDescription(val description: String) extends annotation.Annotation
                                                                  ^
/scratch/trunk1/src/library/scala/beans/BeanDisplayName.scala:17: error: type Annotation is not
a member of package annotation
class BeanDisplayName(val name: String) extends annotation.Annotation
                                                           ^
/scratch/trunk1/src/library/scala/beans/BeanInfo.scala:20: error: type Annotation is not a member
of package annotation
class BeanInfo extends annotation.Annotation
                                  ^
/scratch/trunk1/src/library/scala/beans/BeanInfoSkip.scala:18: error: type Annotation is not a
member of package annotation
class BeanInfoSkip extends annotation.Annotation
                                      ^
/scratch/trunk1/src/library/scala/beans/BeanProperty.scala:26: error: type StaticAnnotation is
not a member of package annotation
class BeanProperty extends annotation.StaticAnnotation
                                      ^
/scratch/trunk1/src/library/scala/beans/BeanProperty.scala:25: error: type mismatch;
 found   : scala.annotation.meta.field
 required: scala.annotation.Annotation
 <at> scala.annotation.meta.field
 ^
/scratch/trunk1/src/library/scala/beans/BooleanBeanProperty.scala:16: error: type
StaticAnnotation is not a member of package annotation
class BooleanBeanProperty extends annotation.StaticAnnotation
                                             ^
/scratch/trunk1/src/library/scala/beans/BooleanBeanProperty.scala:15: error: type mismatch;
 found   : scala.annotation.meta.field
 required: scala.annotation.Annotation
 <at> scala.annotation.meta.field
 ^
/scratch/trunk1/src/library/scala/collection/GenTraversableOnce.scala:574: error: type mismatch;
 found   : scala.annotation.unchecked.uncheckedVariance
 required: scala.annotation.Annotation
  def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A  <at> uV]]): Col[A  <at> uV]
                                                               ^
/scratch/trunk1/src/library/scala/collection/GenTraversableOnce.scala:574: error: type mismatch;
 found   : scala.annotation.unchecked.uncheckedVariance
 required: scala.annotation.Annotation
  def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A  <at> uV]]): Col[A  <at> uV]
                                                                             ^
/scratch/trunk1/src/library/scala/collection/TraversableOnce.scala:257: error: not found: type uV
  def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A  <at> uV]]): Col[A  <at> uV] = {
                                                                             ^
/scratch/trunk1/src/library/scala/collection/TraversableOnce.scala:257: error: not found: type uV
  def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A  <at> uV]]): Col[A  <at> uV] = {
                                                               ^
/scratch/trunk1/src/library/scala/collection/GenTraversableOnce.scala:510: error: object
mutable is not a member of package collection
  def toBuffer[A1 >: A]: collection.mutable.Buffer[A1]
                                    ^
/scratch/trunk1/src/library/scala/collection/TraversableOnce.scala:232: error: not found: type ClassTag
  def toArray[B >: A : ClassTag]: Array[B] = {
                       ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMap.scala:15: error: object
generic is not a member of package collection
import collection.generic._
                  ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMap.scala:31: error: type
GenMap is not a member of package collection
extends collection/*.mutable*/.GenMap[K, V]
                               ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMap.scala:32: error: object
parallel is not a member of package collection
   with collection.parallel.ParMap[K, V]
                   ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMap.scala:34: error: not
found: type GenericParMapTemplate
   with GenericParMapTemplate[K, V, ParMap]
        ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMap.scala:35: error: object
mutable is not a member of package collection
   with /* mutable */ ParMapLike[K, V, ParMap[K, V], collection.mutable.Map[K, V]]
                                                                ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParIterable.scala:29: error:
type GenIterable is not a member of package collection
trait ParIterable[T] extends collection/*.mutable*/.GenIterable[T]
                                                    ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParIterable.scala:30: error:
object parallel is not a member of package collection
                        with collection.parallel.ParIterable[T]
                                        ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:14: error:
object generic is not a member of package collection
import collection.generic._
                  ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:37: error:
type GenMapLike is not a member of package collection
extends collection.GenMapLike[K, V, Repr]
                   ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:38: error:
object parallel is not a member of package collection
   with collection.parallel.ParMapLike[K, V, Repr, Sequential]
                   ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:17: error:
object generic is not a member of package collection
import collection.generic.Growable
                  ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:39: error:
not found: type Growable
   with Growable[(K, V)]
        ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:18: error:
object generic is not a member of package collection
import collection.generic.Shrinkable
                  ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:40: error:
not found: type Shrinkable
   with Shrinkable[K]
        ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:16: error:
object mutable is not a member of package collection
import collection.mutable.Cloneable
                  ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMapLike.scala:41: error:
Cloneable does not take type parameters
   with Cloneable[Repr]
        ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:15: error: object
immutable is not a member of package collection
import collection.immutable.{ ListMap => ImmutableListMap }
                  ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:16: error: object
parallel is not a member of package collection
import collection.parallel.mutable.ParTrieMap
                  ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:17: error: object
hashing is not a member of package util
import util.hashing.Hashing
            ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:19: error: object
tailrec is not a member of package annotation
import annotation.tailrec
       ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:20: error: object
switch is not a member of package annotation
import annotation.switch
       ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:641: error: not found:
type ParTrieMap
   with CustomParallelizable[(K, V), ParTrieMap[K, V]]
                                     ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:435: error: not found:
type ImmutableListMap
private[collection] final class LNode[K, V](final val listmap: ImmutableListMap[K, V])
                                                               ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:224: error: type mismatch;
 found   : v0.type (with underlying type Any)
 required: V
              case Some(v0) => if (insertln()) Some(v0) else null
                                                    ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:353: error: type mismatch;
 found   : Some[Any]
 required: Option[V]
            if (GCAS(ln, nn, ct)) optv else null
                                  ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:437: error: not found:
value ImmutableListMap
  def this(k: K, v: V) = this(ImmutableListMap(k -> v))
                              ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:438: error: not found:
value ImmutableListMap
  def this(k1: K, v1: V, k2: K, v2: V) = this(ImmutableListMap(k1 -> v1, k2 -> v2))
                                              ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:445: error: type mismatch;
 found   : k.type (with underlying type Any)
 required: K
      new TNode(k, v, ct.computeHash(k)) // create it tombed so that it gets compressed on subsequent accesses
                ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:445: error: type mismatch;
 found   : v.type (with underlying type Any)
 required: V
      new TNode(k, v, ct.computeHash(k)) // create it tombed so that it gets compressed on subsequent accesses
                   ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:638: error: not found:
type Hashing
final class TrieMap[K, V] private (r: AnyRef, rtupd: AtomicReferenceFieldUpdater[TrieMap[K, V],
AnyRef], hashf: Hashing[K], ef: Equiv[K])
                                                                                                                ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:644: error: not found:
value Hashing
  private var hashingobj = if (hashf.isInstanceOf[Hashing.Default[_]]) new
TrieMap.MangledHashing[K] else hashf
                                                  ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:921: error: not found:
type Hashing
  class MangledHashing[K] extends Hashing[K] {
                                  ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:922: error: object
hashing is not a member of package util
    def hash(k: K) = util.hashing.byteswap32(k.##)
                          ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMap.scala:71: error: not
found: type ParMapFactory
object ParMap extends ParMapFactory[ParMap] {
                      ^
/scratch/trunk1/src/library/scala/collection/parallel/mutable/ParMap.scala:76: error: not
found: type CanCombineFrom
  implicit def canBuildFrom[K, V]: CanCombineFrom[Coll, (K, V), ParMap[K, V]] = new
CanCombineFromMap[K, V]
                                   ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:445: error: type mismatch;
 found   : k.type (with underlying type Any)
 required: K
      new TNode(k, v, ct.computeHash(k)) // create it tombed so that it gets compressed on subsequent accesses
                                     ^
/scratch/trunk1/src/library/scala/collection/generic/FilterMonadic.scala:17: error: type
GenTraversableOnce is not a member of package collection
  def flatMap[B, That](f: A => collection.GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B,
That]): That
                                          ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:651: error: not found:
type Hashing
  def this(hashf: Hashing[K], ef: Equiv[K]) = this(
                  ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:658: error: not found:
value Hashing
  def this() = this(Hashing.default, Equiv.universal)
                    ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:679: error: not found:
type Hashing
    hashingobj = in.readObject().asInstanceOf[Hashing[K]]
                                              ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:783: error: not found:
type ParTrieMap
  override def par = new ParTrieMap(this)
                         ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:819: error: type Map is
not a member of package collection
   <at> tailrec final def readOnlySnapshot(): collection.Map[K, V] = {
                                                    ^
/scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala:1061: error: object
control is not a member of package util
private[concurrent] object RestartException extends util.control.ControlThrowable
                                                         ^
/scratch/trunk1/src/library/scala/languageFeature.scala:22: error: type mismatch;
 found   : scala.annotation.meta.languageFeature
 required: scala.annotation.Annotation
   <at> meta.languageFeature("#, which cannot be expressed by wildcards, ", enableRequired = false)
   ^
/scratch/trunk1/src/library/scala/languageFeature.scala:16: error: type mismatch;
 found   : scala.annotation.meta.languageFeature
 required: scala.annotation.Annotation
   <at> meta.languageFeature("implicit conversion #", enableRequired = false)
   ^
/scratch/trunk1/src/library/scala/languageFeature.scala:19: error: type mismatch;
 found   : scala.annotation.meta.languageFeature
 required: scala.annotation.Annotation
   <at> meta.languageFeature("higher-kinded type", enableRequired = false)
   ^
error: 
     while compiling: /scratch/trunk1/src/library/scala/collection/concurrent/TrieMap.scala
        during phase: typer
     library version: version 2.11.0-20120730-173724-8a2df611d2
    compiler version: version 2.11.0-20120730-173724-8a2df611d2
  reconstructed args: -d /var/folders/n7/vnqb6gt53857cpp8bb8_qv980000gn/T/foo.OA4Va1Rb

  last tree to typer: Literal(Constant(false))
              symbol: null
   symbol definition: null
                 tpe: Boolean(false)
       symbol owners: 
      context owners: value <local languageFeature> -> object languageFeature -> package scala

== Enclosing template or block ==

Template(
  "java.lang.Object" // parents
  ValDef(
    private
    "_"
    <tpt>
    <empty>
  )
  // 8 statements
  DefDef( // def <init>: <?> in object languageFeature
    <method>
    "<init>"
    []
    List(Nil)
    <tpt>
    Block(
      Apply(
        super."<init>"
        Nil
      )
      ()
    )
  )
  ClassDef( // sealed abstract trait dynamics extends  in object languageFeature
    <interface> sealed abstract <defaultparam/trait>  <at> { new meta.languageFeature("extension of type
scala.Dynamic", enableRequired = true) }
    "dynamics"
    []
    Template(
      "scala"."AnyRef" // parents
      ValDef(
        private
        "_"
        <tpt>
        <empty>
      )
      {}
    )
  )
  ClassDef( // sealed abstract trait postfixOps extends  in object languageFeature
    <interface> sealed abstract <defaultparam/trait>  <at> { new meta.languageFeature("postfix operator #",
enableRequired = false) }
    "postfixOps"
    []
    Template(
      "scala"."AnyRef" // parents
      ValDef(
        private
        "_"
        <tpt>
        <empty>
      )
      {}
    )
  )
  ClassDef( // sealed abstract trait reflectiveCalls extends  in object languageFeature
    <interface> sealed abstract <defaultparam/trait>  <at> { new meta.languageFeature("reflective access of
structural type member #", enableRequired = false) }
    "reflectiveCalls"
    []
    Template(
      "scala"."AnyRef" // parents
      ValDef(
        private
        "_"
        <tpt>
        <empty>
      )
      {}
    )
  )
  ClassDef( // sealed abstract trait implicitConversions extends Object in object languageFeature
    <interface> sealed abstract <defaultparam/trait>  <at> { <error> }
    "implicitConversions"
    []
    Template(
      "java.lang.Object" // parents
      ValDef(
        private
        "_"
        <tpt>
        <empty>
      )
      {}
    )
  )
  ClassDef( // sealed abstract trait higherKinds extends Object in object languageFeature
    <interface> sealed abstract <defaultparam/trait>  <at> { <error> }
    "higherKinds"
    []
    Template(
      "java.lang.Object" // parents
      ValDef(
        private
        "_"
        <tpt>
        <empty>
      )
      {}
    )
  )
  ClassDef( // sealed abstract trait existentials extends Object in object languageFeature
    <interface> sealed abstract <defaultparam/trait>  <at> { <error> }
    "existentials"
    []
    Template(
      "java.lang.Object" // parents
      ValDef(
        private
        "_"
        <tpt>
        <empty>
      )
      {}
    )
  )
  ModuleDef( // object experimental in object languageFeature
    <module>
    "experimental"
    Template(
      "scala"."AnyRef" // parents
      ValDef(
        private
        "_"
        <tpt>
        <empty>
      )
      // 2 statements
      DefDef(
        0
        "<init>"
        []
        List(Nil)
        <tpt>
        Block(
          Apply(
            super."<init>"
            Nil
          )
          ()
        )
      )
      ClassDef(
        <interface> sealed abstract <defaultparam/trait>  <at> { new meta.languageFeature("macro definition",
enableRequired = true) }
        "macros"
        []
        Template(
          "scala"."AnyRef" // parents
          ValDef(
            private
            "_"
            <tpt>
            <empty>
          )
          {}
        )
      )
    )
  )
)

== Expanded type of tree ==

ConstantType(value = Constant(false))

uncaught exception during compilation: scala.MatchError
error: scala.MatchError: None (of class scala.None$)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$action$1(Typers.scala:776)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$checkFeature$1.apply$mcV$sp(Typers.scala:795)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$apply$1.apply(Analyzer.scala:100)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$apply$1.apply(Analyzer.scala:100)
	at scala.collection.immutable.List.foreach(List.scala:294)
	at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
	at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:100)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:413)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
	at scala.collection.Iterator$class.foreach(Iterator.scala:726)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1155)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:90)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1545)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1519)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1515)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1628)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:33)
	at scala.tools.nsc.Main$.doCompile(Main.scala:79)
	at scala.tools.nsc.Driver.process(Driver.scala:54)
	at scala.tools.nsc.Driver.main(Driver.scala:67)
	at scala.tools.nsc.Main.main(Main.scala)

Exception in thread "main" scala.MatchError: None (of class scala.None$)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$action$1(Typers.scala:776)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$checkFeature$1.apply$mcV$sp(Typers.scala:795)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$apply$1.apply(Analyzer.scala:100)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$apply$1.apply(Analyzer.scala:100)
	at scala.collection.immutable.List.foreach(List.scala:294)
	at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
	at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:100)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:413)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
	at scala.collection.Iterator$class.foreach(Iterator.scala:726)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1155)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:90)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1545)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1519)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1515)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1628)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:33)
	at scala.tools.nsc.Main$.doCompile(Main.scala:79)
	at scala.tools.nsc.Driver.process(Driver.scala:54)
	at scala.tools.nsc.Driver.main(Driver.scala:67)
	at scala.tools.nsc.Main.main(Main.scala)
/scratch/trunk1/src/reflect/scala/reflect/api/FrontEnds.scala:29: error: object mutable is not a
member of package collection
    val infos = new collection.mutable.LinkedHashSet[Info]
                               ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Position.scala:11: error: object api
is not a member of package reflect
import reflect.api.PositionApi
               ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Position.scala:39: error: not found:
type PositionApi
abstract class Position extends PositionApi { self =>
                                ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:9: error: object switch
is not a member of package annotation
import annotation.{ switch, meta }
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/BaseTypeSeqs.scala:10: error: object max is
not a member of package math
import math.max
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:3: error: object
mutable is not a member of package collection
import collection.mutable
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:193: error: not
found: value mutable
      extends mutable.HashMap[K, V] with mutable.SynchronizedMap[K, V] with Quantity {
              ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:193: error: not
found: value mutable
      extends mutable.HashMap[K, V] with mutable.SynchronizedMap[K, V] with Quantity {
                                         ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:21: error:
scala.reflect.internal.util.Statistics.QuantMap[K,scala.reflect.internal.util.Statistics.Counter]
does not take parameters
    if (_enabled && ctrs != null) ctrs(key).value += 1
                                      ^
/scratch/trunk1/src/reflect/scala/reflect/internal/BaseTypeSeqs.scala:102: error: object
Platform is not a member of package compat
      compat.Platform.arraycopy(elems, 0, arr, offset, elems.length)
             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/BaseTypeSeqs.scala:135: error: not found:
value max
      for (i <- 1 until length) d = max(d, typeDepth(elems(i)))
                                    ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Chars.scala:8: error: object tailrec is not a
member of package annotation
import annotation.{ tailrec, switch }
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Chars.scala:54: error: not found: type switch
   <at> inline def isLineBreakChar(c: Char) = (c:  <at> switch) match {
                                              ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Chars.scala:89: error: not found: type switch
  def isOperatorPart(c : Char) : Boolean = (c:  <at> switch) match {
                                                ^
/scratch/trunk1/src/reflect/scala/reflect/internal/ClassfileConstants.scala:9: error: object
switch is not a member of package annotation
import annotation.switch
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/ClassfileConstants.scala:341: error: not
found: type switch
    private def translateFlag(jflag: Int): Long = (jflag:  <at> switch) match {
                                                           ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Constants.scala:10: error: object switch is
not a member of package annotation
import annotation.switch
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:933: error: not found:
value meta
    lazy val BeanGetterTargetClass      = requiredClass[meta.beanGetter]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:933: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val BeanGetterTargetClass      = requiredClass[meta.beanGetter]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:934: error: not found:
value meta
    lazy val BeanSetterTargetClass      = requiredClass[meta.beanSetter]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:934: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val BeanSetterTargetClass      = requiredClass[meta.beanSetter]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:935: error: not found:
value meta
    lazy val FieldTargetClass           = requiredClass[meta.field]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:935: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val FieldTargetClass           = requiredClass[meta.field]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:936: error: not found:
value meta
    lazy val GetterTargetClass          = requiredClass[meta.getter]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:936: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val GetterTargetClass          = requiredClass[meta.getter]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:937: error: not found:
value meta
    lazy val ParamTargetClass           = requiredClass[meta.param]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:937: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val ParamTargetClass           = requiredClass[meta.param]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:938: error: not found:
value meta
    lazy val SetterTargetClass          = requiredClass[meta.setter]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:938: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val SetterTargetClass          = requiredClass[meta.setter]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:939: error: not found:
value meta
    lazy val ClassTargetClass           = requiredClass[meta.companionClass]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:939: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val ClassTargetClass           = requiredClass[meta.companionClass]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:940: error: not found:
value meta
    lazy val ObjectTargetClass          = requiredClass[meta.companionObject]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:940: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val ObjectTargetClass          = requiredClass[meta.companionObject]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:941: error: not found:
value meta
    lazy val MethodTargetClass          = requiredClass[meta.companionMethod]    // TODO: module, moduleClass?
package, packageObject?
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:941: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val MethodTargetClass          = requiredClass[meta.companionMethod]    // TODO: module, moduleClass?
package, packageObject?
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:942: error: not found:
value meta
    lazy val LanguageFeatureAnnot       = requiredClass[meta.languageFeature]
                                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Definitions.scala:942: error: ambiguous
implicit values:
 both value NameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.Name]
 and value TermNameTag in trait Names of type => scala.reflect.ClassTag[Definitions.this.TermName]
 match expected type scala.reflect.ClassTag[<error>]
    lazy val LanguageFeatureAnnot       = requiredClass[meta.languageFeature]
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Importers.scala:35: error: object mutable
is not a member of package collection
    lazy val fixups = collection.mutable.MutableList[Function0[Unit]]()
                                 ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Names.scala:70: error: object Platform is
not a member of package compat
        compat.Platform.arraycopy(chrs, 0, newchrs, 0, chrs.length)
               ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Names.scala:182: error: object Platform is
not a member of package compat
      compat.Platform.arraycopy(chrs, index, cs, offset, len)
             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Names.scala:198: error: object Platform is
not a member of package compat
      compat.Platform.arraycopy(bytes, 0, bs, offset, bytes.length)
             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/pickling/UnPickler.scala:17: error:
object mutable is not a member of package collection
import collection.mutable.ListBuffer
                  ^
/scratch/trunk1/src/reflect/scala/reflect/internal/pickling/UnPickler.scala:18: error:
object switch is not a member of package annotation
import annotation.switch
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/pickling/UnPickler.scala:322: error: not
found: type switch
      (tag:  <at> switch) match {
             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/pickling/UnPickler.scala:401: error: not
found: type switch
      (tag:  <at> switch) match {
             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/pickling/UnPickler.scala:460: error: not
found: type ListBuffer
      val args = new ListBuffer[Tree]
                     ^
/scratch/trunk1/src/reflect/scala/reflect/internal/pickling/UnPickler.scala:461: error: not
found: type ListBuffer
      val assocs = new ListBuffer[(Name, ClassfileAnnotArg)]
                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Printers.scala:13: error: object Platform
is not a member of package compat
import compat.Platform.EOL
              ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:11: error: object mutable is not
a member of package collection
import collection.mutable.{ListBuffer, LinkedHashSet}
                  ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Printers.scala:517: error: not found: value EOL
          printer.print(EOL)
                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Printers.scala:521: error: not found: value EOL
              if (ii < footnotes.length - 1) printer.print(EOL)
                                                           ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Printers.scala:672: error: object mutable
is not a member of package collection
      val s_flags = new collection.mutable.ListBuffer[String]
                                   ^
/scratch/trunk1/src/reflect/scala/reflect/internal/StdAttachments.scala:11: error: type mismatch;
 found   : StdAttachments.this.NoPosition.type
 required: scala.reflect.base.Attachments{type Pos = StdAttachments.this.Position}
    protected var rawatt: base.Attachments { type Pos = Position } = NoPosition
                                                                     ^
/scratch/trunk1/src/reflect/scala/reflect/internal/StdNames.scala:11: error: object switch is
not a member of package annotation
import annotation.switch
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/StdNames.scala:64: error: object min is not a
member of package math
    val MaxNameLength = math.min(
                             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Symbols.scala:391: error: type mismatch;
 found   : Symbol.this.initPos.type (with underlying type Symbols.this.Position)
 required: scala.reflect.base.Attachments{type Pos = Symbols.this.Position}
    rawatt = initPos
             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/SymbolTable.scala:99: error: object props
is not a member of package sys
  final val traceSymbolActivity = sys.props contains "scalac.debug.syms"
                                      ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1412: error: not found: type ListBuffer
    val hits = new ListBuffer[Tree]
                   ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1420: error: not found: type ListBuffer
    val results = new ListBuffer[T]
                      ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:140: error: object mutable is
not a member of package collection
      val s = collection.mutable.LinkedHashSet[S]()
                         ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1466: error: object error is not
a member of package sys
      sys.error("Not a DefDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1482: error: object error is not
a member of package sys
      sys.error("Not a ValDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1498: error: object error is not
a member of package sys
      sys.error("Not a ClassDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1505: error: object error is not
a member of package sys
      sys.error("Not a DefDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1511: error: object error is not
a member of package sys
      sys.error("Not a ValDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1517: error: object error is not
a member of package sys
      sys.error("Not a Template: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1523: error: object error is not
a member of package sys
      sys.error("Not a ClassDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1529: error: object error is not
a member of package sys
      sys.error("Not a ModuleDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1535: error: object error is not
a member of package sys
      sys.error("Not a CaseDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Trees.scala:1541: error: object error is not
a member of package sys
      sys.error("Not a LabelDef: " + t + "/" + t.getClass)
          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Types.scala:91: error: object props is not a
member of package sys
  private final val printLubs = sys.props contains "scalac.debug.lub"
                                    ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Types.scala:92: error: object props is not a
member of package sys
  private final val traceTypeVars = sys.props contains "scalac.debug.tvar"
                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Types.scala:98: error: object props is not a
member of package sys
  private final val propagateParameterBoundsToTypeVars = sys.props contains "scalac.debug.prop-constraints"
                                                             ^
/scratch/trunk1/src/reflect/scala/reflect/internal/Types.scala:2021: error: object abs is not a
member of package math
            def index(x: Int): Int = math.abs(x % table.length)
                                          ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/HashSet.scala:19: error: object abs is
not a member of package math
  private def index(x: Int): Int = math.abs(x % table.length)
                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Origins.scala:78: error: object
addShutdownHook is not a member of package sys
    sys.addShutdownHook(counters.values foreach (_.purge()))
        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Position.scala:9: error: object
ClassTag is not a member of package reflect
import reflect.ClassTag
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Position.scala:10: error: object base
is not a member of package reflect
import reflect.base.Attachments
               ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/AbstractFile.scala:85: error: object internal
is not a member of package reflect
abstract class AbstractFile extends reflect.internal.AbstractFileApi with Iterable[AbstractFile] {
                                            ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Position.scala:45: error: not found:
type Attachments
  def withPos(newPos: Position): Attachments { type Pos = self.Pos } = newPos
                                 ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/SourceFile.scala:11: error: object
tailrec is not a member of package annotation
import annotation.tailrec
       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:238: error: not
found: value mutable
  private val qs = new mutable.HashMap[String, Quantity]
                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:121: error: not
found: value mutable
    val children = new mutable.ListBuffer[Quantity]
                       ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:196: error: value
update is not a member of scala.reflect.internal.util.Statistics.QuantMap[K,V]
      this(key) = elem
      ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/Statistics.scala:200: error: value
toSeq is not a member of scala.reflect.internal.util.Statistics.QuantMap[K,V]
      this.toSeq.sortWith(_._2 > _._2).map {
           ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/TraceSymbolActivity.scala:111:
error: type Traversable is not a member of package collection
  private def freq[T, U](xs: collection.Traversable[T])(fn: T => U): List[(U, Int)] = {
                                        ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/TraceSymbolActivity.scala:116:
error: type Map is not a member of package collection
  private def showMapFreq[T](xs: collection.Map[T, Traversable[_]])(showFn: T => String) {
                                            ^
/scratch/trunk1/src/reflect/scala/reflect/internal/util/TraceSymbolActivity.scala:162:
error: value decode is not a member of Nothing
      "%-15s %s".format(name.decode, {
                             ^
/scratch/trunk1/src/reflect/scala/reflect/makro/Infrastructure.scala:93: error: object
mutable is not a member of package collection
  val globalCache: collection.mutable.Map[Any, Any]
                              ^
/scratch/trunk1/src/reflect/scala/reflect/makro/Infrastructure.scala:102: error: object
mutable is not a member of package collection
  val cache: collection.mutable.Map[Any, Any]
                        ^
/scratch/trunk1/src/reflect/scala/reflect/makro/Reifiers.scala:89: error: object api is not a
member of package reflect
case class ReificationError(val pos: reflect.api.PositionApi, val msg: String) extends Throwable(msg)
                                             ^
/scratch/trunk1/src/reflect/scala/reflect/makro/Reifiers.scala:91: error: object api is not a
member of package reflect
case class UnexpectedReificationError(val pos: reflect.api.PositionApi, val msg: String, val cause:
Throwable = null) extends Throwable(msg, cause)
                                                       ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/JavaMirrors.scala:17: error: object mutable
is not a member of package collection
import collection.mutable.{ HashMap, ListBuffer }
                  ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/TwoWayCache.scala:4: error: object mutable
is not a member of package collection
import collection.mutable.WeakHashMap
                  ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/TwoWayCache.scala:16: error: not found: type WeakHashMap
  private val toScalaMap = new WeakHashMap[J, WeakReference[S]]
                               ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/TwoWayCache.scala:17: error: not found: type WeakHashMap
  private val toJavaMap = new WeakHashMap[S, WeakReference[J]]
                              ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/JavaMirrors.scala:794: error: not found:
type ListBuffer
      val tparams = new ListBuffer[TypeSymbol]
                        ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/SymbolLoaders.scala:6: error: object
mutable is not a member of package collection
import collection.mutable
       ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/SymbolLoaders.scala:106: error: not found:
value mutable
    private val negatives = mutable.Set[Name]() // Syncnote: Performance only, so need not be protected.
                            ^
/scratch/trunk1/src/reflect/scala/reflect/runtime/TwoWayCache.scala:36: error: not found:
value v
        v
        ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/AbstractFile.scala:11: warning: imported
`JFile' is permanently hidden by definition of type JFile in package io
import java.io.{ File => JFile }
                 ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/Directory.scala:12: warning: imported `JFile'
is permanently hidden by definition of type JFile in package io
import java.io.{ File => JFile }
                 ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/File.scala:16: warning: imported `JFile' is
permanently hidden by definition of type JFile in package io
import java.io.{ File => JFile }
                 ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/NoAbstractFile.scala:10: warning: imported
`JFile' is permanently hidden by definition of type JFile in package io
import java.io.{ File => JFile }
                 ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/Path.scala:12: warning: imported `JFile' is
permanently hidden by definition of type JFile in package io
import java.io.{ File => JFile }
                 ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/VirtualFile.scala:11: warning: imported
`JFile' is permanently hidden by definition of type JFile in package io
import java.io.{ File => JFile }
                 ^
/scratch/trunk1/src/reflect/scala/tools/nsc/io/ZipArchive.scala:11: warning: imported `JFile'
is permanently hidden by definition of type JFile in package io
import java.io.{ File => JFile }
                 ^
7 warnings found
107 errors found
Paul Phillips | 2 Aug 2012 23:53

Re: [scala-user] Caching implicit convertion: map.getOrElseUpdate throws unexpected exception

[Redirected to scala-language since I'm not on scala-user.]


Someone asked me recently why I'm against extending Function1 casually.  In this we have a pretty good example.  I'm not sure why you declared the map to be an implicit val:

  implicit val cache = mutable.Map[Int, String]()

I imagine you didn't do that with the intention of placing a competing implicit conversion in scope, because your Map is also an Int => String.  And for whatever reason it's not ambiguous - the val is preferred over the def I guess.

So this line:

  println(3.startsWith("whatever"))

Is using the cache directly to implicitly convert Int to String, i.e. it's calling cache.apply, not cache.getOrElseUpdate.


On Thu, Aug 2, 2012 at 2:33 PM, Bruno Woltzenlogel Paleo <bruno.wp <at> gmail.com> wrote:
Hi!

I would like to have an implicit conversion with caching of the results (in a mutable map). However, when called implicitly, the map's getOrElseUpdate throws an exception. The following is a simplification of my real code (in particular, in my real code the conversion is not between Int and String).


  import language.implicitConversions
  import collection.mutable.{Map => MMap}

  implicit val cache : MMap[Int, String] = MMap() 

  implicit def intToString(p: Int): String = cache.getOrElseUpdate(p, "number " + p.toString + " !"

  


  

// Everything works fine in the following line, 
// "false" is printed and (2 -> "number 2 !") is added to cache as expected

  println(intToString(2).startsWith("whatever")) 


// But when intToString is called implicitly, as in the line below, an exception is thrown

  println(3.startsWith("whatever")) // But here, surprisingly, an exception is thrown

   



The exception message is:

java.lang.ExceptionInInitializerError
at at.logic.skeptik.Main.main(Main.scala)
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)
Caused by: java.util.NoSuchElementException: key not found: 3
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:58)
at scala.collection.mutable.HashMap.apply(HashMap.scala:63)
at at.logic.skeptik.Main$.<init>(Main.scala:55)
at at.logic.skeptik.Main$.<clinit>(Main.scala)
at at.logic.skeptik.Main.main(Main.scala)
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)
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)


Is this a bug of the Scala (2.10.0-M5) language? It seems to me that getOrElseUpdate tries something and catches an exception if the key is not found, but for some reason the exception is escaping the catch when the call to getOrElseUpdate is made from within an implicitly called implicit conversion...

Or is this expected behavior? If so, what should I do to make getOrElseUpdate work also from within an implicit call?

I would also be happy to hear any alternative idea for implementing an implicit converter that caches and reuses the conversions.

Best regards,

Bruno



Paolo Giarrusso | 3 Aug 2012 04:20
Picon
Gravatar

Re: implicits and type erasures in scalabeans



Il giorno giovedì 2 agosto 2012 01:01:22 UTC+2, AndyS ha scritto:
Hi All - I'm a scala noob and could do with a hint on this, I suspect this is a type erasure style problem but am only just learning the scala type system so thought I'd check with the experts....

I've been playing with the cool scalabeans framework and looking to deserialize a config file into a scala class instance and I wanted to use a neat implicit for the class type based on the return type rather then explicitly pass the classOf as the argument. However the implicit type seems to get swallowed into a java.lang.Object on route:

so the sweetConfig call fails with a java.lang.ClassCastException: java.lang.Object cannot be cast to SystemConfig


import org.scalatest.FunSuite
import java.io.File
import org.scalastuff.scalabeans.Preamble._

class ConfigTest extends FunSuite{

  test("Loading example-config"){

    var uglyConfig: SystemConfig = deserializeConfigWithClassOf(classOf[SystemConfig],new File("example-config.conf"))
    var sweetConfig: SystemConfig = deserializeConfig(new File("example-config.conf"))

You should write instead

var sweetConfig = deserializeConfig[SystemConfig](new File("example-config.conf"))

which has as much typing but will in fact work (disclaimer: I didn't test it). In deserializeConfigWithClassOf, you pass classOf[T] just to allow Scalac to deduce T; just giving up on type inference works better.

Now, you might still wonder what's happening in your code?
I guess, since the return type is SystemConfig, you would like deserializeConfig() to become deserializeConfig[SystemConfig]. I see why this looks reasonable; however, scalac will in fact deduce T = Nothing. Since Nothing is a subtype of every type, the code typechecks.

Nothing is a type only in Scala, but it does not exist in Java, so it's represented by Object at runtime, like Any and AnyRef; that's why the Class[_] instance you see is an instance of Object.

With Scala 2.10 and TypeTags, which preserve more information, it's easier to verify this:

import scala.reflect.runtime.universe._
def f[T <: AnyRef: TypeTag]: T = {println(typeTag[T]); null.asInstanceOf[T]}

scala> f: String
TypeTag[Nothing]
res1: String = null

But in general, it's often simpler to just pass -Xprint:typer to the compiler, to make it print the source code as transformed by type inference, to be able to examine it. In the example above, you would see what T is deduced to be (in this case, I believe, Nothing).

Best regards
Paolo G. Giarrusso

any advice on cutting out the explicit classOf[] or how to remove the asInstanceOf[] cast would be appreciated!
About asInstanceOf, it does not seem possible to remove it with the current version of ScalaBeans. newInstance returns just AnyRef, not T. I believe you should ask the author to change the library; even with raw Java reflection, classOf[T].newInstance will have T as static type, so no cast is needed! So also Scalabeans should offer such safety.

Unfortunately, I don't know myself a better library to recommend.

Best,
Paolo Giarrusso
Josh Suereth | 3 Aug 2012 13:54
Picon
Gravatar

Re: when namespaces collide

Can we open a bug for that?  Is there one?  

Mine had to do with having a relative scala package destroying Tuple extractor usage, even with manual _root_ imports.    I'll try to deduplicate when I have the chance.

On Aug 2, 2012 5:27 PM, "Paul Phillips" <paulp <at> improving.org> wrote:
If you have a strong stomach, see the attached files, which are the output from attempting to compile each of (compiler, library, reflect) after doing this:

mkdir $(find /scala/trunk/src/{library,compiler,reflect}/scala -maxdepth 1 -type d |xargs basename |sort -u)

Which gives us these empty directories:

  annotation beans collection compat concurrent io math parallel   
  ref reflect runtime scala sys testing text tools util xml

Not only do all of them explode horribly, 2/3 crash (in different ways) which strongly suggests the compiler is preferring these empty directories to its own scala subpackages not only for resolving the identifiers in source code but during its operation.  Here's what we can see it admit to before the forces of crashiness overwhelm the defenses.

Remember, the only thing making all this happen is that there are some empty subdirectories of my current directory.


Global.scala:57: error: not found: type Mirror
Contexts.scala:97: error: not found: type Tree
Contexts.scala:115: error: not found: type Type
Contexts.scala:115: error: not found: type Tree
Macros.scala:44: error: not found: value definitions
ExprUtils.scala:10: error: not found: value Literal
ExprUtils.scala:12: error: not found: value Literal
ExprUtils.scala:14: error: not found: value Literal
ExprUtils.scala:16: error: not found: value Literal
ExprUtils.scala:18: error: not found: value Literal
ExprUtils.scala:20: error: not found: value Literal
ExprUtils.scala:22: error: not found: value Literal
ExprUtils.scala:24: error: not found: value Literal
ExprUtils.scala:26: error: not found: value Literal
ExprUtils.scala:28: error: not found: value Literal
ExprUtils.scala:30: error: not found: value Literal
ExprUtils.scala:32: error: not found: value Literal
ExprUtils.scala:34: error: not found: value Literal
Contexts.scala:397: error: not found: type TypeError
CompilationUnits.scala:35: error: not found: type Tree
Macros.scala:49: error: not found: value perRunCaches
Reifiers.scala:14: error: not found: value definitions
Reifiers.scala:39: error: not found: value ExprSplice
Reifiers.scala:40: error: not found: value Select
SymbolTables.scala:11: error: not found: value definitions
SymbolTables.scala:12: error: not found: value Flag
SymbolTables.scala:23: error: not found: type Tree
Extractors.scala:8: error: not found: value definitions
Extractors.scala:9: error: not found: value Flag
Extractors.scala:194: error: not found: type Tree
Extractors.scala:194: error: not found: type TermName
Extractors.scala:194: error: not found: type Tree
Extractors.scala:194: error: not found: type Tree
Reifiers.scala:65: error: not found: value binding
Reifiers.scala:66: error: not found: value showRaw
Extractors.scala:213: error: not found: type Tree
Extractors.scala:213: error: not found: type TermName
Extractors.scala:213: error: not found: type Tree
Extractors.scala:213: error: not found: type Tree
Reifiers.scala:67: error: not found: value binding
Reifiers.scala:68: error: not found: value showRaw
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Type
Extractors.scala:127: error: not found: type Tree
Extractors.scala:127: error: not found: type Tree
Reifiers.scala:75: error: not found: value symtab
Extractors.scala:154: error: not found: type Tree
Extractors.scala:154: error: not found: type Tree
Extractors.scala:154: error: not found: type Type
GenericTraversableTemplate.scala:29: error: not found: type uncheckedVariance
ScalaNumberProxy.scala:23: error: not found: type ScalaNumericConversions
GenericParTemplate.scala:28: error: not found: type uncheckedVariance
TraversableOnce.scala:257: error: not found: type uV
TraversableOnce.scala:257: error: not found: type uV
TraversableOnce.scala:232: error: not found: type ClassTag
ParMap.scala:34: error: not found: type GenericParMapTemplate
ParMapLike.scala:39: error: not found: type Growable
ParMapLike.scala:40: error: not found: type Shrinkable
TrieMap.scala:641: error: not found: type ParTrieMap
TrieMap.scala:435: error: not found: type ImmutableListMap
TrieMap.scala:437: error: not found: value ImmutableListMap
TrieMap.scala:438: error: not found: value ImmutableListMap
TrieMap.scala:638: error: not found: type Hashing
TrieMap.scala:644: error: not found: value Hashing
TrieMap.scala:921: error: not found: type Hashing
ParMap.scala:71: error: not found: type ParMapFactory
ParMap.scala:76: error: not found: type CanCombineFrom
TrieMap.scala:651: error: not found: type Hashing
TrieMap.scala:658: error: not found: value Hashing
TrieMap.scala:679: error: not found: type Hashing
TrieMap.scala:783: error: not found: type ParTrieMap
Position.scala:39: error: not found: type PositionApi
Statistics.scala:193: error: not found: value mutable
Statistics.scala:193: error: not found: value mutable
BaseTypeSeqs.scala:135: error: not found: value max
Chars.scala:54: error: not found: type switch
Chars.scala:89: error: not found: type switch
ClassfileConstants.scala:341: error: not found: type switch
Definitions.scala:933: error: not found: value meta
Definitions.scala:934: error: not found: value meta
Definitions.scala:935: error: not found: value meta
Definitions.scala:936: error: not found: value meta
Definitions.scala:937: error: not found: value meta
Definitions.scala:938: error: not found: value meta
Definitions.scala:939: error: not found: value meta
Definitions.scala:940: error: not found: value meta
Definitions.scala:941: error: not found: value meta
Definitions.scala:942: error: not found: value meta
UnPickler.scala:322: error: not found: type switch
UnPickler.scala:401: error: not found: type switch
UnPickler.scala:460: error: not found: type ListBuffer
UnPickler.scala:461: error: not found: type ListBuffer
Printers.scala:517: error: not found: value EOL
Printers.scala:521: error: not found: value EOL
Trees.scala:1412: error: not found: type ListBuffer
Trees.scala:1420: error: not found: type ListBuffer
Position.scala:45: error: not found: type Attachments
Statistics.scala:238: error: not found: value mutable
Statistics.scala:121: error: not found: value mutable
TwoWayCache.scala:16: error: not found: type WeakHashMap
TwoWayCache.scala:17: error: not found: type WeakHashMap
JavaMirrors.scala:794: error: not found: type ListBuffer
SymbolLoaders.scala:106: error: not found: value mutable
TwoWayCache.scala:36: error: not found: value v

Andrew Sorrell | 3 Aug 2012 16:37

Re: Re: implicits and type erasures in scalabeans

Awesome, that worked a treat + thanks for all the detail here too, useful stuff to know! 

On Fri, Aug 3, 2012 at 3:20 AM, Paolo Giarrusso <p.giarrusso <at> gmail.com> wrote:


Il giorno giovedì 2 agosto 2012 01:01:22 UTC+2, AndyS ha scritto:
Hi All - I'm a scala noob and could do with a hint on this, I suspect this is a type erasure style problem but am only just learning the scala type system so thought I'd check with the experts....

I've been playing with the cool scalabeans framework and looking to deserialize a config file into a scala class instance and I wanted to use a neat implicit for the class type based on the return type rather then explicitly pass the classOf as the argument. However the implicit type seems to get swallowed into a java.lang.Object on route:

so the sweetConfig call fails with a java.lang.ClassCastException: java.lang.Object cannot be cast to SystemConfig


import org.scalatest.FunSuite
import java.io.File
import org.scalastuff.scalabeans.Preamble._

class ConfigTest extends FunSuite{

  test("Loading example-config"){

    var uglyConfig: SystemConfig = deserializeConfigWithClassOf(classOf[SystemConfig],new File("example-config.conf"))
    var sweetConfig: SystemConfig = deserializeConfig(new File("example-config.conf"))

You should write instead

var sweetConfig = deserializeConfig[SystemConfig](new File("example-config.conf"))

which has as much typing but will in fact work (disclaimer: I didn't test it). In deserializeConfigWithClassOf, you pass classOf[T] just to allow Scalac to deduce T; just giving up on type inference works better.

Now, you might still wonder what's happening in your code?
I guess, since the return type is SystemConfig, you would like deserializeConfig() to become deserializeConfig[SystemConfig]. I see why this looks reasonable; however, scalac will in fact deduce T = Nothing. Since Nothing is a subtype of every type, the code typechecks.

Nothing is a type only in Scala, but it does not exist in Java, so it's represented by Object at runtime, like Any and AnyRef; that's why the Class[_] instance you see is an instance of Object.

With Scala 2.10 and TypeTags, which preserve more information, it's easier to verify this:

import scala.reflect.runtime.universe._
def f[T <: AnyRef: TypeTag]: T = {println(typeTag[T]); null.asInstanceOf[T]}

scala> f: String
TypeTag[Nothing]
res1: String = null

But in general, it's often simpler to just pass -Xprint:typer to the compiler, to make it print the source code as transformed by type inference, to be able to examine it. In the example above, you would see what T is deduced to be (in this case, I believe, Nothing).

Best regards
Paolo G. Giarrusso

any advice on cutting out the explicit classOf[] or how to remove the asInstanceOf[] cast would be appreciated!
About asInstanceOf, it does not seem possible to remove it with the current version of ScalaBeans. newInstance returns just AnyRef, not T. I believe you should ask the author to change the library; even with raw Java reflection, classOf[T].newInstance will have T as static type, so no cast is needed! So also Scalabeans should offer such safety.

Unfortunately, I don't know myself a better library to recommend.

Best,
Paolo Giarrusso

Paul Phillips | 3 Aug 2012 21:14

Re: when namespaces collide



On Fri, Aug 3, 2012 at 4:54 AM, Josh Suereth <joshua.suereth <at> gmail.com> wrote:

Mine had to do with having a relative scala package destroying Tuple extractor usage, even with manual _root_ imports.    I'll try to deduplicate when I have the chance.

I know too well why that is.  However I tried once long ago to construct all internal names with _root_ and it didn't work for reasons I couldn't figure out at the time.  But clearly the fact that we synthesize trees like Select(Ident("scala"), "Tuple2") is going to break down when scala is shadowed.

I can straightforwardly deal with the interactions I'm describing in this thread in all cases except if "scala" itself is shadowed.  The changes necessary to really deal with that, I don't see them happening.  I'd much rather disallow or at least openly discourage scala as a package name.  One has to pick one's time-consuming battles.


Gmane