Last active
May 20, 2016 17:12
-
-
Save sullivan-/5e591458f3338ebf4be626cb5a8e91be to your computer and use it in GitHub Desktop.
crashing the scala compiler
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
object crash { | |
class Bar[A] | |
def bar[A](barOpt: Option[Bar[_ >: A]]): Bar[A] = new Bar | |
def build[A](barOpt: Option[Bar[_ >: A]]): Bar[A] = | |
// fix the crash by inserting "[A]" on the following line | |
bar(barOpt) | |
} |
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
[error] trying to do lub/glb of typevar ?A | |
[error] while compiling: /Users/jsmscs/ws/crash1/src/main/scala/package.scala | |
[error] during phase: typer | |
[error] library version: version 2.11.7 | |
[error] compiler version: version 2.11.7 | |
[error] reconstructed args: -Xfuture -Yno-adapted-args -deprecation -feature -language:implicitConversions -language:higherKinds -language:existentials -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/classes:/Users/jsmscs/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.7.jar -Ywarn-numeric-widen -unchecked -classpath /Users/jsmscs/ws/crash1/target/scala-2.11/classes:/Users/jsmscs/.ivy2/cache/org.scoverage/scalac-scoverage-runtime_2.11/jars/scalac-scoverage-runtime_2.11-1.1.1.jar:/Users/jsmscs/.ivy2/cache/org.scoverage/scalac-scoverage-plugin_2.11/jars/scalac-scoverage-plugin_2.11-1.1.1.jar | |
[error] | |
[error] last tree to typer: Ident(barOpt) | |
[error] tree position: line 11 of /Users/jsmscs/ws/crash1/src/main/scala/package.scala | |
[error] tree tpe: Option[crash.Bar[_ >: A]] | |
[error] symbol: value barOpt | |
[error] symbol definition: barOpt: Option[crash.Bar[_ >: A]] (a TermSymbol) | |
[error] symbol package: <empty> | |
[error] symbol owners: value barOpt -> method build -> object crash | |
[error] call site: method build in object crash in package <empty> | |
[error] | |
[error] == Source file context for tree position == | |
[error] | |
[error] 8 def build[A](barOpt: Option[Bar[_ >: A]]): Bar[A] = | |
[error] 9 // fix the crash by inserting "[A]" on the following line | |
[error] 10 bar(barOpt) | |
[error] 11 | |
[error] 12 } | |
[trace] Stack trace suppressed: run last compile:compileIncremental for the full output. | |
[error] (compile:compileIncremental) scala.reflect.internal.FatalError: | |
[error] trying to do lub/glb of typevar ?A | |
[error] while compiling: /Users/jsmscs/ws/crash1/src/main/scala/package.scala | |
[error] during phase: typer | |
[error] library version: version 2.11.7 | |
[error] compiler version: version 2.11.7 | |
[error] reconstructed args: -Xfuture -Yno-adapted-args -deprecation -feature -language:implicitConversions -language:higherKinds -language:existentials -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/classes:/Users/jsmscs/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.7.jar -Ywarn-numeric-widen -unchecked -classpath /Users/jsmscs/ws/crash1/target/scala-2.11/classes:/Users/jsmscs/.ivy2/cache/org.scoverage/scalac-scoverage-runtime_2.11/jars/scalac-scoverage-runtime_2.11-1.1.1.jar:/Users/jsmscs/.ivy2/cache/org.scoverage/scalac-scoverage-plugin_2.11/jars/scalac-scoverage-plugin_2.11-1.1.1.jar | |
[error] | |
[error] last tree to typer: Ident(barOpt) | |
[error] tree position: line 11 of /Users/jsmscs/ws/crash1/src/main/scala/package.scala | |
[error] tree tpe: Option[crash.Bar[_ >: A]] | |
[error] symbol: value barOpt | |
[error] symbol definition: barOpt: Option[crash.Bar[_ >: A]] (a TermSymbol) | |
[error] symbol package: <empty> | |
[error] symbol owners: value barOpt -> method build -> object crash | |
[error] call site: method build in object crash in package <empty> | |
[error] | |
[error] == Source file context for tree position == | |
[error] | |
[error] 8 def build[A](barOpt: Option[Bar[_ >: A]]): Bar[A] = | |
[error] 9 // fix the crash by inserting "[A]" on the following line | |
[error] 10 bar(barOpt) | |
[error] 11 | |
[error] 12 } |
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
at scala.reflect.internal.Reporting$class.abort(Reporting.scala:59) | |
at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:16) | |
at scala.reflect.internal.tpe.GlbLubs$class.stripType$1(GlbLubs.scala:224) | |
at scala.reflect.internal.tpe.GlbLubs$$anonfun$18.apply(GlbLubs.scala:227) | |
at scala.reflect.internal.tpe.GlbLubs$$anonfun$18.apply(GlbLubs.scala:227) | |
at scala.collection.immutable.List.loop$1(List.scala:173) | |
at scala.collection.immutable.List.mapConserve(List.scala:189) | |
at scala.reflect.internal.tpe.GlbLubs$class.stripExistentialsAndTypeVars(GlbLubs.scala:227) | |
at scala.reflect.internal.tpe.GlbLubs$class.lub1$1(GlbLubs.scala:328) | |
at scala.reflect.internal.tpe.GlbLubs$class.lub0$1(GlbLubs.scala:322) | |
at scala.reflect.internal.tpe.GlbLubs$class.lub(GlbLubs.scala:419) | |
at scala.reflect.internal.SymbolTable.lub(SymbolTable.scala:16) | |
at scala.reflect.internal.tpe.GlbLubs$class.lub(GlbLubs.scala:279) | |
at scala.reflect.internal.SymbolTable.lub(SymbolTable.scala:16) | |
at scala.reflect.internal.tpe.TypeConstraints$class.solveOne$1(TypeConstraints.scala:248) | |
at scala.reflect.internal.tpe.TypeConstraints$$anonfun$solve$1.apply(TypeConstraints.scala:260) | |
at scala.reflect.internal.tpe.TypeConstraints$$anonfun$solve$1.apply(TypeConstraints.scala:260) | |
at scala.reflect.internal.util.Collections$class.foreach3(Collections.scala:231) | |
at scala.reflect.internal.SymbolTable.foreach3(SymbolTable.scala:16) | |
at scala.reflect.internal.tpe.TypeConstraints$class.solve(TypeConstraints.scala:260) | |
at scala.reflect.internal.SymbolTable.solve(SymbolTable.scala:16) | |
at scala.reflect.internal.Types$ExistentialType.withTypeVars(Types.scala:2696) | |
at scala.reflect.internal.tpe.TypeComparers$class.thirdTry$1(TypeComparers.scala:483) | |
at scala.reflect.internal.tpe.TypeComparers$class.secondTry$1(TypeComparers.scala:450) | |
at scala.reflect.internal.tpe.TypeComparers$class.firstTry$1(TypeComparers.scala:426) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType2(TypeComparers.scala:552) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType1(TypeComparers.scala:320) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType(TypeComparers.scala:278) | |
at scala.reflect.internal.SymbolTable.isSubType(SymbolTable.scala:16) | |
at scala.reflect.internal.tpe.TypeComparers$class.secondTry$1(TypeComparers.scala:445) | |
at scala.reflect.internal.tpe.TypeComparers$class.firstTry$1(TypeComparers.scala:426) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType2(TypeComparers.scala:552) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType1(TypeComparers.scala:320) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType(TypeComparers.scala:278) | |
at scala.reflect.internal.SymbolTable.isSubType(SymbolTable.scala:16) | |
at scala.reflect.internal.Types$class.isSubArg$1(Types.scala:4117) | |
at scala.reflect.internal.Types$$anonfun$isSubArgs$2.apply(Types.scala:4120) | |
at scala.reflect.internal.Types$$anonfun$isSubArgs$2.apply(Types.scala:4120) | |
at scala.reflect.internal.util.Collections$class.corresponds3(Collections.scala:24) | |
at scala.reflect.internal.SymbolTable.corresponds3(SymbolTable.scala:16) | |
at scala.reflect.internal.Types$class.isSubArgs(Types.scala:4120) | |
at scala.reflect.internal.SymbolTable.isSubArgs(SymbolTable.scala:16) | |
at scala.reflect.internal.tpe.TypeComparers$class.firstTry$1(TypeComparers.scala:402) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType2(TypeComparers.scala:552) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType1(TypeComparers.scala:320) | |
at scala.reflect.internal.tpe.TypeComparers$class.isSubType(TypeComparers.scala:278) | |
at scala.reflect.internal.SymbolTable.isSubType(SymbolTable.scala:16) | |
at scala.reflect.internal.tpe.TypeComparers$class.isWeakSubType(TypeComparers.scala:575) | |
at scala.reflect.internal.SymbolTable.isWeakSubType(SymbolTable.scala:16) | |
at scala.reflect.internal.Types$Type.weak_$less$colon$less(Types.scala:825) | |
at scala.tools.nsc.typechecker.Infer$Inferencer.scala$tools$nsc$typechecker$Infer$Inferencer$$isCompatible(Infer.scala:305) | |
at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$methTypeArgs$2.apply(Infer.scala:545) | |
at scala.tools.nsc.typechecker.Infer$Inferencer$$anonfun$methTypeArgs$2.apply(Infer.scala:539) | |
at scala.reflect.internal.util.Collections$class.map2(Collections.scala:79) | |
at scala.reflect.internal.SymbolTable.map2(SymbolTable.scala:16) | |
at scala.tools.nsc.typechecker.Infer$Inferencer.methTypeArgs(Infer.scala:539) | |
at scala.tools.nsc.typechecker.Infer$Inferencer.inferMethodInstance(Infer.scala:992) | |
at scala.tools.nsc.typechecker.Typers$Typer.handlePolymorphicCall$1(Typers.scala:3529) | |
at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3534) | |
at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4545) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4579) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5342) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359) | |
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395) | |
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422) | |
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373) | |
at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5604) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2208) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5307) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5358) | |
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395) | |
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422) | |
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5451) | |
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:3047) | |
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151) | |
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151) | |
at scala.collection.immutable.List.loop$1(List.scala:173) | |
at scala.collection.immutable.List.mapConserve(List.scala:189) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3151) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1921) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1808) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5309) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5358) | |
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395) | |
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422) | |
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5451) | |
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:3047) | |
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151) | |
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151) | |
at scala.collection.immutable.List.loop$1(List.scala:173) | |
at scala.collection.immutable.List.mapConserve(List.scala:189) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3151) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5014) | |
at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5311) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5358) | |
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395) | |
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422) | |
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373) | |
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5447) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:102) | |
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply$mcV$sp(Global.scala:440) | |
at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:431) | |
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:440) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:94) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:93) | |
at scala.collection.Iterator$class.foreach(Iterator.scala:742) | |
at scala.collection.AbstractIterator.foreach(Iterator.scala:1194) | |
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:93) | |
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1501) | |
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1486) | |
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1481) | |
at scala.tools.nsc.Global$Run.compile(Global.scala:1582) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:116) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:95) | |
at xsbt.CompilerInterface.run(CompilerInterface.scala:26) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at java.lang.reflect.Method.invoke(Method.java:497) | |
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41) | |
at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply$mcV$sp(MixedAnalyzingCompiler.scala:51) | |
at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:51) | |
at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:51) | |
at sbt.compiler.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:75) | |
at sbt.compiler.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:50) | |
at sbt.compiler.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:65) | |
at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160) | |
at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:66) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:64) | |
at sbt.inc.IncrementalCommon.cycle(IncrementalCommon.scala:31) | |
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:62) | |
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:61) | |
at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:89) | |
at sbt.inc.Incremental$.compile(Incremental.scala:61) | |
at sbt.inc.IncrementalCompile$.apply(Compile.scala:54) | |
at sbt.compiler.IC$.compileInternal(IncrementalCompiler.scala:160) | |
at sbt.compiler.IC$.incrementalCompile(IncrementalCompiler.scala:138) | |
at sbt.Compiler$.compile(Compiler.scala:128) | |
at sbt.Compiler$.compile(Compiler.scala:114) | |
at sbt.Defaults$.sbt$Defaults$$compileIncrementalTaskImpl(Defaults.scala:814) | |
at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:805) | |
at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:803) | |
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) | |
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40) | |
at sbt.std.Transform$$anon$4.work(System.scala:63) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226) | |
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17) | |
at sbt.Execute.work(Execute.scala:235) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226) | |
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159) | |
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28) | |
at java.util.concurrent.FutureTask.run(FutureTask.java:266) | |
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) | |
at java.util.concurrent.FutureTask.run(FutureTask.java:266) | |
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) | |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) | |
at java.lang.Thread.run(Thread.java:745) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment