override def fix()

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