Skip to content

Instantly share code, notes, and snippets.

@retronym
Created May 21, 2014 08:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save retronym/e533b3f35d6b5288c36b to your computer and use it in GitHub Desktop.
Save retronym/e533b3f35d6b5288c36b to your computer and use it in GitHub Desktop.
SI-8607
--- sandbox/good.log 2014-05-21 07:08:00.000000000 +0200
+++ sandbox/bad.log 2014-05-21 07:08:10.000000000 +0200
@@ -1,693 +1,775 @@
[running phase parser on t8607.scala]
[running phase namer on t8607.scala]
[running phase packageobjects on t8607.scala]
[running phase typer on t8607.scala]
[running phase patmat on t8607.scala]
[running phase superaccessors on t8607.scala]
[running phase extmethods on t8607.scala]
[running phase pickler on t8607.scala]
[running phase refchecks on t8607.scala]
[running phase uncurry on t8607.scala]
[running phase tailcalls on t8607.scala]
[running phase specialize on t8607.scala]
[running phase explicitouter on t8607.scala]
[log explicitouter(->erasure)] [context] ++ t8607.scala / term <empty>
[log explicitouter(->erasure)] [context] ++ t8607.scala / Ident(<empty>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / term p1
[log explicitouter(->erasure)] [context] ++ t8607.scala / Ident(p1)
[log explicitouter(->erasure)] [context] ++ t8607.scala / type B
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local B>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local B>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / term $init$
[log explicitouter(->erasure)] [context] ++ t8607.scala / term a
[log explicitouter(->erasure)] [context] ++ t8607.scala / type C
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local C>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local C>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / term value
[log explicitouter(->erasure)] [context] ++ t8607.scala / term value
[log explicitouter(->erasure)] [context] ++ t8607.scala / term <init>
[log explicitouter(->erasure)] [context] ++ t8607.scala / term value
[log explicitouter(->erasure)] [context] ++ t8607.scala / term hashCode
[log explicitouter(->erasure)] [context] ++ t8607.scala / term equals
[log explicitouter(->erasure)] [context] ++ t8607.scala / term x$1
[log explicitouter(->erasure)] [context] ++ t8607.scala / type C
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local C>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local C>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / term <init>
[log explicitouter(->erasure)] [context] ++ t8607.scala / term hashCode$extension
[log explicitouter(->erasure)] [context] ++ t8607.scala / term $this
[log explicitouter(->erasure)] [context] ++ t8607.scala / term equals$extension
[log explicitouter(->erasure)] [context] ++ t8607.scala / term $this
[log explicitouter(->erasure)] [context] ++ t8607.scala / term x$1
[log explicitouter(->erasure)] [context] ++ t8607.scala / term x1
[log explicitouter(->erasure)] [context] ++ t8607.scala / term C$1
[log explicitouter(->erasure)] [context] ++ t8607.scala / type Test
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local Test>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / Template(value <local Test>)
[log explicitouter(->erasure)] [context] ++ t8607.scala / term <init>
[log explicitouter(->erasure)] [context] ++ t8607.scala / term main
[log explicitouter(->erasure)] [context] ++ t8607.scala / term args
[log explicitouter(->erasure)] [context] ++ t8607.scala / term c
[running phase erasure on t8607.scala]
[log erasure] [context] ++ NoCompilationUnit / Import(value <import>)
[log erasure] [context] ++ NoCompilationUnit / Import(value <import>)
[log erasure] [context] ++ NoCompilationUnit / Import(value <import>)
[log erasure] [context] ++ t8607.scala / EmptyTree
[log erasure] [context] ++ t8607.scala / term <empty>
[log erasure] [context] ++ t8607.scala / Ident(<empty>)
[log erasure] [context] ++ t8607.scala / term p1
[log erasure] [context] ++ t8607.scala / Ident(p1)
[log erasure] defs of trait B = Scope{
<method> def $init$(): scala.this.Unit;
<method> <triedcooking> def a(): scala.this.Any
}
[log erasure] [context] ++ t8607.scala / type B
[log erasure] [context] ++ t8607.scala / Template(value <local B>)
[log erasure] [context] ++ t8607.scala / term $init$
[log erasure] [context] ++ t8607.scala / term a
[log erasure] defs of class C = Scope{
<method> <stable> <accessor> <paramaccessor> <triedcooking> val value(): scala.this.Int;
<paramaccessor> <triedcooking> private[this] val value : scala.this.Int;
<method> <triedcooking> def <init>(<param> value: scala.this.Int): p1.this.C;
<method> override <synthetic> def hashCode(): scala.this.Int;
<method> override <synthetic> def equals(<param> <synthetic> <triedcooking> x$1: scala.this.Any): scala.this.Boolean
}
[log erasure] [context] ++ t8607.scala / type C
[log erasure] Considering for erasure clash:
Cursor(in class C) {
high <method> <triedcooking> def hashCode(): scala.this.Int in class Any
erased ()scala.this.Int
infos parser: ()scala.this.Int
low <method> override <synthetic> def hashCode(): scala.this.Int at line 6
erased ()scala.this.Int
infos typer: ()scala.this.Int, posterasure: ()scala.this.Int
}
[log erasure] Considering for erasure clash:
Cursor(in class C) {
high <method> <triedcooking> def equals(<param> <synthetic> x$1: scala.this.Any): scala.this.Boolean in class Any
erased (<param> <synthetic> x$1: lang.this.Object)scala.this.Boolean
infos parser: (<param> <synthetic> x$1: scala.this.Any)scala.this.Boolean
low <method> override <synthetic> def equals(<param> <synthetic> <triedcooking> x$1: scala.this.Any): scala.this.Boolean at line 6
erased (<param> <synthetic> <triedcooking> x$1: lang.this.Object)scala.this.Boolean
infos typer: (<param> <synthetic> <triedcooking> x$1: scala.this.Any)scala.this.Boolean, posterasure: (<param> <synthetic> <triedcooking> x$1: lang.this.Object)scala.this.Boolean
}
[log erasure] [context] ++ t8607.scala / Template(value <local C>)
[log erasure] [context] ++ t8607.scala / term value
[log erasure] [context] ++ t8607.scala / term value
[log erasure] [context] ++ t8607.scala / term <init>
[log erasure] [context] ++ t8607.scala / term value
[log erasure] [context] ++ t8607.scala / term hashCode
[log erasure] [context] ++ t8607.scala / term equals
[log erasure] [context] ++ t8607.scala / term x$1
[log erasure] defs of module class C = Scope{
<method> def <init>(): p1.this.C.type;
<method> final <synthetic> <triedcooking> def hashCode$extension(<param> $this: p1.this.C): scala.this.Int;
<method> final <synthetic> <triedcooking> def equals$extension(<param> $this: p1.this.C,<param> <synthetic> <triedcooking> x$1: scala.this.Any): scala.this.Boolean
}
[log erasure] [context] ++ t8607.scala / type C
[log erasure] [context] ++ t8607.scala / Template(value <local C>)
[log erasure] [context] ++ t8607.scala / term <init>
[log erasure] [context] ++ t8607.scala / term hashCode$extension
[log erasure] [context] ++ t8607.scala / term $this
[log erasure] [context] ++ t8607.scala / term equals$extension
[log erasure] [context] ++ t8607.scala / term $this
[log erasure] [context] ++ t8607.scala / term x$1
[log erasure] [context] ++ t8607.scala / term x1
[log erasure] [context] ++ t8607.scala / term C$1
[log erasure] defs of module class Test = Scope{
<method> def <init>(): <empty>.this.Test.type;
<method> def main(<param> args: scala.this.Array[lang.this.String]): scala.this.Unit
}
[log erasure] [context] ++ t8607.scala / type Test
[log erasure] [context] ++ t8607.scala / Template(value <local Test>)
[log erasure] [context] ++ t8607.scala / term <init>
[log erasure] [context] ++ t8607.scala / term main
[log erasure] [context] ++ t8607.scala / term args
[log erasure] [context] ++ t8607.scala / term c
+[log erasure] casting c:c.type to p1.this.C at phase: erasure
+[log erasure] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
+[log erasure] checkKindBounds0(List(type T0), List(p1.this.C), <noprefix>, <none>, true)
[log erasure(->posterasure ->posterasure)] trait B in package class p1 impl class is B$class
[log erasure(->posterasure)] LazyImplClassType completing implementation class B$class
[log erasure(->posterasure)] LazyImplClassType calculating decls for implementation class B$class
[log erasure(->posterasure)] Destructively modifying owner of method $init$ from trait B to implementation class B$class
[log erasure(->posterasure)] Cloned a from trait B into implClass p1.B$class
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Template
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Import(value <import>)
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Import(value <import>)
[log erasure(->posterasure ->explicitouter)] [class] >> scala.inline
[log erasure(->posterasure ->explicitouter)] [class] << scala.inline
[log erasure(->posterasure ->explicitouter)] ClassfileLoader setting inline.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/inline.class
[log erasure(->posterasure ->explicitouter)] [class] >> scala.annotation.unspecialized
[log erasure(->posterasure ->explicitouter)] [class] << scala.annotation.unspecialized
[log erasure(->posterasure ->explicitouter)] ClassfileLoader setting unspecialized.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/annotation/unspecialized.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichByte
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichByte
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichByte.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichByte.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichShort
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichShort
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichShort.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichShort.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichInt
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichInt
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichInt.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichInt.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichChar
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichChar
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichChar.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichChar.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichLong
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichLong
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichLong.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichLong.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichFloat
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichFloat
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichFloat.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichFloat.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichDouble
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichDouble
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichDouble.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichDouble.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.runtime.RichBoolean
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.runtime.RichBoolean
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting RichBoolean.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/RichBoolean.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.collection.mutable.WrappedArray
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.collection.mutable.WrappedArray
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting WrappedArray.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/mutable/WrappedArray.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.collection.parallel.mutable.package
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.collection.parallel.mutable.package
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting package.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/parallel/mutable/package.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.collection.immutable.WrappedString
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.collection.immutable.WrappedString(scala.this.deprecatedInheritance("Inherit from StringLike instead of WrappedString.", "2.11.0"))
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting WrappedString.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/immutable/WrappedString.class
[log erasure(->posterasure ->explicitouter ->parser)] [class] >> scala.collection.generic.CanBuildFrom
[log erasure(->posterasure ->explicitouter ->parser)] [class] << scala.collection.generic.CanBuildFrom(annotation.this.implicitNotFound("Cannot construct a collection of type ${To} with elements of type ${Elem} based on a collection of type ${From}."))
[log erasure(->posterasure ->explicitouter ->parser)] ClassfileLoader setting CanBuildFrom.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/generic/CanBuildFrom.class
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] >> scala.collection.IndexedSeq
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] << scala.collection.IndexedSeq
[log erasure(->posterasure ->explicitouter ->typer ->parser)] ClassfileLoader setting IndexedSeq.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/IndexedSeq.class
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] >> scala.collection.immutable.List
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] << scala.collection.immutable.List
[log erasure(->posterasure ->explicitouter ->typer ->parser)] ClassfileLoader setting List.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/immutable/List.class
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] >> scala.Tuple2
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] << scala.Tuple2(scala.this.deprecatedInheritance("Tuples will be made final in a future version.", "2.11.0"))
[log erasure(->posterasure ->explicitouter ->typer ->parser)] ClassfileLoader setting Tuple2.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/Tuple2.class
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] >> scala.Tuple3
[log erasure(->posterasure ->explicitouter ->typer ->parser)] [class] << scala.Tuple3(scala.this.deprecatedInheritance("Tuples will be made final in a future version.", "2.11.0"))
[log erasure(->posterasure ->explicitouter ->typer ->parser)] ClassfileLoader setting Tuple3.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/Tuple3.class
[log erasure(->posterasure ->parser)] [class] >> scala.reflect.Manifest
[log erasure(->posterasure ->parser)] [class] << scala.reflect.Manifest(annotation.this.implicitNotFound("No Manifest available for ${T}."))
[log erasure(->posterasure ->parser)] ClassfileLoader setting Manifest.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/reflect/Manifest.class
[log erasure(->posterasure ->parser)] [class] >> scala.reflect.ClassTag
[log erasure(->posterasure ->parser)] [class] << scala.reflect.ClassTag(annotation.this.implicitNotFound("No ClassTag available for ${T}"))
[log erasure(->posterasure ->parser)] ClassfileLoader setting ClassTag.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/reflect/ClassTag.class
[log erasure(->posterasure ->parser)] [class] >> scala.reflect.OptManifest
[log erasure(->posterasure ->parser)] [class] << scala.reflect.OptManifest
[log erasure(->posterasure ->parser)] ClassfileLoader setting OptManifest.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/reflect/OptManifest.class
[log erasure(->posterasure)] [class] >> scala.annotation.elidable
[log erasure(->posterasure)] [class] << scala.annotation.elidable
[log erasure(->posterasure)] ClassfileLoader setting elidable.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/annotation/elidable.class
[log erasure(->posterasure ->parser)] [class] >> scala.collection.immutable.StringOps
[log erasure(->posterasure ->parser)] [class] << scala.collection.immutable.StringOps
[log erasure(->posterasure ->parser)] ClassfileLoader setting StringOps.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/immutable/StringOps.class
[log erasure(->posterasure ->typer ->parser)] [class] >> scala.runtime.Tuple2Zipped
[log erasure(->posterasure ->typer ->parser)] [class] << scala.runtime.Tuple2Zipped
[log erasure(->posterasure ->typer ->parser)] ClassfileLoader setting Tuple2Zipped.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/Tuple2Zipped.class
[log erasure(->posterasure ->typer ->parser)] [class] >> scala.runtime.Tuple3Zipped
[log erasure(->posterasure ->typer ->parser)] [class] << scala.runtime.Tuple3Zipped
[log erasure(->posterasure ->typer ->parser)] ClassfileLoader setting Tuple3Zipped.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/runtime/Tuple3Zipped.class
[log erasure(->posterasure ->parser)] [class] >> scala.collection.mutable.ArrayOps
[log erasure(->posterasure ->parser)] [class] << scala.collection.mutable.ArrayOps(scala.this.deprecatedInheritance("ArrayOps will be sealed to facilitate greater flexibility with array/collections integration in future releases.", "2.11.0"))
[log erasure(->posterasure ->parser)] ClassfileLoader setting ArrayOps.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/collection/mutable/ArrayOps.class
[log erasure(->posterasure ->parser)] [class] >> java.lang.Byte
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Byte]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Byte]
[log erasure(->posterasure ->parser)] [class] >> java.lang.NumberFormatException
[log erasure(->posterasure ->parser)] ClassfileLoader setting NumberFormatException.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/NumberFormatException.class)
[log erasure(->posterasure ->parser)] ClassfileLoader setting Byte.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Byte.class)
[log erasure(->posterasure ->parser)] [class] >> java.lang.Short
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Short]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Short]
[log erasure(->posterasure ->parser)] ClassfileLoader setting Short.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Short.class)
[log erasure(->posterasure ->parser)] [class] >> java.lang.Character
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Character]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Character]
[log erasure(->posterasure ->parser)] [class] << java.lang.Character.isJavaLetter(lang.this.Deprecated, scala.this.deprecated("see corresponding Javadoc for more information.", ""))
[log erasure(->posterasure ->parser)] [class] << java.lang.Character.isJavaLetterOrDigit(lang.this.Deprecated, scala.this.deprecated("see corresponding Javadoc for more information.", ""))
[log erasure(->posterasure ->parser)] [class] << java.lang.Character.isSpace(lang.this.Deprecated, scala.this.deprecated("see corresponding Javadoc for more information.", ""))
[log erasure(->posterasure ->parser)] ClassfileLoader setting Character.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Character.class)
[log erasure(->posterasure ->parser)] [class] >> java.lang.Integer
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Integer]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Integer]
[log erasure(->posterasure ->parser)] ClassfileLoader setting Integer.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Integer.class)
[log erasure(->posterasure ->parser)] [class] >> java.lang.Long
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Long]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Long]
[log erasure(->posterasure ->parser)] ClassfileLoader setting Long.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Long.class)
[log erasure(->posterasure ->parser)] [class] >> java.lang.Float
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Float]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Float]
[log erasure(->posterasure ->parser)] ClassfileLoader setting Float.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Float.class)
[log erasure(->posterasure ->parser)] [class] >> java.lang.Double
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Double]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Double]
[log erasure(->posterasure ->parser)] ClassfileLoader setting Double.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Double.class)
[log erasure(->posterasure ->parser)] [class] >> java.lang.Boolean
[log erasure(->posterasure ->parser)] new existential: lang.this.Comparable[lang.this.Boolean]
[log erasure(->posterasure ->parser)] raw type from class Class: lang.this.Class[?0] forSome { type ?0 }
[log erasure(->posterasure ->parser)] new existential: lang.this.Class[lang.this.Boolean]
[log erasure(->posterasure ->parser)] ClassfileLoader setting Boolean.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Boolean.class)
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Import(value <import>)
[log erasure(->posterasure)] [context] ++ t8607.scala / term <empty>
[log erasure(->posterasure)] [context] ++ t8607.scala / term <empty>
[log erasure(->posterasure)] [context] ++ t8607.scala / term p1
[log erasure(->posterasure)] [context] ++ t8607.scala / type B
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local B>)
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local B>)
[log erasure(->posterasure)] [context] ++ t8607.scala / term a
[log erasure(->posterasure)] [context] ++ t8607.scala / type C
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local C>)
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local C>)
[log erasure(->posterasure)] [context] ++ t8607.scala / term value
[log erasure(->posterasure)] [context] ++ t8607.scala / term value
[log erasure(->posterasure)] adapting C.this.value :scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] [context] ++ t8607.scala / term <init>
[log erasure(->posterasure)] [context] ++ t8607.scala / term <init>
[log erasure(->posterasure)] [context] ++ t8607.scala / term value
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(primary constructor AnyVal)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method $init$)
[log erasure(->posterasure)] erasure casts from p1.C to p1.B$class
[log erasure(->posterasure)] casting C.this:p1.C to p1.B$class at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(p1.B$class), <noprefix>, <none>, true)
[log erasure(->posterasure)] [context] ++ t8607.scala / term hashCode
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method hashCode$extension)
[log erasure(->posterasure)] adapting C.this:p1.C : List(lang.this.Object, p1.this.B) to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting C.this:p1.C : List(lang.this.Object, p1.this.B) to p1.C
[log erasure(->posterasure)] casting C.this.value():null to ErasedValueType(class C, scala.this.Int) at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(getter value)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(ErasedValueType(class C, scala.this.Int)), <noprefix>, <none>, true)
[log erasure(->posterasure)] unboxing This: p1.C as a ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting C.this.value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]():ErasedValueType(class C, scala.this.Int) : List() to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting p1.this.C.hashCode$extension(C.this.value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]()):scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] [context] ++ t8607.scala / term equals
[log erasure(->posterasure)] [context] ++ t8607.scala / term x$1
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method equals$extension)
[log erasure(->posterasure)] adapting C.this:p1.C : List(lang.this.Object, p1.this.B) to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting C.this:p1.C : List(lang.this.Object, p1.this.B) to p1.C
[log erasure(->posterasure)] casting C.this.value():null to ErasedValueType(class C, scala.this.Int) at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(getter value)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(ErasedValueType(class C, scala.this.Int)), <noprefix>, <none>, true)
[log erasure(->posterasure)] unboxing This: p1.C as a ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting C.this.value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]():ErasedValueType(class C, scala.this.Int) : List() to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting x$1:lang.this.Object : List() to lang.this.Object
[log erasure(->posterasure)] adapting p1.this.C.equals$extension(C.this.value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)](), x$1):scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] [context] ++ t8607.scala / type C
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local C>)
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local C>)
[log erasure(->posterasure)] [context] ++ t8607.scala / term <init>
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(primary constructor Object)
[log erasure(->posterasure)] [context] ++ t8607.scala / term hashCode$extension
[log erasure(->posterasure)] [context] ++ t8607.scala / term $this
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method hashCode)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(getter value)
[log erasure(->posterasure)] erasure casts from ErasedValueType(class C, scala.this.Int) to scala.this.Int
[log erasure(->posterasure)] casting $this:ErasedValueType(class C, scala.this.Int) to scala.this.Int at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(scala.this.Int), <noprefix>, <none>, true)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply
[log erasure(->posterasure)] adapting $this.$asInstanceOf[scala.this.Int]():scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] boxing Ident($this): ErasedValueType(class C, scala.this.Int) into owner class C: p1.this.C
[log erasure(->posterasure -><some phase>)] [class] >> scala.AnyValCompanion
[log erasure(->posterasure -><some phase>)] [class] << scala.AnyValCompanion
[log erasure(->posterasure -><some phase>)] ClassfileLoader setting AnyValCompanion.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/AnyValCompanion.class
[log erasure(->posterasure -><some phase>)] [class] >> scala.Specializable
[log erasure(->posterasure -><some phase>)] [class] << scala.Specializable
[log erasure(->posterasure -><some phase>)] ClassfileLoader setting Specializable.associatedFile = /Users/jason/code/scala/build/quick/classes/library/scala/Specializable.class
[log erasure(->posterasure ->parser)] [class] >> java.lang.Number
[log erasure(->posterasure ->parser)] ClassfileLoader setting Number.associatedFile = /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Classes/classes.jar(java/lang/Number.class)
[log erasure(->posterasure)] boxing Apply(getter value): scala.this.Int into owner class Object: lang.this.Object
[log erasure(->posterasure)] adapting scala.Int.box(new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value()).hashCode():scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] [context] ++ t8607.scala / term equals$extension
[log erasure(->posterasure)] [context] ++ t8607.scala / term $this
[log erasure(->posterasure)] [context] ++ t8607.scala / term x$1
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method $amp$amp)
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] [context] ++ t8607.scala / term x1
[log erasure(->posterasure)] adapting x$1:lang.this.Object : List() to lang.this.Object
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method isInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(p1.C), <noprefix>, <none>, true)
[log erasure(->posterasure)] adapting x1.$isInstanceOf[p1.C]():scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method matchEnd4)
[log erasure(->posterasure)] adapting true:scala.this.Boolean(true) : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting matchEnd4(true):scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method case6)
[log erasure(->posterasure)] adapting case6():scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting matchEnd4(true):scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting case6():scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting if (x1.$isInstanceOf[p1.C]())
matchEnd4(true)
else
case6():scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method matchEnd4)
[log erasure(->posterasure)] adapting false:scala.this.Boolean(false) : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting matchEnd4(false):scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting x:scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] [context] ++ t8607.scala / term C$1
[log erasure(->posterasure)] adapting x$1:lang.this.Object : List() to lang.this.Object
[log erasure(->posterasure)] adapting x$1:lang.this.Object : List() to p1.C
[log erasure(->posterasure)] casting x$1:lang.this.Object to p1.C at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(p1.C), <noprefix>, <none>, true)
[log erasure(->posterasure)] casting x$1.$asInstanceOf[p1.C]().value():null to ErasedValueType(class C, scala.this.Int) at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(getter value)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(ErasedValueType(class C, scala.this.Int)), <noprefix>, <none>, true)
[log erasure(->posterasure)] unboxing Ident: lang.this.Object as a ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method $asInstanceOf)
[log erasure(->posterasure)] adapting x$1.$asInstanceOf[p1.C]().value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]():ErasedValueType(class C, scala.this.Int) : List() to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method $eq$eq)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(getter value)
[log erasure(->posterasure)] erasure casts from ErasedValueType(class C, scala.this.Int) to scala.this.Int
[log erasure(->posterasure)] casting $this:ErasedValueType(class C, scala.this.Int) to scala.this.Int at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(scala.this.Int), <noprefix>, <none>, true)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply
[log erasure(->posterasure)] adapting $this.$asInstanceOf[scala.this.Int]():scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] boxing Ident($this): ErasedValueType(class C, scala.this.Int) into owner class C: p1.this.C
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(getter value)
[log erasure(->posterasure)] erasure casts from ErasedValueType(class C, scala.this.Int) to scala.this.Int
[log erasure(->posterasure)] casting C$1:ErasedValueType(class C, scala.this.Int) to scala.this.Int at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(scala.this.Int), <noprefix>, <none>, true)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply
[log erasure(->posterasure)] adapting C$1.$asInstanceOf[scala.this.Int]():scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] boxing Ident(C$1): ErasedValueType(class C, scala.this.Int) into owner class C: p1.this.C
[log erasure(->posterasure)] adapting new p1.C.<init>(C$1.$asInstanceOf[scala.this.Int]()).value():scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] adapting new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value().$eq$eq(new p1.C.<init>(C$1.$asInstanceOf[scala.this.Int]()).value()):scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting {
<synthetic> <triedcooking> val C$1: ErasedValueType(class C, scala.this.Int) = x$1.$asInstanceOf[p1.C]().value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]();
new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value().$eq$eq(new p1.C.<init>(C$1.$asInstanceOf[scala.this.Int]()).value())
}:scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] adapting {
case <synthetic> val x1: lang.this.Object = x$1;
case5(){
if (x1.$isInstanceOf[p1.C]())
matchEnd4(true)
else
case6()
};
case6(){
matchEnd4(false)
};
matchEnd4(x: scala.this.Boolean){
x
}
}.$amp$amp({
<synthetic> <triedcooking> val C$1: ErasedValueType(class C, scala.this.Int) = x$1.$asInstanceOf[p1.C]().value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]();
new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value().$eq$eq(new p1.C.<init>(C$1.$asInstanceOf[scala.this.Int]()).value())
}):scala.this.Boolean : List() to scala.this.Boolean
[log erasure(->posterasure)] [context] ++ t8607.scala / type B$class
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local B$class>)
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local B$class>)
[log erasure(->posterasure)] [context] ++ t8607.scala / term $init$
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] adapting ():scala.this.Unit : List() to scala.this.Unit
[log erasure(->posterasure)] adapting {
()
}:scala.this.Unit : List() to scala.this.Unit
[log erasure(->posterasure)] [context] ++ t8607.scala / term a
[log erasure(->posterasure)] adapting "":lang.this.String("") : List(lang.this.Object, io.this.Serializable, lang.this.Comparable, lang.this.CharSequence) to lang.this.Object
[log erasure(->posterasure)] [context] ++ t8607.scala / type Test
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local Test>)
[log erasure(->posterasure)] [context] ++ t8607.scala / Template(value <local Test>)
[log erasure(->posterasure)] [context] ++ t8607.scala / term <init>
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(primary constructor Object)
[log erasure(->posterasure)] [context] ++ t8607.scala / term main
[log erasure(->posterasure)] [context] ++ t8607.scala / term args
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] [context] ++ t8607.scala / term c
[log erasure(->posterasure)] transforming inject 42 -> p1.this.C/scala.this.Int
[log erasure(->posterasure)] adapting 42:scala.this.Int(42) : List() to scala.this.Int
[log erasure(->posterasure)] transformed inject 42 -> p1.this.C/scala.this.Int = 42:scala.this.Int(42)
[log erasure(->posterasure)] adapting 42:ErasedValueType(class C, scala.this.Int(42)) : List() to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] erasure casts from ErasedValueType(class C, scala.this.Int(42)) to scala.this.Int
[log erasure(->posterasure)] casting 42:ErasedValueType(class C, scala.this.Int(42)) to scala.this.Int at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(scala.this.Int), <noprefix>, <none>, true)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply
[log erasure(->posterasure)] adapting 42.$asInstanceOf[scala.this.Int]():scala.this.Int : List() to scala.this.Int
[log erasure(->posterasure)] boxing Literal(Constant(42)): ErasedValueType(class C, scala.this.Int(42)) into ErasedValueType(class C, scala.this.Int): p1.this.C
[log erasure(->posterasure)] adapting new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()):p1.this.C : List(lang.this.Object, p1.this.B) to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()):p1.this.C : List(lang.this.Object, p1.this.B) to p1.C
[log erasure(->posterasure)] casting new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()).value():null to ErasedValueType(class C, scala.this.Int) at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(getter value)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(ErasedValueType(class C, scala.this.Int)), <noprefix>, <none>, true)
[log erasure(->posterasure)] unboxing Apply: p1.this.C as a ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] adapting new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()).value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]():ErasedValueType(class C, scala.this.Int) : List() to ErasedValueType(class C, scala.this.Int)
[log erasure(->posterasure)] [context] ++ t8607.scala / Block
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method a)
+[log erasure(->posterasure)] [context] ++ t8607.scala / Apply(method $asInstanceOf)
[log erasure(->posterasure)] erasure casts from ErasedValueType(class C, scala.this.Int) to scala.this.Int
[log erasure(->posterasure)] casting c:ErasedValueType(class C, scala.this.Int) to scala.this.Int at phase: posterasure
[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(scala.this.Int), <noprefix>, <none>, true)
[log erasure(->posterasure)] [context] ++ t8607.scala / Apply
[log erasure(->posterasure)] adapting c.$asInstanceOf[scala.this.Int]():scala.this.Int : List() to scala.this.Int
-[log erasure(->posterasure)] boxing Ident(c): ErasedValueType(class C, scala.this.Int) into owner trait B: p1.this.C
+[log erasure(->posterasure)] boxing Ident(c): ErasedValueType(class C, scala.this.Int) into owner class Object: p1.this.C
+[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(ErasedValueType(class C, scala.this.Int)), <noprefix>, <none>, true)
+[log erasure(->posterasure)] erasure casts from ErasedValueType(class C, scala.this.Int) to scala.this.Int
+[log erasure(->posterasure)] casting new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).$asInstanceOf[ErasedValueType(class C, scala.this.Int)]():ErasedValueType(class C, scala.this.Int) to scala.this.Int at phase: posterasure
+[log erasure(->posterasure)] [context] ++ NoCompilationUnit / Apply(method $asInstanceOf)
+[log erasure(->posterasure)] checkKindBounds0(List(type T0), List(scala.this.Int), <noprefix>, <none>, true)
+[log erasure(->posterasure)] [context] ++ t8607.scala / Apply
+[log erasure(->posterasure)] adapting new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).$asInstanceOf[ErasedValueType(class C, scala.this.Int)]().$asInstanceOf[scala.this.Int]():scala.this.Int : List() to scala.this.Int
+[log erasure(->posterasure)] boxing Apply(method $asInstanceOf): ErasedValueType(class C, scala.this.Int) into owner trait B: p1.this.C
[log erasure(->posterasure)] adapting ():scala.this.Unit : List() to scala.this.Unit
[log erasure(->posterasure)] adapting {
- new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).a();
+ new p1.C.<init>(new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).$asInstanceOf[ErasedValueType(class C, scala.this.Int)]().$asInstanceOf[scala.this.Int]()).a();
()
}:scala.this.Unit : List() to scala.this.Unit
[log erasure(->posterasure)] adapting {
<triedcooking> val c: ErasedValueType(class C, scala.this.Int) = new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()).value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]();
{
- new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).a();
+ new p1.C.<init>(new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).$asInstanceOf[ErasedValueType(class C, scala.this.Int)]().$asInstanceOf[scala.this.Int]()).a();
()
}
}:scala.this.Unit : List() to scala.this.Unit
[[syntax trees at end of erasure]] // t8607.scala
package <empty> {
package p1 {
- <interface> abstract <defaultparam/trait> <lateinterface> trait B extends lang.this.Object {
+ <interface> abstract <defaultparam/trait> <lateinterface> private[p1] trait B extends lang.this.Object {
<method> <deferred> <triedcooking> <latedeferred> def a(): lang.this.Object
};
final class C extends lang.this.Object with p1.this.B {
<paramaccessor> <triedcooking> private[this] val value : scala.this.Int = _;
<method> <stable> <accessor> <paramaccessor> <triedcooking> def value(): scala.this.Int = C.this.value ;
<method> <triedcooking> def <init>(value: scala.this.Int): p1.this.C = {
C.super.<init>();
C.this.$asInstanceOf[p1.B$class]()./*B$class*/$init$();
()
};
<method> override <synthetic> def hashCode(): scala.this.Int = p1.this.C.hashCode$extension(C.this.value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]());
<method> override <synthetic> def equals(x$1: lang.this.Object): scala.this.Boolean = p1.this.C.equals$extension(C.this.value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)](), x$1)
};
<module> <synthetic> object C extends lang.this.Object {
<method> def <init>(): p1.this.C.type = {
C.super.<init>();
()
};
<method> final <synthetic> <triedcooking> def hashCode$extension($this: ErasedValueType(class C, scala.this.Int)): scala.this.Int = scala.Int.box(new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value()).hashCode();
<method> final <synthetic> <triedcooking> def equals$extension($this: ErasedValueType(class C, scala.this.Int), x$1: lang.this.Object): scala.this.Boolean = {
case <synthetic> val x1: lang.this.Object = x$1;
case5(){
if (x1.$isInstanceOf[p1.C]())
matchEnd4(true)
else
case6()
};
case6(){
matchEnd4(false)
};
matchEnd4(x: scala.this.Boolean){
x
}
}.$amp$amp({
<synthetic> <triedcooking> val C$1: ErasedValueType(class C, scala.this.Int) = x$1.$asInstanceOf[p1.C]().value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]();
new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value().$eq$eq(new p1.C.<init>(C$1.$asInstanceOf[scala.this.Int]()).value())
})
};
abstract <defaultparam/trait> <implclass/presuper> trait B$class extends lang.this.Object with p1.B {
<method> def /*B$class*/$init$(): scala.this.Unit = {
()
};
<method> <triedcooking> def a(): lang.this.Object = ""
}
};
<module> object Test extends lang.this.Object {
<method> def <init>(): <empty>.this.Test.type = {
Test.super.<init>();
()
};
<method> def main(args: scala.this.Array[lang.this.String]): scala.this.Unit = {
<triedcooking> val c: ErasedValueType(class C, scala.this.Int) = new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()).value().$asInstanceOf[ErasedValueType(class C, scala.this.Int)]();
{
- new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).a();
+ new p1.C.<init>(new p1.C.<init>(c.$asInstanceOf[scala.this.Int]()).$asInstanceOf[ErasedValueType(class C, scala.this.Int)]().$asInstanceOf[scala.this.Int]()).a();
()
}
}
}
}
[running phase posterasure on t8607.scala]
[log posterasure] [context] ++ NoCompilationUnit / Import(value <import>)
[log posterasure] [context] ++ NoCompilationUnit / Import(value <import>)
[log posterasure] [context] ++ NoCompilationUnit / Import(value <import>)
[log posterasure] [context] ++ t8607.scala / EmptyTree
[log posterasure] [context] ++ t8607.scala / term <empty>
[log posterasure] [context] ++ t8607.scala / Ident(<empty>)
[log posterasure] [context] ++ t8607.scala / term p1
[log posterasure] [context] ++ t8607.scala / Ident(p1)
[log posterasure] [context] ++ t8607.scala / type B
[log posterasure] [context] ++ t8607.scala / Template(value <local B>)
[log posterasure] [context] ++ t8607.scala / term a
[log posterasure] [context] ++ t8607.scala / type C
[log posterasure] [context] ++ t8607.scala / Template(value <local C>)
[log posterasure] [context] ++ t8607.scala / term value
[log posterasure] [context] ++ t8607.scala / term value
[log posterasure] [context] ++ t8607.scala / term <init>
[log posterasure] [context] ++ t8607.scala / term value
[log posterasure] [context] ++ t8607.scala / term hashCode
[log posterasure] Posterasure reduction
Old: C.this.value().$asInstanceOf[scala.this.Int]()
New: C.this.value()
[log posterasure] [context] ++ t8607.scala / term equals
[log posterasure] [context] ++ t8607.scala / term x$1
[log posterasure] Posterasure reduction
Old: C.this.value().$asInstanceOf[scala.this.Int]()
New: C.this.value()
[log posterasure] [context] ++ t8607.scala / type C
[log posterasure] [context] ++ t8607.scala / Template(value <local C>)
[log posterasure] [context] ++ t8607.scala / term <init>
[log posterasure] [context] ++ t8607.scala / term hashCode$extension
[log posterasure] [context] ++ t8607.scala / term $this
[log posterasure] Posterasure reduction
Old: $this.$asInstanceOf[scala.this.Int]()
New: $this
[log posterasure] Posterasure reduction
Old: new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value()
New: $this
[log posterasure] [context] ++ t8607.scala / term equals$extension
[log posterasure] [context] ++ t8607.scala / term $this
[log posterasure] [context] ++ t8607.scala / term x$1
[log posterasure] [context] ++ t8607.scala / term x1
[log posterasure] [context] ++ t8607.scala / term C$1
[log posterasure] Posterasure reduction
Old: x$1.$asInstanceOf[p1.C]().value().$asInstanceOf[scala.this.Int]()
New: x$1.$asInstanceOf[p1.C]().value()
[log posterasure] Posterasure reduction
Old: $this.$asInstanceOf[scala.this.Int]()
New: $this
[log posterasure] Posterasure reduction
Old: new p1.C.<init>($this.$asInstanceOf[scala.this.Int]()).value()
New: $this
[log posterasure] Posterasure reduction
Old: C$1.$asInstanceOf[scala.this.Int]()
New: C$1
[log posterasure] Posterasure reduction
Old: new p1.C.<init>(C$1.$asInstanceOf[scala.this.Int]()).value()
New: C$1
[log posterasure] [context] ++ t8607.scala / type B$class
[log posterasure] [context] ++ t8607.scala / Template(value <local B$class>)
[log posterasure] [context] ++ t8607.scala / term $init$
[log posterasure] [context] ++ t8607.scala / term a
[log posterasure] [context] ++ t8607.scala / type Test
[log posterasure] [context] ++ t8607.scala / Template(value <local Test>)
[log posterasure] [context] ++ t8607.scala / term <init>
[log posterasure] [context] ++ t8607.scala / term main
[log posterasure] [context] ++ t8607.scala / term args
[log posterasure] [context] ++ t8607.scala / term c
[log posterasure] Posterasure reduction
Old: 42.$asInstanceOf[scala.this.Int]()
New: 42
[log posterasure] Posterasure reduction
Old: new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()).value()
New: 42
[log posterasure] Posterasure reduction
Old: new p1.C.<init>(42.$asInstanceOf[scala.this.Int]()).value().$asInstanceOf[scala.this.Int]()
New: 42
[log posterasure] Posterasure reduction
Old: c.$asInstanceOf[scala.this.Int]()
New: c
[[syntax trees at end of posterasure]] // t8607.scala
package <empty> {
package p1 {
- <interface> abstract <defaultparam/trait> <lateinterface> trait B extends lang.this.Object {
+ <interface> abstract <defaultparam/trait> <lateinterface> private[p1] trait B extends lang.this.Object {
<method> <deferred> <triedcooking> <latedeferred> def a(): lang.this.Object
};
final class C extends lang.this.Object with p1.this.B {
<paramaccessor> <triedcooking> private[this] val value : scala.this.Int = _;
<method> <stable> <accessor> <paramaccessor> <triedcooking> def value(): scala.this.Int = C.this.value ;
<method> <triedcooking> def <init>(value: scala.this.Int): p1.this.C = {
C.super.<init>();
C.this.$asInstanceOf[p1.B$class]()./*B$class*/$init$();
()
};
<method> override <synthetic> def hashCode(): scala.this.Int = p1.this.C.hashCode$extension(C.this.value());
<method> override <synthetic> def equals(x$1: lang.this.Object): scala.this.Boolean = p1.this.C.equals$extension(C.this.value(), x$1)
};
<module> <synthetic> object C extends lang.this.Object {
<method> def <init>(): p1.this.C.type = {
C.super.<init>();
()
};
<method> final <synthetic> <triedcooking> def hashCode$extension($this: scala.this.Int): scala.this.Int = scala.Int.box($this).hashCode();
<method> final <synthetic> <triedcooking> def equals$extension($this: scala.this.Int, x$1: lang.this.Object): scala.this.Boolean = {
case <synthetic> val x1: lang.this.Object = x$1;
case5(){
if (x1.$isInstanceOf[p1.C]())
matchEnd4(true)
else
case6()
};
case6(){
matchEnd4(false)
};
matchEnd4(x: scala.this.Boolean){
x
}
}.$amp$amp({
<synthetic> <triedcooking> val C$1: scala.this.Int = x$1.$asInstanceOf[p1.C]().value();
$this.$eq$eq(C$1)
})
};
abstract <defaultparam/trait> <implclass/presuper> trait B$class extends lang.this.Object with p1.B {
<method> def /*B$class*/$init$(): scala.this.Unit = {
()
};
<method> <triedcooking> def a(): lang.this.Object = ""
}
};
<module> object Test extends lang.this.Object {
<method> def <init>(): <empty>.this.Test.type = {
Test.super.<init>();
()
};
<method> def main(args: scala.this.Array[lang.this.String]): scala.this.Unit = {
<triedcooking> val c: scala.this.Int = 42;
{
- new p1.C.<init>(c).a();
+ new p1.C.<init>(new p1.C.<init>(c).$asInstanceOf[scala.this.Int]().$asInstanceOf[scala.this.Int]()).a();
()
}
}
}
}
[running phase lazyvals on t8607.scala]
[running phase lambdalift on t8607.scala]
[running phase constructors on t8607.scala]
[running phase flatten on t8607.scala]
[running phase mixin on t8607.scala]
[running phase cleanup on t8607.scala]
[running phase delambdafy on t8607.scala]
[running phase icode on t8607.scala]
warning: !!! PJUMP(method matchEnd4)/scala.tools.nsc.backend.icode.GenICode$PJUMP is not a control flow instruction
warning: !!! PJUMP(method case6)/scala.tools.nsc.backend.icode.GenICode$PJUMP is not a control flow instruction
-[running phase jvm on icode]
-two warnings found
+error: should have been unboxed by erasure: new p1.C.<init>(c).$asInstanceOf[scala.this.Int]()
+error: scala.reflect.internal.FatalError:
+ should have been unboxed by erasure: new p1.C.<init>(c).$asInstanceOf[scala.this.Int]()
+ while compiling: test/files/run/t8607.scala
+ during phase: icode
+ library version: version 2.11.1-20140520-144426-051456c94b
+ compiler version: version 2.11.1-20140520-144426-051456c94b
+ reconstructed args: -Ydebug -Ylog:erasure -Ylog:posterasure -Xprint:erasure -Xprint:posterasure
+
+ last tree to typer: Ident(value)
+ tree position: line 6 of test/files/run/t8607.scala
+ tree tpe: scala.this.Int
+ symbol: <param> value value
+ symbol definition: <param> value: scala.this.Int (a TermSymbol)
+ symbol package: p1
+ symbol owners: value value -> primary constructor C -> class C
+ call site: primary constructor Test in module class Test in package <empty>
+
+== Source file context for tree position ==
+
+ 3 }
+ 4
+ 5 class C(val value: Int) extends AnyVal with B {
+ 6 // def b = ""
+ 7 }
+ 8 }
+ 9
+ at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:58)
+ at scala.tools.nsc.Global.abort(Global.scala:269)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadApply1$1(GenICode.scala:629)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:638)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genLoadArguments$1.apply(GenICode.scala:1133)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genLoadArguments$1.apply(GenICode.scala:1131)
+ at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:110)
+ at scala.collection.immutable.List.foldLeft(List.scala:83)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadArguments(GenICode.scala:1131)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadApply3$1(GenICode.scala:697)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:707)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadQualifier(GenICode.scala:1092)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadApply6$1(GenICode.scala:777)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:809)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genStat(GenICode.scala:181)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genStat$1.apply(GenICode.scala:155)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genStat$1.apply(GenICode.scala:155)
+ at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:110)
+ at scala.collection.immutable.List.foldLeft(List.scala:83)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:915)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:916)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:123)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:71)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:148)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:98)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:71)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:89)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:67)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.apply(GenICode.scala:63)
+ at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:430)
+ at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
+ at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
+ at scala.collection.Iterator$class.foreach(Iterator.scala:743)
+ at scala.collection.AbstractIterator.foreach(Iterator.scala:1174)
+ at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:397)
+ at scala.tools.nsc.backend.icode.GenICode$ICodePhase.run(GenICode.scala:55)
+ at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1625)
+ at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1610)
+ at scala.tools.nsc.Global$Run.compileSources(Global.scala:1605)
+ at scala.tools.nsc.Global$Run.compile(Global.scala:1703)
+ at scala.tools.nsc.Driver.doCompile(Driver.scala:34)
+ at scala.tools.nsc.MainClass.doCompile(Main.scala:23)
+ at scala.tools.nsc.Driver.process(Driver.scala:55)
+ at scala.tools.nsc.Driver.main(Driver.scala:68)
+ at scala.tools.nsc.Main.main(Main.scala)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment