diff --git a/scalafix/input-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala b/scalafix/input-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala index 8788ec6dbc..056cc9bba6 100644 --- a/scalafix/input-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala +++ b/scalafix/input-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala @@ -3,13 +3,20 @@ rule = FixQuery */ package fix.v0_14_0 -import com.spotify.scio.bigquery.types.BigQueryType.{HasQuery, Query} +import com.spotify.scio.bigquery.types.BigQueryType.HasQuery -object FixQuery { +// Workaround to get 0.14 code to compile (query method has been removed from HasQuery) +trait HasQueryRaw { + def query: String = ??? +} - val a: HasQuery = ??? - val b: Query[_] = ??? +object HasQueryType extends HasQuery with HasQueryRaw { + override def queryRaw: String = ??? + override def query: String = ??? +} + +object FixQuery { + HasQueryType.query - a.query - b.query + HasQueryType.query.format("foo") } diff --git a/scalafix/output-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala b/scalafix/output-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala index 50390be40f..90194e8348 100644 --- a/scalafix/output-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala +++ b/scalafix/output-0_14/src/main/scala/fix/v0_14_0/FixQuery.scala @@ -1,12 +1,19 @@ package fix.v0_14_0 -import com.spotify.scio.bigquery.types.BigQueryType.{HasQuery, Query} +import com.spotify.scio.bigquery.types.BigQueryType.HasQuery -object FixQuery { +// Workaround to get 0.14 code to compile (query method has been removed from HasQuery) +trait HasQueryRaw { + def query: String = ??? +} - val a: HasQuery = ??? - val b: Query[_] = ??? +object HasQueryType extends HasQuery with HasQueryRaw { + override def queryRaw: String = ??? + override def query: String = ??? +} + +object FixQuery { + HasQueryType.queryRaw - a.queryRaw - b.queryRaw + HasQueryType.queryRaw.format("foo") } diff --git a/scalafix/rules/src/main/scala/fix/v0_14_0/FixQuery.scala b/scalafix/rules/src/main/scala/fix/v0_14_0/FixQuery.scala index 1c318d0430..7ae017ef0a 100644 --- a/scalafix/rules/src/main/scala/fix/v0_14_0/FixQuery.scala +++ b/scalafix/rules/src/main/scala/fix/v0_14_0/FixQuery.scala @@ -6,18 +6,11 @@ import scala.meta._ object FixQuery { val HasQueryMatcher: SymbolMatcher = SymbolMatcher.normalized("com/spotify/scio/bigquery/types/BigQueryType/HasQuery") - - val HasQueryMethodMatcher: SymbolMatcher = - SymbolMatcher.normalized("com/spotify/scio/bigquery/types/BigQueryType/HasQuery#query") } class FixQuery extends SemanticRule("FixQuery") { - import FixQuery._ - private def isQuery(term: Tree)(implicit doc: SemanticDocument): Boolean = - term.symbol.info.exists(_.overriddenSymbols.exists(HasQueryMethodMatcher.matches)) - private def isQueryFormat(term: Tree)(implicit doc: SemanticDocument): Boolean = term.symbol.info.map(_.signature).exists { case ClassSignature(_, parents, _, _) => @@ -30,12 +23,8 @@ class FixQuery extends SemanticRule("FixQuery") { override def fix(implicit doc: SemanticDocument): Patch = { doc.tree.collect { - case t @ q"$qual.$fn" if HasQueryMethodMatcher.matches(fn) => - Patch.replaceTree(t, q"$qual.queryRaw".syntax) - case t @ q"$qual.query" if isQuery(t) => + case t @ q"$qual.query" if isQueryFormat(qual) => Patch.replaceTree(t, q"$qual.queryRaw".syntax) - case t @ q"$qual.query.format" if isQueryFormat(qual) => - Patch.replaceTree(t, q"$qual.queryRaw.format".syntax) }.asPatch }