All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scalafix.internal.rule.DottyVarArgPattern.scala Maven / Gradle / Ivy

package scalafix.internal.rule

import scala.meta._
import scala.meta.tokens.Token
import scalafix.Patch
import scalafix.rule.Rule
import scalafix.rule.RuleCtx

case object DottyVarArgPattern extends Rule("DottyVarArgPattern") {
  override def description: String =
    "Rewrite to convert :_* vararg pattern syntax to @ syntax supported in Dotty."
  override def fix(ctx: RuleCtx): Patch = {
    val patches = ctx.tree.collect {
      case bind @ Pat.Bind(_, Pat.SeqWildcard()) =>
        ctx.tokenList
          .leading(bind.tokens.last)
          .collectFirst {
            case tok @ Token.At() =>
              ctx.replaceToken(tok, ":")
          }
          .asPatch
    }
    patches.asPatch
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy