Organize imports fails with custom wildcard import configs
When custom wildcard imports are configured for the plugin and used in source code, the plugin fails to organize the imports.
For example when akka.actor is added to the list of "Always use wildcard imports" and the source code has the line "import akka.actor._" the organize import function will do nothing.
Simple example that fails:
import akka.actor._
import scala.collection.mutable
class Test extends Actor {
def receive = { case _ => }
}
Removing "akka.actor" from the wildcard import list is a workaround.
Log shows this error message:
2013-07-18 22:09:11,173 ERROR [main] - org.scala-ide.sdt.core - org.scala-ide.sdt.core - org.scala-ide.sdt.core - 0 - Error during askOption
java.lang.RuntimeException: Not implemented! ImportSelectorTree
at scala.sys.package$.error(package.scala:27)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.default(TreePrintingTraversals.scala:87)
at scala.tools.refactoring.sourcegen.PrettyPrinter$prettyPrinter$.default(PrettyPrinter.scala:18)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.ImportSelectorTree(TreePrintingTraversals.scala:137)
at scala.tools.refactoring.sourcegen.PrettyPrinter$prettyPrinter$.ImportSelectorTree(PrettyPrinter.scala:18)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:73)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.dispatchToPrinter(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.sourcegen.PrettyPrinter$prettyPrinter$.dispatchToPrinter(PrettyPrinter.scala:18)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.print(SourceGenerator.scala:158)
at scala.tools.refactoring.MultiStageRefactoring.print(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printSingleTree(TreePrintingTraversals.scala:192)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printSingleTree(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:268)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:267)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printManyTrees(TreePrintingTraversals.scala:267)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printManyTrees(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.pp(TreePrintingTraversals.scala:172)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.pp(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.ReusingPrinter$ImportPrinters$class.Import(ReusingPrinter.scala:587)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.Import(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:32)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.dispatchToPrinter(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.dispatchToPrinter(ReusingPrinter.scala:42)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.print(SourceGenerator.scala:156)
at scala.tools.refactoring.MultiStageRefactoring.print(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printSingleTree(TreePrintingTraversals.scala:192)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printSingleTree(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:268)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:267)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printManyTrees(TreePrintingTraversals.scala:267)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printManyTrees(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.pp(TreePrintingTraversals.scala:172)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.pp(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.ReusingPrinter$PackagePrinters$class.PackageDef(ReusingPrinter.scala:641)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.PackageDef(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:25)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.dispatchToPrinter(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.dispatchToPrinter(ReusingPrinter.scala:42)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.print(SourceGenerator.scala:156)
at scala.tools.refactoring.MultiStageRefactoring.print(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.generate(SourceGenerator.scala:88)
at scala.tools.refactoring.MultiStageRefactoring.generate(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$generateFragmentsFromTrees$4.apply(SourceGenerator.scala:117)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$generateFragmentsFromTrees$4.apply(SourceGenerator.scala:114)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.generateFragmentsFromTrees(SourceGenerator.scala:114)
at scala.tools.refactoring.MultiStageRefactoring.generateFragmentsFromTrees(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$createChanges$1.apply(SourceGenerator.scala:33)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$createChanges$1.apply(SourceGenerator.scala:33)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.createChanges(SourceGenerator.scala:32)
at scala.tools.refactoring.MultiStageRefactoring.createChanges(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.Refactoring$$anonfun$refactor$1.apply(Refactoring.scala:32)
at scala.tools.refactoring.Refactoring$$anonfun$refactor$1.apply(Refactoring.scala:31)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.Refactoring$class.refactor(Refactoring.scala:31)
at scala.tools.refactoring.MultiStageRefactoring.refactor(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.Refactoring$class.transformFile(Refactoring.scala:41)
at scala.tools.refactoring.MultiStageRefactoring.transformFile(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.implementations.OrganizeImports.perform(OrganizeImports.scala:425)
at scala.tools.refactoring.implementations.OrganizeImports.perform(OrganizeImports.scala:20)
at scala.tools.eclipse.refactoring.ScalaIdeRefactoring$$anonfun$5$$anonfun$apply$7.apply(ScalaIdeRefactoring.scala:158)
at scala.tools.eclipse.refactoring.ScalaIdeRefactoring$$anonfun$5$$anonfun$apply$7.apply(ScalaIdeRefactoring.scala:157)
at scala.tools.nsc.util.InterruptReq.execute(InterruptReq.scala:26)
at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:339)
at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:22)
For example when akka.actor is added to the list of "Always use wildcard imports" and the source code has the line "import akka.actor._" the organize import function will do nothing.
Simple example that fails:
import akka.actor._
import scala.collection.mutable
class Test extends Actor {
def receive = { case _ => }
}
Removing "akka.actor" from the wildcard import list is a workaround.
Log shows this error message:
2013-07-18 22:09:11,173 ERROR [main] - org.scala-ide.sdt.core - org.scala-ide.sdt.core - org.scala-ide.sdt.core - 0 - Error during askOption
java.lang.RuntimeException: Not implemented! ImportSelectorTree
at scala.sys.package$.error(package.scala:27)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.default(TreePrintingTraversals.scala:87)
at scala.tools.refactoring.sourcegen.PrettyPrinter$prettyPrinter$.default(PrettyPrinter.scala:18)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.ImportSelectorTree(TreePrintingTraversals.scala:137)
at scala.tools.refactoring.sourcegen.PrettyPrinter$prettyPrinter$.ImportSelectorTree(PrettyPrinter.scala:18)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:73)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.dispatchToPrinter(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.sourcegen.PrettyPrinter$prettyPrinter$.dispatchToPrinter(PrettyPrinter.scala:18)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.print(SourceGenerator.scala:158)
at scala.tools.refactoring.MultiStageRefactoring.print(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printSingleTree(TreePrintingTraversals.scala:192)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printSingleTree(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:268)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:267)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printManyTrees(TreePrintingTraversals.scala:267)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printManyTrees(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.pp(TreePrintingTraversals.scala:172)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.pp(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.ReusingPrinter$ImportPrinters$class.Import(ReusingPrinter.scala:587)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.Import(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:32)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.dispatchToPrinter(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.dispatchToPrinter(ReusingPrinter.scala:42)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.print(SourceGenerator.scala:156)
at scala.tools.refactoring.MultiStageRefactoring.print(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printSingleTree(TreePrintingTraversals.scala:192)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printSingleTree(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:268)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$printManyTrees$1.apply(TreePrintingTraversals.scala:267)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.printManyTrees(TreePrintingTraversals.scala:267)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.printManyTrees(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.pp(TreePrintingTraversals.scala:172)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.pp(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.ReusingPrinter$PackagePrinters$class.PackageDef(ReusingPrinter.scala:641)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.PackageDef(ReusingPrinter.scala:16)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:25)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$$anonfun$dispatchToPrinter$1.apply(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.TreePrintingTraversals$TreePrinting$class.dispatchToPrinter(TreePrintingTraversals.scala:18)
at scala.tools.refactoring.sourcegen.ReusingPrinter$reusingPrinter$.dispatchToPrinter(ReusingPrinter.scala:42)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.print(SourceGenerator.scala:156)
at scala.tools.refactoring.MultiStageRefactoring.print(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.generate(SourceGenerator.scala:88)
at scala.tools.refactoring.MultiStageRefactoring.generate(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$generateFragmentsFromTrees$4.apply(SourceGenerator.scala:117)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$generateFragmentsFromTrees$4.apply(SourceGenerator.scala:114)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.generateFragmentsFromTrees(SourceGenerator.scala:114)
at scala.tools.refactoring.MultiStageRefactoring.generateFragmentsFromTrees(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$createChanges$1.apply(SourceGenerator.scala:33)
at scala.tools.refactoring.sourcegen.SourceGenerator$$anonfun$createChanges$1.apply(SourceGenerator.scala:33)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.sourcegen.SourceGenerator$class.createChanges(SourceGenerator.scala:32)
at scala.tools.refactoring.MultiStageRefactoring.createChanges(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.Refactoring$$anonfun$refactor$1.apply(Refactoring.scala:32)
at scala.tools.refactoring.Refactoring$$anonfun$refactor$1.apply(Refactoring.scala:31)
at scala.tools.refactoring.common.SilentTracing$class.context(tracing.scala:71)
at scala.tools.refactoring.MultiStageRefactoring.context(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.Refactoring$class.refactor(Refactoring.scala:31)
at scala.tools.refactoring.MultiStageRefactoring.refactor(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.Refactoring$class.transformFile(Refactoring.scala:41)
at scala.tools.refactoring.MultiStageRefactoring.transformFile(MultiStageRefactoring.scala:14)
at scala.tools.refactoring.implementations.OrganizeImports.perform(OrganizeImports.scala:425)
at scala.tools.refactoring.implementations.OrganizeImports.perform(OrganizeImports.scala:20)
at scala.tools.eclipse.refactoring.ScalaIdeRefactoring$$anonfun$5$$anonfun$apply$7.apply(ScalaIdeRefactoring.scala:158)
at scala.tools.eclipse.refactoring.ScalaIdeRefactoring$$anonfun$5$$anonfun$apply$7.apply(ScalaIdeRefactoring.scala:157)
at scala.tools.nsc.util.InterruptReq.execute(InterruptReq.scala:26)
at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:339)
at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:22)
Leave a comment
I cannot reproduce the test case on Scala IDE 3.0.1 for Scala 2.10.2 on Eclipse Juno.
Can you check the version(s) your are running and that the following test case is the same as yours:
- add
- create a Scala class Test:
- invoke 'Organize Imports' using the editor context menu or the key shortcut.
Can you check the version(s) your are running and that the following test case is the same as yours:
- add
akka.actor
in the 'Always use wildcard import ...' list in the Scala > Organize Import
preference page.- create a Scala class Test:
import akka.actor._
import scala.collection.mutable
class Test extends Actor {
def receive = { case _ => }
}
- invoke 'Organize Imports' using the editor context menu or the key shortcut.
I can reproduce it following the steps you described. I also have "Preserve existing groups" selected, which seems to affect the bug, since with "one import statement per importee" it works ok.
I've had the same problem with previous versions of the IDE (and on Eclipse 3.7) if I recall correctly. Didn't inspect it in more detail then but now the "wildcard import" seems to be the culprit.
Scala plugin version: 3.0.1.v-2_10-201307101641-eff8147
Scala compiler version: 2.10.2.v20130530-074427-VFINAL-60d462ef6e
Scala library version: 2.10.2.v20130530-074427-VFINAL-60d462ef6e
Eclipse version: 4.2.2.v201302041200
I've had the same problem with previous versions of the IDE (and on Eclipse 3.7) if I recall correctly. Didn't inspect it in more detail then but now the "wildcard import" seems to be the culprit.
Scala plugin version: 3.0.1.v-2_10-201307101641-eff8147
Scala compiler version: 2.10.2.v20130530-074427-VFINAL-60d462ef6e
Scala library version: 2.10.2.v20130530-074427-VFINAL-60d462ef6e
Eclipse version: 4.2.2.v201302041200
-- detailed test case -- (Assembla doesn't want me to submit changes to the description :/ )
- add
- set 'preserve existing groups' for 'Multiple import from ...' in the same preference page.
- create a Scala class Test:
- invoke 'Organize Imports' using the editor context menu or the key shortcut.
-- -- --
- add
akka.actor
in the 'Always use wildcard import ...' list in the Scala > Organize Imports
preference page.- set 'preserve existing groups' for 'Multiple import from ...' in the same preference page.
- create a Scala class Test:
import akka.actor._
import scala.collection.mutable
class Test extends Actor {
def receive = { case _ => }
}
- invoke 'Organize Imports' using the editor context menu or the key shortcut.
-- -- --
Ticket assignment reverted due to inactivity.
Duplicate of #1002476, which also contains the latest discussion about this problem.