Last active
December 11, 2015 22:58
-
-
Save bblfish/4673272 to your computer and use it in GitHub Desktop.
This code crahes the scala 2.10.0 compiler on OSX with java "1.7.0_11"
This file contains 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
//Using library from "net.sf.uadetector" % "uadetector-resources" % "2012.12" | |
import net.sf.uadetector.service._ | |
import net.sf.uadetector.UserAgentFamily._ | |
import net.sf.uadetector.UserAgent | |
val agentParser = UADetectorServiceFactory.getResourceModuleParser | |
val UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.45 Safari/53.22" | |
val agent = agentParser.parse(UA) | |
//this must function crashes the compiler. getFamily returns a java Enum | |
def must(agent: UserAgent) = agent.getFamily() match { | |
case CURL => true | |
case JAVA => true | |
case SAFARI => true | |
case OPERA => true | |
case _ => false | |
} |
This file contains 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
running last bit in the console creates the following error: | |
// Exiting paste mode, now interpreting. | |
error: | |
while compiling: <console> | |
during phase: patmat | |
library version: version 2.10.0 | |
compiler version: version 2.10.0 | |
reconstructed args: -encoding utf8 -deprecation -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/lib/JObjC.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/classes:/Volumes/Dev/Programming/Scala/rww-play/Play20/framework/sbt/boot/scala-2.10.0/lib/scala-library.jar -classpath /Volumes/Dev/Programming/Scala/rww-play/lib/WebID.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/local/play/play_2.10/2.1-SNAPSHOT/jars/play_2.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/local/play/sbt-link/2.1-SNAPSHOT/jars/sbt-link.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.javassist/javassist/jars/javassist-3.16.1-GA.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/local/play/play-exceptions/2.1-SNAPSHOT/jars/play-exceptions.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/local/play/templates_2.10/2.1-SNAPSHOT/jars/templates_2.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.github.scala-incubator.io/scala-io-file_2.10/jars/scala-io-file_2.10-0.4.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.github.scala-incubator.io/scala-io-core_2.10/jars/scala-io-core_2.10-0.4.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.jsuereth/scala-arm_2.10/jars/scala-arm_2.10-1.3.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.scala-stm/scala-stm_2.10.0/jars/scala-stm_2.10.0-0.6.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.typesafe/config/bundles/config-1.0.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/io.netty/netty/bundles/netty-3.5.9.Final.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.slf4j/jul-to-slf4j/jars/jul-to-slf4j-1.6.6.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.slf4j/jcl-over-slf4j/jars/jcl-over-slf4j-1.6.6.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/ch.qos.logback/logback-core/jars/logback-core-1.0.7.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.7.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.typesafe.akka/akka-actor_2.10/bundles/akka-actor_2.10-2.1.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.typesafe.akka/akka-slf4j_2.10/bundles/akka-slf4j_2.10-2.1.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/joda-time/joda-time/jars/joda-time-2.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.joda/joda-convert/jars/joda-convert-1.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.apache.commons/commons-lang3/jars/commons-lang3-3.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.ning/async-http-client/jars/async-http-client-1.7.6.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/oauth.signpost/signpost-core/jars/signpost-core-1.2.1.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/oauth.signpost/signpost-commonshttp4/jars/signpost-commonshttp4-1.2.1.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.codehaus.jackson/jackson-core-asl/jars/jackson-core-asl-1.9.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.codehaus.jackson/jackson-mapper-asl/jars/jackson-mapper-asl-1.9.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/net.sf.ehcache/ehcache-core/jars/ehcache-core-2.6.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/javax.transaction/jta/jars/jta-1.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.scalatest/scalatest_2.10.0-RC5/jars/scalatest_2.10.0-RC5-2.0.M5-B1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.w3/banana-jena_2.10/jars/banana-jena_2.10-2013_01_16-SNAPSHOT.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.w3/banana-rdf_2.10/jars/banana-rdf_2.10-2013_01_16-SNAPSHOT.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.github.scala-incubator.io/scala-io-core_2.10.0-RC1/jars/scala-io-core_2.10.0-RC1-0.4.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.jsuereth/scala-arm_2.10.0-RC1/jars/scala-arm_2.10.0-RC1-1.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.github.scala-incubator.io/scala-io-file_2.10.0-RC1/jars/scala-io-file_2.10.0-RC1-0.4.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.scalaz/scalaz-core_2.10/bundles/scalaz-core_2.10-7.0.0-M7.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.apache.jena/jena-arq/jars/jena-arq-2.9.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.apache.jena/jena-core/jars/jena-core-2.7.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.apache.jena/jena-iri/jars/jena-iri-0.9.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.4.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/log4j/log4j/bundles/log4j-1.2.16.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/xerces/xercesImpl/jars/xercesImpl-2.10.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/xml-apis/xml-apis/jars/xml-apis-1.4.01.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/commons-codec/commons-codec/jars/commons-codec-1.5.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.1.2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.1.3.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.apache.jena/jena-tdb/jars/jena-tdb-0.9.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.fasterxml/aalto-xml/bundles/aalto-xml-0.9.7.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.codehaus.woodstox/stax2-api/jars/stax2-api-3.0.3.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/javax.xml.stream/stax-api/jars/stax-api-1.0-2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.w3/banana-sesame_2.10/jars/banana-sesame_2.10-2013_01_16-SNAPSHOT.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-sail-memory/jars/sesame-sail-memory-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-sail-api/jars/sesame-sail-api-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-query/jars/sesame-query-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-model/jars/sesame-model-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-util/jars/sesame-util-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-rio-api/jars/sesame-rio-api-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryalgebra-model/jars/sesame-queryalgebra-model-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-sail-inferencer/jars/sesame-sail-inferencer-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryparser-api/jars/sesame-queryparser-api-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryalgebra-evaluation/jars/sesame-queryalgebra-evaluation-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-repository-sparql/jars/sesame-repository-sparql-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-repository-api/jars/sesame-repository-api-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-http-client/jars/sesame-http-client-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-http-protocol/jars/sesame-http-protocol-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-rio-ntriples/jars/sesame-rio-ntriples-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryresultio-api/jars/sesame-queryresultio-api-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/commons-httpclient/commons-httpclient/jars/commons-httpclient-3.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryresultio-sparqlxml/jars/sesame-queryresultio-sparqlxml-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-sail-nativerdf/jars/sesame-sail-nativerdf-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-rio-turtle/jars/sesame-rio-turtle-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-rio-rdfxml/jars/sesame-rio-rdfxml-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryparser-sparql/jars/sesame-queryparser-sparql-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryresultio-sparqljson/jars/sesame-queryresultio-sparqljson-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-repository-sail/jars/sesame-repository-sail-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.openrdf.sesame/sesame-queryparser-serql/jars/sesame-queryparser-serql-2.6.10.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.w3/plantain_2.10/jars/plantain_2.10-2013_01_16-SNAPSHOT.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.typesafe.akka/akka-transactor_2.10/bundles/akka-transactor_2.10-2.1.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.scala-stm/scala-stm_2.10/jars/scala-stm_2.10-0.7.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/play/play-iteratees_2.10/jars/play-iteratees_2.10-2.1-RC2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/net.rootdev/java-rdfa/bundles/java-rdfa-0.4.2-RC2.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.hp.hpl.jena/iri/jars/iri-0.8.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/com.ibm.icu/icu4j/jars/icu4j-3.4.4.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/nu.validator.htmlparser/htmlparser/jars/htmlparser-1.2.1.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.bouncycastle/bcprov-jdk15on/jars/bcprov-jdk15on-1.47.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/org.scala-lang/scala-actors/jars/scala-actors-2.10.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/net.sf.uadetector/uadetector-resources/bundles/uadetector-resources-2012.12.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/repository/cache/net.sf.uadetector/uadetector-core/bundles/uadetector-core-0.9.0.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/framework/sbt/boot/scala-2.10.0/lib/scala-compiler.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/framework/sbt/boot/scala-2.10.0/lib/jline.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/framework/sbt/boot/scala-2.10.0/lib/scala-reflect.jar:/Volumes/Dev/Programming/Scala/rww-play/Play20/framework/sbt/boot/scala-2.10.0/lib/jansi.jar -unchecked -Yrepl-sync | |
last tree to typer: TypeTree(class Boolean) | |
symbol: class Boolean in package scala (flags: final abstract) | |
symbol definition: final abstract class Boolean extends AnyVal | |
tpe: Boolean | |
symbol owners: class Boolean -> package scala | |
context owners: value agent -> method must -> object $iw -> object $iw -> object $iw -> object $iw -> object $iw -> object $iw -> object $read -> package $line35 | |
== Enclosing template or block == | |
DefDef( // def must(agent: net.sf.uadetector.UserAgent): Boolean | |
<method> | |
"must" | |
[] | |
// 1 parameter list | |
ValDef( // agent: net.sf.uadetector.UserAgent | |
<param> <triedcooking> | |
"agent" | |
<tpt> // tree.tpe=net.sf.uadetector.UserAgent | |
<empty> | |
) | |
<tpt> // tree.tpe=Boolean | |
Match( // tree.tpe=Boolean | |
Apply( // def getFamily(): net.sf.uadetector.UserAgentFamily in class UserAgent, tree.tpe=net.sf.uadetector.UserAgentFamily | |
"agent"."getFamily" // def getFamily(): net.sf.uadetector.UserAgentFamily in class UserAgent, tree.tpe=()net.sf.uadetector.UserAgentFamily | |
Nil | |
) | |
// 5 cases | |
CaseDef( // tree.tpe=Boolean(true) | |
CURL | |
true | |
) | |
CaseDef( // tree.tpe=Boolean(true) | |
JAVA | |
true | |
) | |
CaseDef( // tree.tpe=Boolean(true) | |
SAFARI | |
true | |
) | |
CaseDef( // tree.tpe=Boolean(true) | |
OPERA | |
true | |
) | |
CaseDef( // tree.tpe=Boolean(false) | |
"_" // tree.tpe=net.sf.uadetector.UserAgentFamily | |
false | |
) | |
) | |
) | |
== Expanded type of tree == | |
TypeRef(TypeSymbol(final abstract class Boolean extends AnyVal)) | |
uncaught exception during compilation: java.lang.StackOverflowError | |
java.lang.StackOverflowError | |
at scala.tools.nsc.typechecker.PatternMatching$Logic$And.equals(PatternMatching.scala:1901) | |
at scala.tools.nsc.typechecker.PatternMatching$Logic$And.equals(PatternMatching.scala:1901) | |
at scala.tools.nsc.typechecker.PatternMatching$Logic$And.equals(PatternMatching.scala:1901) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment