Created
August 22, 2012 15:08
-
-
Save gseitz/3426589 to your computer and use it in GitHub Desktop.
Crash in pattern matcher in 2.10.0-M7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
> last compile | |
[debug] | |
[debug] Initial source changes: | |
[debug] removed:Set() | |
[debug] added: Set() | |
[debug] modified: Set(C:\Users\sege\projects\scratch\src\main\scala\PatMat.scala) | |
[debug] Removed products: Set(C:\Users\sege\projects\scratch\target\scala-2.10\classes\crash\PatMatCrash.class, C:\Users\sege\projects\scratch\target\scala-2.10\classes\crash\PatMatCrash$$anonfun$1.class) | |
[debug] Modified external sources: Set() | |
[debug] Modified binary dependencies: Set() | |
[debug] Initial directly invalidated sources: Set(C:\Users\sege\projects\scratch\src\main\scala\PatMat.scala) | |
[debug] | |
[debug] Sources indirectly invalidated by: | |
[debug] product: Set(C:\Users\sege\projects\scratch\src\main\scala\PatMat.scala) | |
[debug] binary dep: Set() | |
[debug] external source: Set() | |
[debug] Initially invalidated: Set(C:\Users\sege\projects\scratch\src\main\scala\PatMat.scala) | |
[info] Compiling 1 Scala source to C:\Users\sege\projects\scratch\target\scala-2.10\classes... | |
[debug] Running cached compiler 42d34b8c, interfacing (CompilerInterface) with Scala compiler version 2.10.0-M7 | |
[debug] Calling Scala compiler with arguments (CompilerInterface): | |
[debug] -d | |
[debug] C:\Users\sege\projects\scratch\target\scala-2.10\classes | |
[debug] -bootclasspath | |
[debug] C:\Program Files\Java\jdk1.6.0_27\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\modules\jdk.boot.jar;C:\Program Files\Java\jdk1.6.0_27\jre\classes;C:\Users\sege\.sbt\0.12.0\boot\scala-2.10.0-M7\lib\scala-library.jar | |
[debug] -classpath | |
[debug] C:\Users\sege\projects\scratch\target\scala-2.10\classes | |
[error] Unknown type: ?, ? [class scala.reflect.internal.Types$WildcardType$, class scala.reflect.internal.Types$WildcardType$] TypeRef? false | |
[error] | |
[error] while compiling: C:\Users\sege\projects\scratch\src\main\scala\PatMat.scala | |
[error] during phase: icode | |
[error] library version: version 2.10.0-M7 | |
[error] compiler version: version 2.10.0-M7 | |
[error] reconstructed args: -bootclasspath C:\Program Files\Java\jdk1.6.0_27\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\modules\jdk.boot.jar;C:\Program Files\Java\jdk1.6.0_27\jre\classes;C:\Users\sege\.sbt\0.12.0\boot\scala-2.10.0-M7\lib\scala-library.jar -d C:\Users\sege\projects\scratch\target\scala-2.10\classes -classpath C:\Users\sege\projects\scratch\target\scala-2.10\classes | |
[error] | |
[error] last tree to typer: term $outer | |
[error] symbol: value $outer (flags: <synthetic> <paramaccessor> <triedcooking> private[this]) | |
[error] symbol definition: private[this] val $outer: crash.PatMatCrash | |
[error] tpe: <notype> | |
[error] symbol owners: value $outer -> anonymous class PatMatCrash$$anonfun$1 -> package crash | |
[error] context owners: anonymous class PatMatCrash$$anonfun$1 -> package crash | |
[error] | |
[error] == Enclosing template or block == | |
[error] | |
[error] Template( // val <local $anonfun>: <notype>, tree.tpe=crash.PatMatCrash$$anonfun$1 | |
[error] "scala.runtime.AbstractPartialFunction", "scala.Serializable" // parents | |
[error] ValDef( | |
[error] private | |
[error] "_" | |
[error] <tpt> | |
[error] <empty> | |
[error] ) | |
[error] // 3 statements | |
[error] DefDef( // final override def applyOrElse(x$1: ?,default: Function1): Object | |
[error] <method> final override | |
[error] "applyOrElse" | |
[error] [] | |
[error] // 1 parameter list | |
[error] ValDef( // x$1: ? | |
[error] <param> <synthetic> <triedcooking> | |
[error] "x$1" | |
[error] <tpt> // tree.tpe=? | |
[error] <empty> | |
[error] ) | |
[error] ValDef( // default: Function1 | |
[error] <param> <synthetic> <triedcooking> | |
[error] "default" | |
[error] <tpt> // tree.tpe=Function1 | |
[error] <empty> | |
[error] ) | |
[error] <tpt> // tree.tpe=Object | |
[error] Block( // tree.tpe=Object | |
[error] // 3 statements | |
[error] ValDef( // case val x1: ? | |
[error] case <synthetic> <triedcooking> | |
[error] "x1" | |
[error] <tpt> // tree.tpe=? | |
[error] Typed( // tree.tpe=? | |
[error] "x$1" // x$1: ?, tree.tpe=? | |
[error] <tpt> // tree.tpe=? | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case5(): Object, tree.tpe=Object | |
[error] () | |
[error] If( // tree.tpe=Object | |
[error] Apply( // final def ==(x$1: Object): Boolean in class Object, tree.tpe=Boolean | |
[error] "foo"."$eq$eq" // final def ==(x$1: Object): Boolean in class Object, tree.tpe=(x$1: Object)Boolean | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Block( // tree.tpe=Object | |
[error] ValDef( // val x2: ? | |
[error] 0 | |
[error] "x2" | |
[error] <tpt> // tree.tpe=? | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Apply( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
[error] "matchEnd4" // case def matchEnd4(x: Object): Object, tree.tpe=(x: Object)Object | |
[error] "scala"."runtime"."BoxedUnit"."UNIT" // final val UNIT: runtime.BoxedUnit in object BoxedUnit, tree.tpe=runtime.BoxedUnit | |
[error] ) | |
[error] ) | |
[error] Apply( // case def case6(): Object, tree.tpe=Object | |
[error] "case6" // case def case6(): Object, tree.tpe=()Object | |
[error] Nil | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case6(): Object, tree.tpe=Object | |
[error] () | |
[error] Apply( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
[error] "matchEnd4" // case def matchEnd4(x: Object): Object, tree.tpe=(x: Object)Object | |
[error] Apply( // def apply(v1: Object): Object in trait Function1, tree.tpe=Object | |
[error] "default"."apply" // def apply(v1: Object): Object in trait Function1, tree.tpe=(v1: Object)Object | |
[error] "x$1" // x$1: ?, tree.tpe=? | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
[error] "x" // x: Object, tree.tpe=Object | |
[error] "x" // x: Object, tree.tpe=Object | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] DefDef( // final def isDefinedAt(x$1: ?): Boolean | |
[error] <method> final | |
[error] "isDefinedAt" | |
[error] [] | |
[error] // 1 parameter list | |
[error] ValDef( // x$1: ? | |
[error] <param> <synthetic> <triedcooking> | |
[error] "x$1" | |
[error] <tpt> // tree.tpe=? | |
[error] <empty> | |
[error] ) | |
[error] <tpt> // tree.tpe=Boolean | |
[error] Block( // tree.tpe=Boolean | |
[error] // 3 statements | |
[error] ValDef( // case val x1: ? | |
[error] case <synthetic> <triedcooking> | |
[error] "x1" | |
[error] <tpt> // tree.tpe=? | |
[error] Typed( // tree.tpe=? | |
[error] "x$1" // x$1: ?, tree.tpe=? | |
[error] <tpt> // tree.tpe=? | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case5(): Boolean, tree.tpe=Boolean | |
[error] () | |
[error] If( // tree.tpe=Boolean | |
[error] Apply( // final def ==(x$1: Object): Boolean in class Object, tree.tpe=Boolean | |
[error] "foo"."$eq$eq" // final def ==(x$1: Object): Boolean in class Object, tree.tpe=(x$1: Object)Boolean | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Block( // tree.tpe=Boolean | |
[error] ValDef( // val x2: ? | |
[error] 0 | |
[error] "x2" | |
[error] <tpt> // tree.tpe=? | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Apply( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
[error] "matchEnd4" // case def matchEnd4(x: Boolean): Boolean, tree.tpe=(x: Boolean)Boolean | |
[error] true | |
[error] ) | |
[error] ) | |
[error] Apply( // case def case6(): Boolean, tree.tpe=Boolean | |
[error] "case6" // case def case6(): Boolean, tree.tpe=()Boolean | |
[error] Nil | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case6(): Boolean, tree.tpe=Boolean | |
[error] () | |
[error] Apply( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
[error] "matchEnd4" // case def matchEnd4(x: Boolean): Boolean, tree.tpe=(x: Boolean)Boolean | |
[error] false | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
[error] "x" // x: Boolean, tree.tpe=Boolean | |
[error] "x" // x: Boolean, tree.tpe=Boolean | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] DefDef( // def <init>(arg$outer: crash.PatMatCrash): crash.PatMatCrash$$anonfun$1 | |
[error] <method> <triedcooking> | |
[error] "<init>" | |
[error] [] | |
[error] // 1 parameter list | |
[error] ValDef( // $outer: crash.PatMatCrash | |
[error] <param> | |
[error] "$outer" | |
[error] <tpt> // tree.tpe=crash.PatMatCrash | |
[error] <empty> | |
[error] ) | |
[error] <tpt> // tree.tpe=crash.PatMatCrash$$anonfun$1 | |
[error] Block( // tree.tpe=Unit | |
[error] Apply( // def <init>(): runtime.AbstractPartialFunction in class AbstractPartialFunction, tree.tpe=runtime.AbstractPartialFunction | |
[error] PatMatCrash$$anonfun$1.super."<init>" // def <init>(): runtime.AbstractPartialFunction in class AbstractPartialFunction, tree.tpe=()runtime.AbstractPartialFunction | |
[error] Nil | |
[error] ) | |
[error] () | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] | |
[error] == Expanded type of tree == | |
[error] | |
[error] <notype> | |
[error] | |
[error] uncaught exception during compilation: scala.reflect.internal.FatalError | |
scala.reflect.internal.FatalError: | |
while compiling: C:\Users\sege\projects\scratch\src\main\scala\PatMat.scala | |
during phase: icode | |
library version: version 2.10.0-M7 | |
compiler version: version 2.10.0-M7 | |
reconstructed args: -bootclasspath C:\Program Files\Java\jdk1.6.0_27\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\modules\jdk.boot.jar;C:\Program Files\Java\jdk1.6.0_27\jre\classes;C:\Users\sege\.sbt\0.12.0\boot\scala-2.10.0-M7\lib\scala-library.jar -d C:\Users\sege\projects\scratch\target\scala-2.10\classes -classpath C:\Users\sege\projects\scratch\target\scala-2.10\classes | |
last tree to typer: term $outer | |
symbol: value $outer (flags: <synthetic> <paramaccessor> <triedcooking> private[this]) | |
symbol definition: private[this] val $outer: crash.PatMatCrash | |
tpe: <notype> | |
symbol owners: value $outer -> anonymous class PatMatCrash$$anonfun$1 -> package crash | |
context owners: anonymous class PatMatCrash$$anonfun$1 -> package crash | |
== Enclosing template or block == | |
Template( // val <local $anonfun>: <notype>, tree.tpe=crash.PatMatCrash$$anonfun$1 | |
"scala.runtime.AbstractPartialFunction", "scala.Serializable" // parents | |
ValDef( | |
private | |
"_" | |
<tpt> | |
<empty> | |
) | |
// 3 statements | |
DefDef( // final override def applyOrElse(x$1: ?,default: Function1): Object | |
<method> final override | |
"applyOrElse" | |
[] | |
// 1 parameter list | |
ValDef( // x$1: ? | |
<param> <synthetic> <triedcooking> | |
"x$1" | |
<tpt> // tree.tpe=? | |
<empty> | |
) | |
ValDef( // default: Function1 | |
<param> <synthetic> <triedcooking> | |
"default" | |
<tpt> // tree.tpe=Function1 | |
<empty> | |
) | |
<tpt> // tree.tpe=Object | |
Block( // tree.tpe=Object | |
// 3 statements | |
ValDef( // case val x1: ? | |
case <synthetic> <triedcooking> | |
"x1" | |
<tpt> // tree.tpe=? | |
Typed( // tree.tpe=? | |
"x$1" // x$1: ?, tree.tpe=? | |
<tpt> // tree.tpe=? | |
) | |
) | |
LabelDef( // case def case5(): Object, tree.tpe=Object | |
() | |
If( // tree.tpe=Object | |
Apply( // final def ==(x$1: Object): Boolean in class Object, tree.tpe=Boolean | |
"foo"."$eq$eq" // final def ==(x$1: Object): Boolean in class Object, tree.tpe=(x$1: Object)Boolean | |
"x1" // case val x1: ?, tree.tpe=? | |
) | |
Block( // tree.tpe=Object | |
ValDef( // val x2: ? | |
0 | |
"x2" | |
<tpt> // tree.tpe=? | |
"x1" // case val x1: ?, tree.tpe=? | |
) | |
Apply( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
"matchEnd4" // case def matchEnd4(x: Object): Object, tree.tpe=(x: Object)Object | |
"scala"."runtime"."BoxedUnit"."UNIT" // final val UNIT: runtime.BoxedUnit in object BoxedUnit, tree.tpe=runtime.BoxedUnit | |
) | |
) | |
Apply( // case def case6(): Object, tree.tpe=Object | |
"case6" // case def case6(): Object, tree.tpe=()Object | |
Nil | |
) | |
) | |
) | |
LabelDef( // case def case6(): Object, tree.tpe=Object | |
() | |
Apply( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
"matchEnd4" // case def matchEnd4(x: Object): Object, tree.tpe=(x: Object)Object | |
Apply( // def apply(v1: Object): Object in trait Function1, tree.tpe=Object | |
"default"."apply" // def apply(v1: Object): Object in trait Function1, tree.tpe=(v1: Object)Object | |
"x$1" // x$1: ?, tree.tpe=? | |
) | |
) | |
) | |
LabelDef( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
"x" // x: Object, tree.tpe=Object | |
"x" // x: Object, tree.tpe=Object | |
) | |
) | |
) | |
DefDef( // final def isDefinedAt(x$1: ?): Boolean | |
<method> final | |
"isDefinedAt" | |
[] | |
// 1 parameter list | |
ValDef( // x$1: ? | |
<param> <synthetic> <triedcooking> | |
"x$1" | |
<tpt> // tree.tpe=? | |
<empty> | |
) | |
<tpt> // tree.tpe=Boolean | |
Block( // tree.tpe=Boolean | |
// 3 statements | |
ValDef( // case val x1: ? | |
case <synthetic> <triedcooking> | |
"x1" | |
<tpt> // tree.tpe=? | |
Typed( // tree.tpe=? | |
"x$1" // x$1: ?, tree.tpe=? | |
<tpt> // tree.tpe=? | |
) | |
) | |
LabelDef( // case def case5(): Boolean, tree.tpe=Boolean | |
() | |
If( // tree.tpe=Boolean | |
Apply( // final def ==(x$1: Object): Boolean in class Object, tree.tpe=Boolean | |
"foo"."$eq$eq" // final def ==(x$1: Object): Boolean in class Object, tree.tpe=(x$1: Object)Boolean | |
"x1" // case val x1: ?, tree.tpe=? | |
) | |
Block( // tree.tpe=Boolean | |
ValDef( // val x2: ? | |
0 | |
"x2" | |
<tpt> // tree.tpe=? | |
"x1" // case val x1: ?, tree.tpe=? | |
) | |
Apply( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
"matchEnd4" // case def matchEnd4(x: Boolean): Boolean, tree.tpe=(x: Boolean)Boolean | |
true | |
) | |
) | |
Apply( // case def case6(): Boolean, tree.tpe=Boolean | |
"case6" // case def case6(): Boolean, tree.tpe=()Boolean | |
Nil | |
) | |
) | |
) | |
LabelDef( // case def case6(): Boolean, tree.tpe=Boolean | |
() | |
Apply( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
"matchEnd4" // case def matchEnd4(x: Boolean): Boolean, tree.tpe=(x: Boolean)Boolean | |
false | |
) | |
) | |
LabelDef( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
"x" // x: Boolean, tree.tpe=Boolean | |
"x" // x: Boolean, tree.tpe=Boolean | |
) | |
) | |
) | |
DefDef( // def <init>(arg$outer: crash.PatMatCrash): crash.PatMatCrash$$anonfun$1 | |
<method> <triedcooking> | |
"<init>" | |
[] | |
// 1 parameter list | |
ValDef( // $outer: crash.PatMatCrash | |
<param> | |
"$outer" | |
<tpt> // tree.tpe=crash.PatMatCrash | |
<empty> | |
) | |
<tpt> // tree.tpe=crash.PatMatCrash$$anonfun$1 | |
Block( // tree.tpe=Unit | |
Apply( // def <init>(): runtime.AbstractPartialFunction in class AbstractPartialFunction, tree.tpe=runtime.AbstractPartialFunction | |
PatMatCrash$$anonfun$1.super."<init>" // def <init>(): runtime.AbstractPartialFunction in class AbstractPartialFunction, tree.tpe=()runtime.AbstractPartialFunction | |
Nil | |
) | |
() | |
) | |
) | |
) | |
== Expanded type of tree == | |
<notype> | |
Unknown type: ?, ? [class scala.reflect.internal.Types$WildcardType$, class scala.reflect.internal.Types$WildcardType$] TypeRef? false | |
at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:48) | |
at scala.tools.nsc.Global.abort(Global.scala:246) | |
at scala.tools.nsc.backend.icode.TypeKinds$class.toTypeKind(TypeKinds.scala:397) | |
at scala.tools.nsc.backend.icode.ICodes.toTypeKind(ICodes.scala:20) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$addMethodParams$1.apply(GenICode.scala:1749) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$addMethodParams$1.apply(GenICode.scala:1748) | |
at scala.collection.immutable.List.foreach(List.scala:309) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.addMethodParams(GenICode.scala:1748) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:120) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72) | |
at scala.collection.immutable.List.foreach(List.scala:309) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:72) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:165) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:99) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72) | |
at scala.collection.immutable.List.foreach(List.scala:309) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:72) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:90) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:68) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.apply(GenICode.scala:64) | |
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:455) | |
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:422) | |
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:422) | |
at scala.collection.Iterator$class.foreach(Iterator.scala:726) | |
at scala.collection.AbstractIterator.foreach(Iterator.scala:1155) | |
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:422) | |
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.run(GenICode.scala:57) | |
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1566) | |
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1540) | |
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1536) | |
at scala.tools.nsc.Global$Run.compile(Global.scala:1646) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:90) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:72) | |
at xsbt.CompilerInterface.run(CompilerInterface.scala:26) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | |
at java.lang.reflect.Method.invoke(Method.java:597) | |
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:73) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:35) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:29) | |
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:71) | |
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71) | |
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71) | |
at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:101) | |
at sbt.compiler.AggressiveCompile$$anonfun$4.compileScala$1(AggressiveCompile.scala:70) | |
at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:88) | |
at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:60) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:24) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:22) | |
at sbt.inc.Incremental$.cycle(Incremental.scala:39) | |
at sbt.inc.Incremental$.compile(Incremental.scala:26) | |
at sbt.inc.IncrementalCompile$.apply(Compile.scala:20) | |
at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:96) | |
at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:44) | |
at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:31) | |
at sbt.Compiler$.apply(Compiler.scala:79) | |
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:571) | |
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:571) | |
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578) | |
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578) | |
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49) | |
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311) | |
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311) | |
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40) | |
at sbt.std.Transform$$anon$5.work(System.scala:71) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232) | |
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) | |
at sbt.Execute.work(Execute.scala:238) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232) | |
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159) | |
at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) | |
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) | |
at java.util.concurrent.FutureTask.run(FutureTask.java:138) | |
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) | |
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) | |
at java.util.concurrent.FutureTask.run(FutureTask.java:138) | |
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) | |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) | |
at java.lang.Thread.run(Thread.java:662) | |
[error] (compile:compile) scala.reflect.internal.FatalError: | |
[error] while compiling: C:\Users\sege\projects\scratch\src\main\scala\PatMat.scala | |
[error] during phase: icode | |
[error] library version: version 2.10.0-M7 | |
[error] compiler version: version 2.10.0-M7 | |
[error] reconstructed args: -bootclasspath C:\Program Files\Java\jdk1.6.0_27\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_27\jre\lib\modules\jdk.boot.jar;C:\Program Files\Java\jdk1.6.0_27\jre\classes;C:\Users\sege\.sbt\0.12.0\boot\scala-2.10.0-M7\lib\scala-library.jar -d C:\Users\sege\projects\scratch\target\scala-2.10\classes -classpath C:\Users\sege\projects\scratch\target\scala-2.10\classes | |
[error] | |
[error] last tree to typer: term $outer | |
[error] symbol: value $outer (flags: <synthetic> <paramaccessor> <triedcooking> private[this]) | |
[error] symbol definition: private[this] val $outer: crash.PatMatCrash | |
[error] tpe: <notype> | |
[error] symbol owners: value $outer -> anonymous class PatMatCrash$$anonfun$1 -> package crash | |
[error] context owners: anonymous class PatMatCrash$$anonfun$1 -> package crash | |
[error] | |
[error] == Enclosing template or block == | |
[error] | |
[error] Template( // val <local $anonfun>: <notype>, tree.tpe=crash.PatMatCrash$$anonfun$1 | |
[error] "scala.runtime.AbstractPartialFunction", "scala.Serializable" // parents | |
[error] ValDef( | |
[error] private | |
[error] "_" | |
[error] <tpt> | |
[error] <empty> | |
[error] ) | |
[error] // 3 statements | |
[error] DefDef( // final override def applyOrElse(x$1: ?,default: Function1): Object | |
[error] <method> final override | |
[error] "applyOrElse" | |
[error] [] | |
[error] // 1 parameter list | |
[error] ValDef( // x$1: ? | |
[error] <param> <synthetic> <triedcooking> | |
[error] "x$1" | |
[error] <tpt> // tree.tpe=? | |
[error] <empty> | |
[error] ) | |
[error] ValDef( // default: Function1 | |
[error] <param> <synthetic> <triedcooking> | |
[error] "default" | |
[error] <tpt> // tree.tpe=Function1 | |
[error] <empty> | |
[error] ) | |
[error] <tpt> // tree.tpe=Object | |
[error] Block( // tree.tpe=Object | |
[error] // 3 statements | |
[error] ValDef( // case val x1: ? | |
[error] case <synthetic> <triedcooking> | |
[error] "x1" | |
[error] <tpt> // tree.tpe=? | |
[error] Typed( // tree.tpe=? | |
[error] "x$1" // x$1: ?, tree.tpe=? | |
[error] <tpt> // tree.tpe=? | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case5(): Object, tree.tpe=Object | |
[error] () | |
[error] If( // tree.tpe=Object | |
[error] Apply( // final def ==(x$1: Object): Boolean in class Object, tree.tpe=Boolean | |
[error] "foo"."$eq$eq" // final def ==(x$1: Object): Boolean in class Object, tree.tpe=(x$1: Object)Boolean | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Block( // tree.tpe=Object | |
[error] ValDef( // val x2: ? | |
[error] 0 | |
[error] "x2" | |
[error] <tpt> // tree.tpe=? | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Apply( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
[error] "matchEnd4" // case def matchEnd4(x: Object): Object, tree.tpe=(x: Object)Object | |
[error] "scala"."runtime"."BoxedUnit"."UNIT" // final val UNIT: runtime.BoxedUnit in object BoxedUnit, tree.tpe=runtime.BoxedUnit | |
[error] ) | |
[error] ) | |
[error] Apply( // case def case6(): Object, tree.tpe=Object | |
[error] "case6" // case def case6(): Object, tree.tpe=()Object | |
[error] Nil | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case6(): Object, tree.tpe=Object | |
[error] () | |
[error] Apply( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
[error] "matchEnd4" // case def matchEnd4(x: Object): Object, tree.tpe=(x: Object)Object | |
[error] Apply( // def apply(v1: Object): Object in trait Function1, tree.tpe=Object | |
[error] "default"."apply" // def apply(v1: Object): Object in trait Function1, tree.tpe=(v1: Object)Object | |
[error] "x$1" // x$1: ?, tree.tpe=? | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def matchEnd4(x: Object): Object, tree.tpe=Object | |
[error] "x" // x: Object, tree.tpe=Object | |
[error] "x" // x: Object, tree.tpe=Object | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] DefDef( // final def isDefinedAt(x$1: ?): Boolean | |
[error] <method> final | |
[error] "isDefinedAt" | |
[error] [] | |
[error] // 1 parameter list | |
[error] ValDef( // x$1: ? | |
[error] <param> <synthetic> <triedcooking> | |
[error] "x$1" | |
[error] <tpt> // tree.tpe=? | |
[error] <empty> | |
[error] ) | |
[error] <tpt> // tree.tpe=Boolean | |
[error] Block( // tree.tpe=Boolean | |
[error] // 3 statements | |
[error] ValDef( // case val x1: ? | |
[error] case <synthetic> <triedcooking> | |
[error] "x1" | |
[error] <tpt> // tree.tpe=? | |
[error] Typed( // tree.tpe=? | |
[error] "x$1" // x$1: ?, tree.tpe=? | |
[error] <tpt> // tree.tpe=? | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case5(): Boolean, tree.tpe=Boolean | |
[error] () | |
[error] If( // tree.tpe=Boolean | |
[error] Apply( // final def ==(x$1: Object): Boolean in class Object, tree.tpe=Boolean | |
[error] "foo"."$eq$eq" // final def ==(x$1: Object): Boolean in class Object, tree.tpe=(x$1: Object)Boolean | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Block( // tree.tpe=Boolean | |
[error] ValDef( // val x2: ? | |
[error] 0 | |
[error] "x2" | |
[error] <tpt> // tree.tpe=? | |
[error] "x1" // case val x1: ?, tree.tpe=? | |
[error] ) | |
[error] Apply( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
[error] "matchEnd4" // case def matchEnd4(x: Boolean): Boolean, tree.tpe=(x: Boolean)Boolean | |
[error] true | |
[error] ) | |
[error] ) | |
[error] Apply( // case def case6(): Boolean, tree.tpe=Boolean | |
[error] "case6" // case def case6(): Boolean, tree.tpe=()Boolean | |
[error] Nil | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def case6(): Boolean, tree.tpe=Boolean | |
[error] () | |
[error] Apply( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
[error] "matchEnd4" // case def matchEnd4(x: Boolean): Boolean, tree.tpe=(x: Boolean)Boolean | |
[error] false | |
[error] ) | |
[error] ) | |
[error] LabelDef( // case def matchEnd4(x: Boolean): Boolean, tree.tpe=Boolean | |
[error] "x" // x: Boolean, tree.tpe=Boolean | |
[error] "x" // x: Boolean, tree.tpe=Boolean | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] DefDef( // def <init>(arg$outer: crash.PatMatCrash): crash.PatMatCrash$$anonfun$1 | |
[error] <method> <triedcooking> | |
[error] "<init>" | |
[error] [] | |
[error] // 1 parameter list | |
[error] ValDef( // $outer: crash.PatMatCrash | |
[error] <param> | |
[error] "$outer" | |
[error] <tpt> // tree.tpe=crash.PatMatCrash | |
[error] <empty> | |
[error] ) | |
[error] <tpt> // tree.tpe=crash.PatMatCrash$$anonfun$1 | |
[error] Block( // tree.tpe=Unit | |
[error] Apply( // def <init>(): runtime.AbstractPartialFunction in class AbstractPartialFunction, tree.tpe=runtime.AbstractPartialFunction | |
[error] PatMatCrash$$anonfun$1.super."<init>" // def <init>(): runtime.AbstractPartialFunction in class AbstractPartialFunction, tree.tpe=()runtime.AbstractPartialFunction | |
[error] Nil | |
[error] ) | |
[error] () | |
[error] ) | |
[error] ) | |
[error] ) | |
[error] | |
[error] == Expanded type of tree == | |
[error] | |
[error] <notype> | |
[error] | |
[error] Unknown type: ?, ? [class scala.reflect.internal.Types$WildcardType$, class scala.reflect.internal.Types$WildcardType$] TypeRef? false |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class PatMatCrash { | |
def foo[T](pattern: PartialFunction[T, Unit]) = ??? | |
// CRASHES | |
foo { | |
case "foo" => () | |
} | |
// does NOT crash | |
foo[String] { | |
case "foo" => () | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It's a new mode of failure for https://issues.scala-lang.org/browse/SI-6258