in scalafix/rules/src/main/scala/fix/v0_7_0/RewriteSysProp.scala [53:106]
override def fix(implicit doc: SemanticDocument): Patch =
doc.tree.collect {
// CoreSysProps
case t @ q"""sys.props("project")""" =>
Patch.addGlobalImport(Core.`import`) +
Patch.replaceTree(t, q"CoreSysProps.Project.value".syntax)
case t @ q"""sys.props("java.home")""" =>
Patch.addGlobalImport(Core.`import`) +
Patch.replaceTree(t, q"CoreSysProps.Home.value".syntax)
case t @ q"""sys.props("java.io.tmpdir")""" =>
Patch.addGlobalImport(Core.`import`) +
Patch.replaceTree(t, q"CoreSysProps.TmpDir.value".syntax)
case t @ q"""sys.props("user.name")""" =>
Patch.addGlobalImport(Core.`import`) +
Patch.replaceTree(t, q"CoreSysProps.User.value".syntax)
case t @ q"""sys.props("user.dir")""" =>
Patch.addGlobalImport(Core.`import`) +
Patch.replaceTree(t, q"CoreSysProps.UserDir.value".syntax)
// AvroSysProps
case t @ q"""sys.props("avro.types.debug")""" =>
Patch.addGlobalImport(Avro.`import`) +
Patch.replaceTree(t, q"AvroSysProps.Debug.value".syntax)
case t @ q"""sys.props("avro.plugin.disable.dump")""" =>
Patch.addGlobalImport(Avro.`import`) +
Patch.replaceTree(t, q"AvroSysProps.DisableDump.value".syntax)
case t @ q"""sys.props("avro.class.cache.directory")""" =>
Patch.addGlobalImport(Avro.`import`) +
Patch.replaceTree(t, q"AvroSysProps.CacheDirectory.value".syntax)
// BigQuerySysProps
case t @ q"sys.props($key)"
if BQ.BigQueryClient.matches(key.symbol.owner) && isKeyTerm(key) =>
val field = fieldName(key)
Patch.addGlobalImport(BQ.`import`) +
Patch.replaceTree(t, q"BigQuerySysProps.$field.value".syntax)
case i @ importee"BigQueryClient" if BQ.BigQueryClient.matches(i.symbol) =>
Patch.removeImportee(i.asInstanceOf[Importee])
case importer"com.spotify.scio.bigquery.BigQueryClient.{..$is}" =>
is.collect {
case i @ importee"$name" if isKey(name) => Patch.removeImportee(i)
}.asPatch
// TapsSysProps
case t @ q"sys.props($key)" if Taps.Taps.matches(key.symbol.owner) && isKeyTerm(key) =>
val field = fieldName(key)
Patch.addGlobalImport(Taps.`import`) +
Patch.replaceTree(t, q"TapsSysProps.$field.value".syntax)
case i @ importee"BigQueryClient" =>
Patch.removeImportee(i.asInstanceOf[Importee])
case i @ importee"Taps" if Taps.Taps.matches(i.symbol) =>
Patch.removeImportee(i.asInstanceOf[Importee])
case importer"$_.Taps.{..$is}" =>
is.collect {
case i @ importee"$name" if isKey(name) => Patch.removeImportee(i)
}.asPatch
}.asPatch