From a714b6a24c02635095afa018fb792bc7d457467b Mon Sep 17 00:00:00 2001 From: Brice Jaglin Date: Sat, 20 Jan 2024 19:37:27 +0100 Subject: [PATCH] OrganizeImports: support Scala3 syntax as output --- .../internal/rule/OrganizeImports.scala | 56 +++++++++++++++++-- .../CoalesceImporteesGivensAndNames.scala | 1 + .../CoalesceImporteesNoGivens.scala | 1 + .../CoalesceImporteesNoGivensNoNames.scala | 1 + .../CoalesceImporteesNoNames.scala | 1 + .../DeduplicateGivenImportees.scala | 1 + .../test/organizeImports/ExpandGiven.scala | 3 + .../organizeImports/ExpandUnimportGiven.scala | 1 + .../GroupedGivenImportsMergeUnimports.scala | 11 ++-- ...roupedImportsAggressiveMergeGivenAll.scala | 1 + .../test/organizeImports/MergeGiven.scala | 1 + .../organizeImports/CoalesceImportees.scala | 1 + .../CurlyBracedSingleImportee.scala | 2 + .../DeduplicateImportees.scala | 1 + .../ExpandRelativeEmptyPackage.scala | 1 + .../ExpandRelativeRootPackage.scala | 1 + .../ExplodeImportsFormatPreserving.scala | 3 +- ...roupedImportsAggressiveMergeWildcard.scala | 1 + .../GroupedImportsExplodeMixed.scala | 1 + .../GroupedImportsExplodeUnimport.scala | 1 + .../GroupedImportsMergeDedup.scala | 1 + .../GroupedImportsMergeRenames.scala | 1 + .../GroupedImportsMergeUnimports.scala | 1 + .../GroupedImportsMergeWildcard.scala | 1 + .../organizeImports/ImportsOrderKeep.scala | 1 + .../ImportsOrderSymbolsFirst.scala | 4 ++ .../MergeImportsFormatPreserving.scala | 1 + .../organizeImports/CoalesceImportees.scala | 0 .../CurlyBracedSingleImportee.scala | 1 + .../DeduplicateImportees.scala | 0 .../ExpandRelativeEmptyPackage.scala | 0 .../ExplodeImportsFormatPreserving.scala | 0 ...roupedImportsAggressiveMergeWildcard.scala | 0 .../GroupedImportsExplodeMixed.scala | 0 .../GroupedImportsExplodeUnimport.scala | 0 .../GroupedImportsMergeDedup.scala | 0 .../GroupedImportsMergeRenames.scala | 0 .../GroupedImportsMergeUnimports.scala | 0 .../GroupedImportsMergeWildcard.scala | 0 .../organizeImports/ImportsOrderKeep.scala | 0 .../ImportsOrderSymbolsFirst.scala | 3 + .../MergeImportsFormatPreserving.scala | 0 .../organizeImports/CoalesceImportees.scala | 8 +++ .../CoalesceImporteesGivensAndNames.scala | 4 +- .../CoalesceImporteesNoGivens.scala | 2 +- .../CoalesceImporteesNoGivensNoNames.scala | 2 +- .../CoalesceImporteesNoNames.scala | 4 +- .../CurlyBracedSingleImportee.scala | 7 +++ .../DeduplicateGivenImportees.scala | 2 +- .../DeduplicateImportees.scala | 7 +++ .../test/organizeImports/ExpandGiven.scala | 2 + .../ExpandRelativeEmptyPackage.scala | 14 +++++ .../organizeImports/ExpandUnimportGiven.scala | 4 +- .../ExplodeImportsFormatPreserving.scala | 7 +++ .../GroupedGivenImportsMergeUnimports.scala | 6 +- ...roupedImportsAggressiveMergeGivenAll.scala | 8 +-- ...roupedImportsAggressiveMergeWildcard.scala | 7 +++ .../GroupedImportsExplodeMixed.scala | 7 +++ .../GroupedImportsExplodeUnimport.scala | 5 ++ .../GroupedImportsMergeDedup.scala | 5 ++ .../GroupedImportsMergeRenames.scala | 7 +++ .../GroupedImportsMergeUnimports.scala | 6 ++ .../GroupedImportsMergeWildcard.scala | 7 +++ .../organizeImports/ImportsOrderKeep.scala | 12 ++++ .../ImportsOrderSymbolsFirst.scala | 15 +++++ .../MergeImportsFormatPreserving.scala | 7 +++ 66 files changed, 232 insertions(+), 27 deletions(-) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/CoalesceImportees.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/CurlyBracedSingleImportee.scala (79%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/DeduplicateImportees.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/ExpandRelativeEmptyPackage.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/ExplodeImportsFormatPreserving.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/GroupedImportsExplodeMixed.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/GroupedImportsExplodeUnimport.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/GroupedImportsMergeDedup.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/GroupedImportsMergeRenames.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/GroupedImportsMergeUnimports.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/GroupedImportsMergeWildcard.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/ImportsOrderKeep.scala (100%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/ImportsOrderSymbolsFirst.scala (69%) rename scalafix-tests/output/src/main/{scala => scala-2}/test/organizeImports/MergeImportsFormatPreserving.scala (100%) create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImportees.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/CurlyBracedSingleImportee.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateImportees.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandRelativeEmptyPackage.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/ExplodeImportsFormatPreserving.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeMixed.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeUnimport.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeDedup.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeRenames.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeUnimports.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeWildcard.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderKeep.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderSymbolsFirst.scala create mode 100644 scalafix-tests/output/src/main/scala-3/test/organizeImports/MergeImportsFormatPreserving.scala diff --git a/scalafix-rules/src/main/scala/scalafix/internal/rule/OrganizeImports.scala b/scalafix-rules/src/main/scala/scalafix/internal/rule/OrganizeImports.scala index b37bd86eb..cfa68cffd 100644 --- a/scalafix-rules/src/main/scala/scalafix/internal/rule/OrganizeImports.scala +++ b/scalafix-rules/src/main/scala/scalafix/internal/rule/OrganizeImports.scala @@ -572,7 +572,12 @@ class OrganizeImports( importer match { case Importer(_, Importee.Wildcard() :: Nil) => - syntax.patch(syntax.lastIndexOfSlice("._"), ".\u0001", 2) + val wildcardSyntax = Importee.Wildcard().syntax + syntax.patch( + syntax.lastIndexOfSlice(s".$wildcardSyntax"), + ".\u0001", + 2 + ) case _ if importer.isCurlyBraced => syntax @@ -714,9 +719,48 @@ class OrganizeImports( private def importerSyntax(importer: Importer): String = importer.pos match { case pos: Position.Range => - // Position found, implies that `importer` was directly parsed from the source code. Returns - // the original parsed text to preserve the original source level formatting. - pos.text + // Position found, implies that `importer` was directly parsed from the source code. Use + // the original parsed text to preserve the original source level formatting, but patch + // importee that have specific Scala 3 syntax. + val syntax = new StringBuilder(pos.text) + def patchSyntax( + t: Tree, + newSyntax: String, + stripEnclosingBraces: Boolean = false + ) = { + val start = t.pos.start - pos.start + syntax.replace(start, t.pos.end - pos.start, newSyntax) + val end = t.pos.start - pos.start + newSyntax.length + + if (stripEnclosingBraces) + ( + syntax.take(start).lastIndexOf('{'), + syntax.indexOf('}', end) + ) match { + case (from, to) if from != -1 && to != -1 => + syntax.delete(end, to + 1) + syntax.delete(from, start) + case _ => + } + } + val Importer(_, importees) = importer + val optionalBraces = + importees.length == 1 && targetDialect.allowAsForImportRename + // traverse & patch backwards to avoid shifting indices + importees.reverse.foreach { + case i @ Importee.Rename(_, _) => + patchSyntax(i, i.copy().syntax, optionalBraces) + case i @ Importee.Unimport(_) => + patchSyntax(i, i.copy().syntax, optionalBraces) + case i @ Importee.Wildcard() => + patchSyntax(i, i.copy().syntax) + case i @ Importee.GivenAll() => + patchSyntax(i, i.copy().syntax, importees.length == 1) + case i @ Importee.Given(_) => + patchSyntax(i, i.copy().syntax, importees.length == 1) + case _ => + } + syntax.toString case Position.None => // Position not found, implies that `importer` is derived from certain existing import @@ -742,7 +786,9 @@ class OrganizeImports( def isCurlyBraced: Boolean = { val importees @ Importees(_, renames, unimports, _, _, _) = importer.importees - renames.nonEmpty || unimports.nonEmpty || importees.length > 1 + + importees.length > 1 || + ((renames.length == 1 || unimports.length == 1) && !targetDialect.allowAsForImportRename) } /** diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala index 0d6a6fe0f..0992e5f5f 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala @@ -4,6 +4,7 @@ OrganizeImports { groupedImports = Keep coalesceToWildcardImportThreshold = 2 removeUnused = false + targetDialect = Scala3 } */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala index 82e3aa7a8..1213a38ee 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala @@ -4,6 +4,7 @@ OrganizeImports { groupedImports = Keep coalesceToWildcardImportThreshold = 2 removeUnused = false + targetDialect = Scala3 } */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala index e91fedb27..d1ba21051 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala @@ -4,6 +4,7 @@ OrganizeImports { groupedImports = Keep coalesceToWildcardImportThreshold = 2 removeUnused = false + targetDialect = Scala3 } */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala index 9e374ccff..6478767ca 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala @@ -4,6 +4,7 @@ OrganizeImports { groupedImports = Keep coalesceToWildcardImportThreshold = 2 removeUnused = false + targetDialect = Scala3 } */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala index 9005f1932..61272b74b 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala @@ -1,6 +1,7 @@ /* rules = [OrganizeImports] OrganizeImports.removeUnused = false +OrganizeImports.targetDialect = Scala3 */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandGiven.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandGiven.scala index f23f6848d..25ef9b7fb 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandGiven.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandGiven.scala @@ -1,12 +1,15 @@ /* rules = [OrganizeImports] OrganizeImports.removeUnused = false +OrganizeImports.targetDialect = Scala3 */ package test.organizeImports import test.organizeImports.GivenImports.Beta import test.organizeImports.GivenImports.Alpha import test.organizeImports.GivenImports.{given Beta, given Alpha} +import test.organizeImports.GivenImports2.{given Beta} +import test.organizeImports.GivenImports2.{given} import scala.util.Either object ExpandGiven diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala index 457db872f..baf2545cd 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala @@ -1,6 +1,7 @@ /* rules = [OrganizeImports] OrganizeImports.removeUnused = false +OrganizeImports.targetDialect = Scala3 */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala index f34b71897..bee886274 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala @@ -2,17 +2,18 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Merge +OrganizeImports.targetDialect = Scala3 */ package test.organizeImports -import test.organizeImports.GivenImports._ -import test.organizeImports.GivenImports.{alpha => _, given} +import test.organizeImports.GivenImports.* +import test.organizeImports.GivenImports.{alpha as _, given} import test.organizeImports.GivenImports.{given Beta} -import test.organizeImports.GivenImports.{gamma => _, given} +import test.organizeImports.GivenImports.{gamma as _, given} import test.organizeImports.GivenImports.{given Zeta} -import test.organizeImports.GivenImports2.{alpha => _} -import test.organizeImports.GivenImports2.{beta => _} +import test.organizeImports.GivenImports2.{alpha as _} +import test.organizeImports.GivenImports2.beta as _ import test.organizeImports.GivenImports2.{given Gamma} import test.organizeImports.GivenImports2.{given Zeta} diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala index bb0632fcc..7266c6556 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = AggressiveMerge +OrganizeImports.targetDialect = Scala3 */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala-3/test/organizeImports/MergeGiven.scala b/scalafix-tests/input/src/main/scala-3/test/organizeImports/MergeGiven.scala index a7d628d91..08c51cb60 100644 --- a/scalafix-tests/input/src/main/scala-3/test/organizeImports/MergeGiven.scala +++ b/scalafix-tests/input/src/main/scala-3/test/organizeImports/MergeGiven.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Merge +OrganizeImports.targetDialect = Scala3 */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/CoalesceImportees.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/CoalesceImportees.scala index 6a35ea974..619c09d81 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/CoalesceImportees.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/CoalesceImportees.scala @@ -4,6 +4,7 @@ OrganizeImports { groupedImports = Keep coalesceToWildcardImportThreshold = 3 removeUnused = false + targetDialect = Auto } */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/CurlyBracedSingleImportee.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/CurlyBracedSingleImportee.scala index 9f8255a67..2cdafcb7b 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/CurlyBracedSingleImportee.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/CurlyBracedSingleImportee.scala @@ -1,10 +1,12 @@ /* rules = [OrganizeImports] OrganizeImports.removeUnused = false +OrganizeImports.targetDialect = Auto */ package test.organizeImports import scala.collection.{Map} +import scala.collection.{Seq => _} import scala.collection.{Set => ImmutableSet} object CurlyBracedSingleImportee diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/DeduplicateImportees.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/DeduplicateImportees.scala index 4150b056b..5c6a44fe3 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/DeduplicateImportees.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/DeduplicateImportees.scala @@ -1,6 +1,7 @@ /* rules = [OrganizeImports] OrganizeImports.removeUnused = false +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeEmptyPackage.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeEmptyPackage.scala index cfa3dd503..ab3d3b037 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeEmptyPackage.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeEmptyPackage.scala @@ -4,6 +4,7 @@ OrganizeImports { expandRelative = true groupedImports = Explode removeUnused = false + targetDialect = Auto } */ import P._ diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeRootPackage.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeRootPackage.scala index 0b096c22c..b4821e80c 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeRootPackage.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/ExpandRelativeRootPackage.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.expandRelative = true +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/ExplodeImportsFormatPreserving.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/ExplodeImportsFormatPreserving.scala index 179b9c68a..30bf63201 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/ExplodeImportsFormatPreserving.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/ExplodeImportsFormatPreserving.scala @@ -2,11 +2,12 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Explode +OrganizeImports.targetDialect = Auto */ package test.organizeImports import test.organizeImports.ExplodeImports.FormatPreserving.g1.{ a, b } -import test.organizeImports.ExplodeImports.FormatPreserving.g2.{ c => C, _ } +import test.organizeImports.ExplodeImports.FormatPreserving.g2.{ c => C, _ } object ExplodeImportsFormatPreserving diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala index e31c70827..fd905e9ec 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = AggressiveMerge +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeMixed.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeMixed.scala index 9d438645d..5eef1dac5 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeMixed.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeMixed.scala @@ -1,6 +1,7 @@ /* rules = [OrganizeImports] OrganizeImports.removeUnused = false +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeUnimport.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeUnimport.scala index acd497cea..fa3c2d1ef 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeUnimport.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsExplodeUnimport.scala @@ -1,6 +1,7 @@ /* rules = [OrganizeImports] OrganizeImports.removeUnused = false +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeDedup.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeDedup.scala index 15fe853fd..a3f134859 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeDedup.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeDedup.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Merge +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeRenames.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeRenames.scala index 3a4c2cc60..283834f49 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeRenames.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeRenames.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Merge +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeUnimports.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeUnimports.scala index 511213668..9b592134c 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeUnimports.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeUnimports.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Merge +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeWildcard.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeWildcard.scala index b81148506..ff7961ab8 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeWildcard.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/GroupedImportsMergeWildcard.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Merge +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderKeep.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderKeep.scala index 7e08de4d1..05bdb4ac6 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderKeep.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderKeep.scala @@ -5,6 +5,7 @@ OrganizeImports { groupedImports = Keep importSelectorsOrder = Keep importsOrder = Keep + targetDialect = Auto } */ package test.organizeImports diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderSymbolsFirst.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderSymbolsFirst.scala index ee3b2db00..cbd4fb8ef 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderSymbolsFirst.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/ImportsOrderSymbolsFirst.scala @@ -5,6 +5,7 @@ OrganizeImports { groupedImports = Keep importSelectorsOrder = Keep importsOrder = SymbolsFirst + targetDialect = Auto } */ package test.organizeImports @@ -15,6 +16,9 @@ import scala.concurrent.duration import scala.concurrent.{Promise, Future} import test.organizeImports.QuotedIdent.`a.b`.`{ d }`.e +import test.organizeImports.QuotedIdent.`a.b`.`{ d }`.{ e => E } +import test.organizeImports.QuotedIdent.`a.b` +import test.organizeImports.QuotedIdent.{`a.b` => ab} import test.organizeImports.QuotedIdent.`a.b`.{c => _, _} import test.organizeImports.QuotedIdent._ diff --git a/scalafix-tests/input/src/main/scala/test/organizeImports/MergeImportsFormatPreserving.scala b/scalafix-tests/input/src/main/scala/test/organizeImports/MergeImportsFormatPreserving.scala index 9be512c10..65bc38ead 100644 --- a/scalafix-tests/input/src/main/scala/test/organizeImports/MergeImportsFormatPreserving.scala +++ b/scalafix-tests/input/src/main/scala/test/organizeImports/MergeImportsFormatPreserving.scala @@ -2,6 +2,7 @@ rules = [OrganizeImports] OrganizeImports.removeUnused = false OrganizeImports.groupedImports = Merge +OrganizeImports.targetDialect = Auto */ package test.organizeImports diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/CoalesceImportees.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/CoalesceImportees.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/CoalesceImportees.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/CoalesceImportees.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/CurlyBracedSingleImportee.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/CurlyBracedSingleImportee.scala similarity index 79% rename from scalafix-tests/output/src/main/scala/test/organizeImports/CurlyBracedSingleImportee.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/CurlyBracedSingleImportee.scala index 4a2996246..ad19cd09f 100644 --- a/scalafix-tests/output/src/main/scala/test/organizeImports/CurlyBracedSingleImportee.scala +++ b/scalafix-tests/output/src/main/scala-2/test/organizeImports/CurlyBracedSingleImportee.scala @@ -1,6 +1,7 @@ package test.organizeImports import scala.collection.Map +import scala.collection.{Seq => _} import scala.collection.{Set => ImmutableSet} object CurlyBracedSingleImportee diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/DeduplicateImportees.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/DeduplicateImportees.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/DeduplicateImportees.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/DeduplicateImportees.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/ExpandRelativeEmptyPackage.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/ExpandRelativeEmptyPackage.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/ExpandRelativeEmptyPackage.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/ExpandRelativeEmptyPackage.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/ExplodeImportsFormatPreserving.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/ExplodeImportsFormatPreserving.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/ExplodeImportsFormatPreserving.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/ExplodeImportsFormatPreserving.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsExplodeMixed.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsExplodeMixed.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsExplodeMixed.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsExplodeMixed.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsExplodeUnimport.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsExplodeUnimport.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsExplodeUnimport.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsExplodeUnimport.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeDedup.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeDedup.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeDedup.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeDedup.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeRenames.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeRenames.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeRenames.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeRenames.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeUnimports.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeUnimports.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeUnimports.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeUnimports.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeWildcard.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeWildcard.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/GroupedImportsMergeWildcard.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/GroupedImportsMergeWildcard.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/ImportsOrderKeep.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/ImportsOrderKeep.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/ImportsOrderKeep.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/ImportsOrderKeep.scala diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/ImportsOrderSymbolsFirst.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/ImportsOrderSymbolsFirst.scala similarity index 69% rename from scalafix-tests/output/src/main/scala/test/organizeImports/ImportsOrderSymbolsFirst.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/ImportsOrderSymbolsFirst.scala index 5bd3317c0..35b7e1d52 100644 --- a/scalafix-tests/output/src/main/scala/test/organizeImports/ImportsOrderSymbolsFirst.scala +++ b/scalafix-tests/output/src/main/scala-2/test/organizeImports/ImportsOrderSymbolsFirst.scala @@ -1,7 +1,10 @@ package test.organizeImports import test.organizeImports.QuotedIdent._ +import test.organizeImports.QuotedIdent.{`a.b` => ab} +import test.organizeImports.QuotedIdent.`a.b` import test.organizeImports.QuotedIdent.`a.b`.{c => _, _} +import test.organizeImports.QuotedIdent.`a.b`.`{ d }`.{ e => E } import test.organizeImports.QuotedIdent.`a.b`.`{ d }`.e import scala.concurrent._ diff --git a/scalafix-tests/output/src/main/scala/test/organizeImports/MergeImportsFormatPreserving.scala b/scalafix-tests/output/src/main/scala-2/test/organizeImports/MergeImportsFormatPreserving.scala similarity index 100% rename from scalafix-tests/output/src/main/scala/test/organizeImports/MergeImportsFormatPreserving.scala rename to scalafix-tests/output/src/main/scala-2/test/organizeImports/MergeImportsFormatPreserving.scala diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImportees.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImportees.scala new file mode 100644 index 000000000..51fb1f21b --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImportees.scala @@ -0,0 +1,8 @@ +package test.organizeImports + +import scala.collection.immutable.{Map, Seq, Vector} +import scala.collection.mutable.* +import scala.concurrent.{Channel as Ch, *} +import scala.util.{Random as _, *} + +object CoalesceImportees diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala index e9530cea6..9cd087797 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesGivensAndNames.scala @@ -1,6 +1,6 @@ package test.organizeImports -import test.organizeImports.Givens._ -import test.organizeImports.Givens.{B => B1, C => _, _, given} +import test.organizeImports.Givens.* +import test.organizeImports.Givens.{B as B1, C as _, *, given} object CoalesceImporteesGivensAndNames diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala index b5bbceec9..851e4a8d9 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivens.scala @@ -1,5 +1,5 @@ package test.organizeImports -import test.organizeImports.Givens.{C => C1, _} +import test.organizeImports.Givens.{C as C1, *} object CoalesceImporteesNoGivens diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala index 7d4401969..e3085049c 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoGivensNoNames.scala @@ -1,5 +1,5 @@ package test.organizeImports -import test.organizeImports.Givens.{A => A1, B => _, _} +import test.organizeImports.Givens.{A as A1, B as _, *} object CoalesceImporteesNoGivensNoNames diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala index c6a2d2940..147685d25 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CoalesceImporteesNoNames.scala @@ -1,6 +1,6 @@ package test.organizeImports -import test.organizeImports.Givens._ -import test.organizeImports.Givens.{A => A1, given} +import test.organizeImports.Givens.* +import test.organizeImports.Givens.{A as A1, given} object CoalesceImporteesNoNames diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/CurlyBracedSingleImportee.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CurlyBracedSingleImportee.scala new file mode 100644 index 000000000..bc8afbc51 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/CurlyBracedSingleImportee.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import scala.collection.Map +import scala.collection.Seq as _ +import scala.collection.Set as ImmutableSet + +object CurlyBracedSingleImportee diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala index 67b6cb5c4..7ce77bd26 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateGivenImportees.scala @@ -1,6 +1,6 @@ package test.organizeImports -import test.organizeImports.Givens._ +import test.organizeImports.Givens.* import test.organizeImports.Givens.given A import test.organizeImports.Givens.given B import test.organizeImports.Givens.given C diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateImportees.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateImportees.scala new file mode 100644 index 000000000..f2a009200 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/DeduplicateImportees.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import scala.collection.immutable.Map as Dict +import scala.collection.immutable.Vector +import scala.collection.immutable.{Set as _, *} + +object DeduplicateImportees diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandGiven.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandGiven.scala index e5e028ac8..29be155f0 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandGiven.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandGiven.scala @@ -4,6 +4,8 @@ import test.organizeImports.GivenImports.Alpha import test.organizeImports.GivenImports.Beta import test.organizeImports.GivenImports.given Alpha import test.organizeImports.GivenImports.given Beta +import test.organizeImports.GivenImports2.given +import test.organizeImports.GivenImports2.given Beta import scala.util.Either diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandRelativeEmptyPackage.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandRelativeEmptyPackage.scala new file mode 100644 index 000000000..d6e660091 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandRelativeEmptyPackage.scala @@ -0,0 +1,14 @@ +import P.* +import Q.* +import Q.x + +object P { + object x +} + +object Q { + object x + object y +} + +object ExpandRelativeEmptyPackage diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala index 132be5915..df538e181 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExpandUnimportGiven.scala @@ -2,9 +2,9 @@ package test.organizeImports import test.organizeImports.GivenImports.Alpha import test.organizeImports.GivenImports.Beta +import test.organizeImports.GivenImports.alpha as _ import test.organizeImports.GivenImports.given Alpha -import test.organizeImports.GivenImports.{alpha => _} -import test.organizeImports.GivenImports.{beta => _, given} +import test.organizeImports.GivenImports.{beta as _, given} import scala.util.Either diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExplodeImportsFormatPreserving.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExplodeImportsFormatPreserving.scala new file mode 100644 index 000000000..8d5d0fc47 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ExplodeImportsFormatPreserving.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import test.organizeImports.ExplodeImports.FormatPreserving.g1.a +import test.organizeImports.ExplodeImports.FormatPreserving.g1.b +import test.organizeImports.ExplodeImports.FormatPreserving.g2.{ c as C, * } + +object ExplodeImportsFormatPreserving diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala index 4a1a27b26..a6856a8d8 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedGivenImportsMergeUnimports.scala @@ -1,8 +1,8 @@ package test.organizeImports -import test.organizeImports.GivenImports._ -import test.organizeImports.GivenImports.{gamma => _, given Beta, given Zeta, given} -import test.organizeImports.GivenImports2.{alpha => _, beta => _} +import test.organizeImports.GivenImports.* +import test.organizeImports.GivenImports.{gamma as _, given Beta, given Zeta, given} +import test.organizeImports.GivenImports2.{alpha as _, beta as _} import test.organizeImports.GivenImports2.{given Gamma, given Zeta} object GroupedGivenImportsMergeUnimports diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala index 2c5436cc0..a6be3f3f7 100644 --- a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeGivenAll.scala @@ -1,10 +1,10 @@ package test.organizeImports -import test.organizeImports.GivenImports._ +import test.organizeImports.GivenImports.* import test.organizeImports.GivenImports.given -import test.organizeImports.MergeImports.Wildcard1._ -import test.organizeImports.MergeImports.Wildcard1.{b => B} -import test.organizeImports.MergeImports.Wildcard2._ +import test.organizeImports.MergeImports.Wildcard1.* +import test.organizeImports.MergeImports.Wildcard1.b as B +import test.organizeImports.MergeImports.Wildcard2.* object GroupedImportsAggressiveMergeGivenAll diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala new file mode 100644 index 000000000..c8e490dd3 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsAggressiveMergeWildcard.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import test.organizeImports.MergeImports.Wildcard1.* +import test.organizeImports.MergeImports.Wildcard1.b as B +import test.organizeImports.MergeImports.Wildcard2.* + +object GroupedImportsAggressiveMergeWildcard diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeMixed.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeMixed.scala new file mode 100644 index 000000000..8e46fb80a --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeMixed.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import scala.collection.immutable.* +import scala.collection.mutable.Map +import scala.collection.mutable.{Buffer as _, Seq as S, *} + +object GroupedImportsExplodeMixed diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeUnimport.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeUnimport.scala new file mode 100644 index 000000000..777a49fdd --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsExplodeUnimport.scala @@ -0,0 +1,5 @@ +package test.organizeImports + +import scala.collection.{Seq as _, *} + +object GroupedImportExplodeUnimport diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeDedup.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeDedup.scala new file mode 100644 index 000000000..ce51ff68f --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeDedup.scala @@ -0,0 +1,5 @@ +package test.organizeImports + +import test.organizeImports.MergeImports.Dedup.{a, b as b1, c as _} + +object GroupedImportsMergeDedup diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeRenames.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeRenames.scala new file mode 100644 index 000000000..d50ab9199 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeRenames.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import test.organizeImports.MergeImports.Rename1.{a as A, b as B, c, d} +import test.organizeImports.MergeImports.Rename2.{a as A, b as B, c} +import test.organizeImports.MergeImports.Rename2.{a, b} + +object GroupedImportsMergeRenames diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeUnimports.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeUnimports.scala new file mode 100644 index 000000000..27cb850b0 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeUnimports.scala @@ -0,0 +1,6 @@ +package test.organizeImports + +import test.organizeImports.MergeImports.Unimport1.{b as B, c as _, d, *} +import test.organizeImports.MergeImports.Unimport2.{a as _, b as _, c as C, d} + +object GroupedImportsMergeUnimports diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeWildcard.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeWildcard.scala new file mode 100644 index 000000000..ddf279523 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/GroupedImportsMergeWildcard.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import test.organizeImports.MergeImports.Wildcard1.b as B +import test.organizeImports.MergeImports.Wildcard1.{d, *} +import test.organizeImports.MergeImports.Wildcard2.{a, b, *} + +object GroupedImportsMergeWildcard diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderKeep.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderKeep.scala new file mode 100644 index 000000000..ce414ea89 --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderKeep.scala @@ -0,0 +1,12 @@ +package test.organizeImports + +import test.organizeImports.QuotedIdent.`a.b`.`{ d }`.e +import test.organizeImports.QuotedIdent.* +import test.organizeImports.QuotedIdent.`a.b`.{c as _, *} + +import scala.concurrent.ExecutionContext.Implicits.* +import scala.concurrent.duration +import scala.concurrent.* +import scala.concurrent.{Promise, Future} + +object ImportsOrderKeep diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderSymbolsFirst.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderSymbolsFirst.scala new file mode 100644 index 000000000..fcb1f004b --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/ImportsOrderSymbolsFirst.scala @@ -0,0 +1,15 @@ +package test.organizeImports + +import test.organizeImports.QuotedIdent.* +import test.organizeImports.QuotedIdent.`a.b` +import test.organizeImports.QuotedIdent.`a.b` as ab +import test.organizeImports.QuotedIdent.`a.b`.{c as _, *} +import test.organizeImports.QuotedIdent.`a.b`.`{ d }`.e +import test.organizeImports.QuotedIdent.`a.b`.`{ d }`.e as E + +import scala.concurrent.* +import scala.concurrent.{Promise, Future} +import scala.concurrent.ExecutionContext.Implicits.* +import scala.concurrent.duration + +object ImportsOrderSymbolsFirst diff --git a/scalafix-tests/output/src/main/scala-3/test/organizeImports/MergeImportsFormatPreserving.scala b/scalafix-tests/output/src/main/scala-3/test/organizeImports/MergeImportsFormatPreserving.scala new file mode 100644 index 000000000..138bc4c3c --- /dev/null +++ b/scalafix-tests/output/src/main/scala-3/test/organizeImports/MergeImportsFormatPreserving.scala @@ -0,0 +1,7 @@ +package test.organizeImports + +import test.organizeImports.MergeImports.FormatPreserving.g1.{ a, b } +import test.organizeImports.MergeImports.FormatPreserving.g2.* +import test.organizeImports.MergeImports.FormatPreserving.g2.d as D + +object MergeImportsFormatPreserving