Skip to content

Commit

Permalink
Fix Scalafix rule for Avro package import
Browse files Browse the repository at this point in the history
  • Loading branch information
clairemcginty committed Feb 13, 2024
1 parent c830a20 commit cf96115
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
rule = FixAvroCoder
*/
package fix.v0_14_0

import com.spotify.scio.avro._
import com.spotify.scio.io.TextIO
import com.spotify.scio.testing.PipelineSpec

object FixAvroCoder10 extends PipelineSpec {
object SomeScioJob {
def main(args: Array[String]): Unit = ???
}

JobTest[SomeScioJob.type]
.input(TextIO("a"), Seq())
.input(AvroIO[A]("b"), Seq())
.input(TextIO("c"), Seq())
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package fix.v0_14_0

import com.spotify.scio.avro._
import com.spotify.scio.io.TextIO
import com.spotify.scio.testing.PipelineSpec

object FixAvroCoder10 extends PipelineSpec {
object SomeScioJob {
def main(args: Array[String]): Unit = ???
}

JobTest[SomeScioJob.type]
.input(TextIO("a"), Seq())
.input(AvroIO[A]("b"), Seq())
.input(TextIO("c"), Seq())
}
7 changes: 6 additions & 1 deletion scalafix/rules/src/main/scala/fix/v0_14_0/FixAvroCoder.scala
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,12 @@ class FixAvroCoder extends SemanticRule("FixAvroCoder") {
Patch.removeImportee(i) + Patch.addGlobalImport(avroImport)
}.asPatch
case importer"com.spotify.scio.avro.{..$imps}" =>
imps.map(i => Patch.removeImportee(i) + Patch.addGlobalImport(avroImport)).asPatch
imps
.filterNot {
case importee"_" => true
case _ => false
}
.map(i => Patch.removeImportee(i) + Patch.addGlobalImport(avroImport)).asPatch
case t @ q"$obj.$fn" if AvroCoderMatcher.matches(fn.symbol) =>
// fix direct usage of Coder.avro*
Patch.replaceTree(t, q"$fn".syntax) + Patch.addGlobalImport(avroImport)
Expand Down

0 comments on commit cf96115

Please sign in to comment.