macroparadise/4.x nightly Crash IDE Scala Compiler: java.lang.NoSuchMethodError: scala.tools.nsc.Settings.lint()
Attached is a full example project.
TLDR; macroparadise as the nightly Scala IDE are generating a Scala IDE Compiler Crash.
----
Pertinent replication code pulled from the attached example:
build.sbt:
// Paradise is needed for both 2.10 and 2.11 in order to use macro annotations
libraryDependencies += compilerPlugin("org.scalamacros" % "paradise" % "2.1.0-M1" cross CrossVersion.full)
Scala file:
import scala.annotation.StaticAnnotation
class foo(bar: String) extends StaticAnnotation { }
Will generate:
Description Resource Path Location Type
SBT builder crashed while compiling. The error message is 'scala.tools.nsc.Settings.lint()Lscala/tools/nsc/settings/MutableSettings$BooleanSetting;'. Check Error Log for details. idecrash Unknown Scala Problem
Error in Scala compiler: scala.tools.nsc.Settings.lint()Lscala/tools/nsc/settings/MutableSettings$BooleanSetting; idecrash Unknown Scala Problem
IDE Debug Log File:
2014-07-23 08:50:55,010 ERROR [main] - org.scala-ide.sdt.core - org.scala-ide.sdt.core - org.scala-ide.sdt.core - 0 - Error in Scala compiler
java.lang.NoSuchMethodError: scala.tools.nsc.Settings.lint()Lscala/tools/nsc/settings/MutableSettings$BooleanSetting;
at org.scalamacros.paradise.typechecker.Namers$Namer$$anonfun$finishSymbolNotExpandee$1.apply(Namers.scala:231)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.savingLock$1(Namers.scala:213)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbolNotExpandee(Namers.scala:217)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbolNotExpandee(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbol(Namers.scala:181)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbol(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.dispatch$1(Namers.scala:34)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.enterSym(Namers.scala:40)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.enterSym(Namers.scala:13)
at org.scalamacros.paradise.typechecker.AnalyzerPlugins$MacroPlugin$.pluginsEnterSym(AnalyzerPlugins.scala:35)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$13.custom(AnalyzerPlugins.scala:429)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.collection.immutable.List.map(List.scala:272)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsEnterSym(AnalyzerPlugins.scala:423)
at scala.tools.nsc.Global$$anon$1.pluginsEnterSym(Global.scala:439)
at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:274)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:499)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:498)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:110)
at scala.collection.immutable.List.foldLeft(List.scala:83)
at scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:498)
at org.scalamacros.paradise.typechecker.Namers$Namer$$anonfun$finishSymbolNotExpandee$1.apply(Namers.scala:219)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.savingLock$1(Namers.scala:213)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbolNotExpandee(Namers.scala:217)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbolNotExpandee(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbol(Namers.scala:181)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbol(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.dispatch$1(Namers.scala:34)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.enterSym(Namers.scala:40)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.enterSym(Namers.scala:13)
at org.scalamacros.paradise.typechecker.AnalyzerPlugins$MacroPlugin$.pluginsEnterSym(AnalyzerPlugins.scala:35)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$13.custom(AnalyzerPlugins.scala:429)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.collection.immutable.List.map(List.scala:272)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsEnterSym(AnalyzerPlugins.scala:423)
at scala.tools.nsc.Global$$anon$1.pluginsEnterSym(Global.scala:439)
at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:274)
at scala.tools.nsc.typechecker.Analyzer$namerFactory$$anon$1.apply(Analyzer.scala:43)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:410)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:377)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:377)
at scala.collection.Iterator$class.foreach(Iterator.scala:743)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1177)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:377)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1557)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1542)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1537)
at scala.tools.nsc.Global$Run.compile(Global.scala:1644)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:123)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:99)
at xsbt.CompilerInterface.run(CompilerInterface.scala:27)
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:483)
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:102)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:99)
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:99)
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:99)
at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:166)
at sbt.compiler.AggressiveCompile$$anonfun$3.compileScala$1(AggressiveCompile.scala:98)
at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:143)
at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:87)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:39)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:37)
at sbt.inc.IncrementalCommon.cycle(Incremental.scala:99)
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:38)
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:37)
at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:65)
at sbt.inc.Incremental$.compile(Incremental.scala:37)
at sbt.inc.IncrementalCompile$.apply(Compile.scala:27)
at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:157)
at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:71)
at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:46)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.aggressiveCompile(EclipseSbtBuildManager.scala:236)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.runCompiler(EclipseSbtBuildManager.scala:150)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.update(EclipseSbtBuildManager.scala:141)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.build(EclipseSbtBuildManager.scala:195)
at org.scalaide.core.internal.project.ScalaProject.build(ScalaProject.scala:802)
at org.scalaide.core.internal.builder.ScalaBuilder.build(ScalaBuilder.scala:125)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:733)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
TLDR; macroparadise as the nightly Scala IDE are generating a Scala IDE Compiler Crash.
----
Pertinent replication code pulled from the attached example:
build.sbt:
// Paradise is needed for both 2.10 and 2.11 in order to use macro annotations
libraryDependencies += compilerPlugin("org.scalamacros" % "paradise" % "2.1.0-M1" cross CrossVersion.full)
Scala file:
import scala.annotation.StaticAnnotation
class foo(bar: String) extends StaticAnnotation { }
Will generate:
Description Resource Path Location Type
SBT builder crashed while compiling. The error message is 'scala.tools.nsc.Settings.lint()Lscala/tools/nsc/settings/MutableSettings$BooleanSetting;'. Check Error Log for details. idecrash Unknown Scala Problem
Error in Scala compiler: scala.tools.nsc.Settings.lint()Lscala/tools/nsc/settings/MutableSettings$BooleanSetting; idecrash Unknown Scala Problem
IDE Debug Log File:
2014-07-23 08:50:55,010 ERROR [main] - org.scala-ide.sdt.core - org.scala-ide.sdt.core - org.scala-ide.sdt.core - 0 - Error in Scala compiler
java.lang.NoSuchMethodError: scala.tools.nsc.Settings.lint()Lscala/tools/nsc/settings/MutableSettings$BooleanSetting;
at org.scalamacros.paradise.typechecker.Namers$Namer$$anonfun$finishSymbolNotExpandee$1.apply(Namers.scala:231)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.savingLock$1(Namers.scala:213)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbolNotExpandee(Namers.scala:217)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbolNotExpandee(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbol(Namers.scala:181)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbol(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.dispatch$1(Namers.scala:34)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.enterSym(Namers.scala:40)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.enterSym(Namers.scala:13)
at org.scalamacros.paradise.typechecker.AnalyzerPlugins$MacroPlugin$.pluginsEnterSym(AnalyzerPlugins.scala:35)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$13.custom(AnalyzerPlugins.scala:429)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.collection.immutable.List.map(List.scala:272)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsEnterSym(AnalyzerPlugins.scala:423)
at scala.tools.nsc.Global$$anon$1.pluginsEnterSym(Global.scala:439)
at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:274)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:499)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:498)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:110)
at scala.collection.immutable.List.foldLeft(List.scala:83)
at scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:498)
at org.scalamacros.paradise.typechecker.Namers$Namer$$anonfun$finishSymbolNotExpandee$1.apply(Namers.scala:219)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.savingLock$1(Namers.scala:213)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbolNotExpandee(Namers.scala:217)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbolNotExpandee(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.finishSymbol(Namers.scala:181)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.finishSymbol(Namers.scala:13)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.dispatch$1(Namers.scala:34)
at org.scalamacros.paradise.typechecker.Namers$Namer$class.enterSym(Namers.scala:40)
at org.scalamacros.paradise.typechecker.Namers$$anon$3.enterSym(Namers.scala:13)
at org.scalamacros.paradise.typechecker.AnalyzerPlugins$MacroPlugin$.pluginsEnterSym(AnalyzerPlugins.scala:35)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$13.custom(AnalyzerPlugins.scala:429)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$$anonfun$2.apply(AnalyzerPlugins.scala:371)
at scala.collection.immutable.List.map(List.scala:272)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:371)
at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsEnterSym(AnalyzerPlugins.scala:423)
at scala.tools.nsc.Global$$anon$1.pluginsEnterSym(Global.scala:439)
at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:274)
at scala.tools.nsc.typechecker.Analyzer$namerFactory$$anon$1.apply(Analyzer.scala:43)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:410)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:377)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:377)
at scala.collection.Iterator$class.foreach(Iterator.scala:743)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1177)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:377)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1557)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1542)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1537)
at scala.tools.nsc.Global$Run.compile(Global.scala:1644)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:123)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:99)
at xsbt.CompilerInterface.run(CompilerInterface.scala:27)
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:483)
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:102)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:99)
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:99)
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:99)
at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:166)
at sbt.compiler.AggressiveCompile$$anonfun$3.compileScala$1(AggressiveCompile.scala:98)
at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:143)
at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:87)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:39)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:37)
at sbt.inc.IncrementalCommon.cycle(Incremental.scala:99)
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:38)
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:37)
at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:65)
at sbt.inc.Incremental$.compile(Incremental.scala:37)
at sbt.inc.IncrementalCompile$.apply(Compile.scala:27)
at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:157)
at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:71)
at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:46)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.aggressiveCompile(EclipseSbtBuildManager.scala:236)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.runCompiler(EclipseSbtBuildManager.scala:150)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.update(EclipseSbtBuildManager.scala:141)
at org.scalaide.core.internal.builder.zinc.EclipseSbtBuildManager.build(EclipseSbtBuildManager.scala:195)
at org.scalaide.core.internal.project.ScalaProject.build(ScalaProject.scala:802)
at org.scalaide.core.internal.builder.ScalaBuilder.build(ScalaBuilder.scala:125)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:733)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Leave a comment
on 2014-07-23 11:45 *
By ericpeters
I just checked, even if I bump to the paradise SNAPSHOT I still get the compiler crash.
libraryDependencies += compilerPlugin("org.scalamacros" % "paradise" % "2.1.0-SNAPSHOT" cross CrossVersion.full))
libraryDependencies += compilerPlugin("org.scalamacros" % "paradise" % "2.1.0-SNAPSHOT" cross CrossVersion.full))
on 2014-07-23 12:34 *
By ericpeters
Looks like this is fixed if you use paradise "2.1.0-SNAPSHOT" with 2.11.2
on 2014-07-23 13:08 *
By ericpeters
ALSO looks like simply using the 2.11.2 scala versino for the project and using the old 2.0.1 paradise also works...so guess the solution was to bump my projects to the new 2.11.2 release
Check compiler plugins for version conflicts and cleanup
PC options in case of incompatibilities.
Compiler plugins (like macro-paradise) are cross-compiled with
the full Scala version, and they are not binary compatible across
minor versions. We acknowledge that and check it properly in the
classpath validator.
Compiler plugins can’t be instantiated in the PC unless the
project Scala version (Installation) is exactly the same as
the platform (the one Eclipse is running). This commit fixes PC
crashes due to such incompatibilities.
Re #1002226
Fix #1002358
Fix #1002186
Branch: master
Commit: scala-ide:56b056f83e
PC options in case of incompatibilities.
Compiler plugins (like macro-paradise) are cross-compiled with
the full Scala version, and they are not binary compatible across
minor versions. We acknowledge that and check it properly in the
classpath validator.
Compiler plugins can’t be instantiated in the PC unless the
project Scala version (Installation) is exactly the same as
the platform (the one Eclipse is running). This commit fixes PC
crashes due to such incompatibilities.
Re #1002226
Fix #1002358
Fix #1002186
Branch: master
Commit: scala-ide:56b056f83e