Skip to content

Commit

Permalink
Scalameta: upgrade to v4.5.1
Browse files Browse the repository at this point in the history
Also, remove handling of deprecated Type.{And,Or} trees and instead
switch scala3 type infixes to regular infix handling.
  • Loading branch information
kitbellew committed Mar 24, 2022
1 parent c67b0db commit cdeb22b
Show file tree
Hide file tree
Showing 14 changed files with 168 additions and 307 deletions.
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.portablescala.sbtplatformdeps.PlatformDepsPlugin.autoImport._

object Dependencies {
val metaconfigV = "0.10.0"
val scalametaV = "4.5.0"
val scalametaV = "4.5.1"
val scalacheckV = "1.15.4"
val coursier = "1.0.3"
val munitV = "0.7.29"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import scala.collection.mutable
import scala.io.Codec
import scala.meta.Dialect
import scala.meta.Tree
import scala.meta.Type
import scala.util.Try

import metaconfig._
Expand Down Expand Up @@ -257,7 +258,11 @@ case class ScalafmtConfig(
.getOrElse(optIn.forceBlankLineBeforeDocstring)

def breakAfterInfix(tree: => Tree): Newlines.AfterInfix =
newlines.breakAfterInfix
newlines.afterInfix.getOrElse {
val useSome = newlines.source == Newlines.classic &&
tree.is[Type.ApplyInfix] && dialect.useInfixTypePrecedence
if (useSome) Newlines.AfterInfix.some else newlines.breakAfterInfix
}

def formatInfix(tree: => Tree): Boolean =
breakAfterInfix(tree) ne Newlines.AfterInfix.keep
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2752,9 +2752,6 @@ class FormatOps(
def getLastNonTrivialTokenOpt(tree: Tree): Option[T] =
tokens.getLastNonTrivialOpt(tree).map(_.left)

val ExtractAndOrTypeRhsIdentLeft =
new ExtractFromMeta(ft => getAndOrTypeRhs(ft.meta.leftOwner))

def getEndOfBlock(ft: FormatToken, parensToo: Boolean)(implicit
style: ScalafmtConfig
): Option[T] =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2283,37 +2283,6 @@ class Router(formatOps: FormatOps) {
Split(Space, 0).withSingleLineNoOptimal(end)
}(Split(Newline, _).withIndent(indent))

// Union/Intersection types
case FormatToken(_: T.Ident, _, ExtractAndOrTypeRhsIdentLeft(rhs)) =>
val rhsEnd = getLastNonTrivialToken(rhs)
@inline def getBreakToken(ft: FormatToken) = nextNonCommentSameLine(ft)
def nlSplit(cost: Int): Split = {
val indent = Indent(style.indent.main, rhsEnd, After)
val breakToken = getBreakToken(formatToken)
if (breakToken eq formatToken)
Split(Newline, cost).withIndent(indent)
else
Split(Space, cost)
.withIndent(indent)
.withPolicy(decideNewlinesOnlyAfterClose(breakToken.left))
}
def nextRhsEnd = leftOwner.parent
.flatMap(getAndOrTypeRhs)
.map(x => getBreakToken(tokens.tokenBefore(x)).left)
style.newlines.source match {
case Newlines.unfold =>
val topEnd = tokens.getLastNonTrivial(getTopAndOrType(leftOwner))
Seq(
Split(Space, 0).withSingleLine(getBreakToken(topEnd).left),
nlSplit(1)
.andPolicyOpt(nextRhsEnd.map(decideNewlinesOnlyAfterToken))
)
case Newlines.keep if newlines != 0 => Seq(nlSplit(0))
case _ =>
val slbEnd = nextRhsEnd.getOrElse(rhsEnd)
Seq(Split(Space, 0).withSingleLine(slbEnd), nlSplit(1))
}

// Term.ForYield
case FormatToken(T.KwYield(), _, _) if leftOwner.is[Term.ForYield] =>
val lastToken =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -867,18 +867,6 @@ object TreeOps {
template.self.tokens.headOption
.orElse(template.stats.headOption.flatMap(_.tokens.headOption))

def getAndOrTypeRhs(tree: Tree): Option[Type] = tree match {
case x: Type.Or => Some(x.rhs)
case x: Type.And => Some(x.rhs)
case _ => None
}

@tailrec
final def getTopAndOrType(tree: Tree): Tree = tree.parent match {
case Some(x @ (_: Type.Or | _: Type.And)) => getTopAndOrType(x)
case _ => tree
}

def getTemplateGroups(template: Template): Option[Seq[List[Tree]]] = {
val groups = Seq(template.inits, template.derives).filter(_.nonEmpty)
if (groups.isEmpty) None else Some(groups)
Expand Down
62 changes: 32 additions & 30 deletions scalafmt-tests/src/test/resources/newlines/source_classic.stat
Original file line number Diff line number Diff line change
Expand Up @@ -4159,16 +4159,17 @@ type T = A1 & A2 | A3 & A4 | A5 & A6 | A7 & A8 | A9 & A10[T10] |
type T = A1 & A2 | A3 & A4 | A5 & A6 |
A7 & A8 | A9 & A10[T10] | A11 & A12 |
A13 & A14 | A15 & A16 | A17 & A18 |
A19 & A20[T20] | A21 & A22 | A23 &
A24 | A25 & A26 | A27 & A28 | A29 &
A30[T30] | A31 & A32 | A33 & A34 |
A35 & A36 | A37 & A38 | A39 &
A40[T40] | A41 & A42 | A43 & A44 |
A45 & A46 | A47 & A48 | A49 &
A50[T50] | A51 & A52 | A53 & A54 |
A55 & A56 | A57 & A58 | A59 &
A60[T60] | A61 & A62 | A63 & A64 |
A65 & A66 | A67 & A68 | A69 & A70[T70]
A19 & A20[T20] | A21 & A22 |
A23 & A24 | A25 & A26 | A27 & A28 |
A29 & A30[T30] | A31 & A32 |
A33 & A34 | A35 & A36 | A37 & A38 |
A39 & A40[T40] | A41 & A42 |
A43 & A44 | A45 & A46 | A47 & A48 |
A49 & A50[T50] | A51 & A52 |
A53 & A54 | A55 & A56 | A57 & A58 |
A59 & A60[T60] | A61 & A62 |
A63 & A64 | A65 & A66 | A67 & A68 |
A69 & A70[T70]
<<< #2422 with comments
runner.dialect = scala3
===
Expand All @@ -4180,26 +4181,27 @@ type T = A1 & A2 | A3 & A4 | A5 & A6 /* c1 */ | /* c2 */ A7 & A8 | A9 & A10[T10]
A51 & A52 | A53 & A54 | A55 & A56 /* c1 */ | /* c2 */ A57 & A58 | A59 & A60[T60] |
A61 & A62 | A63 & A64 | A65 & A66 /* c1 */ | /* c2 */ A67 & A68 | A69 & A70[T70]
>>>
type T = A1 & A2 | A3 & A4 | A5 &
A6 /* c1 */ | /* c2 */ A7 & A8 | A9 &
A10[T10] | A11 & A12 | A13 & A14 |
A15 & A16 /* c1 */ | /* c2 */ A17 &
A18 | A19 & A20[T20] | A21 & A22 |
A23 & A24 | A25 &
A26 /* c1 */ | /* c2 */ A27 & A28 |
A29 & A30[T30] | A31 & A32 | A33 &
A34 | A35 &
A36 /* c1 */ | /* c2 */ A37 & A38 |
A39 & A40[T40] | A41 & A42 | A43 &
A44 | A45 &
A46 /* c1 */ | /* c2 */ A47 & A48 |
A49 & A50[T50] | A51 & A52 | A53 &
A54 | A55 &
A56 /* c1 */ | /* c2 */ A57 & A58 |
A59 & A60[T60] | A61 & A62 | A63 &
A64 | A65 &
A66 /* c1 */ | /* c2 */ A67 & A68 |
A69 & A70[T70]
type T = A1 & A2 | A3 & A4 |
A5 & A6 /* c1 */ | /* c2 */
A7 & A8 | A9 & A10[T10] | A11 & A12 |
A13 & A14 |
A15 & A16 /* c1 */ | /* c2 */
A17 & A18 | A19 & A20[T20] |
A21 & A22 | A23 & A24 |
A25 & A26 /* c1 */ | /* c2 */
A27 & A28 | A29 & A30[T30] |
A31 & A32 | A33 & A34 |
A35 & A36 /* c1 */ | /* c2 */
A37 & A38 | A39 & A40[T40] |
A41 & A42 | A43 & A44 |
A45 & A46 /* c1 */ | /* c2 */
A47 & A48 | A49 & A50[T50] |
A51 & A52 | A53 & A54 |
A55 & A56 /* c1 */ | /* c2 */
A57 & A58 | A59 & A60[T60] |
A61 & A62 | A63 & A64 |
A65 & A66 /* c1 */ | /* c2 */
A67 & A68 | A69 & A70[T70]
<<< #2561 scala 2: defn, no align
align.preset = none
newlines.beforeOpenParenDefnSite = source
Expand Down
62 changes: 32 additions & 30 deletions scalafmt-tests/src/test/resources/newlines/source_fold.stat
Original file line number Diff line number Diff line change
Expand Up @@ -3965,16 +3965,17 @@ type T = A1 & A2 | A3 & A4 | A5 & A6 | A7 & A8 | A9 & A10[T10] |
type T = A1 & A2 | A3 & A4 | A5 & A6 |
A7 & A8 | A9 & A10[T10] | A11 & A12 |
A13 & A14 | A15 & A16 | A17 & A18 |
A19 & A20[T20] | A21 & A22 | A23 &
A24 | A25 & A26 | A27 & A28 | A29 &
A30[T30] | A31 & A32 | A33 & A34 |
A35 & A36 | A37 & A38 | A39 &
A40[T40] | A41 & A42 | A43 & A44 |
A45 & A46 | A47 & A48 | A49 &
A50[T50] | A51 & A52 | A53 & A54 |
A55 & A56 | A57 & A58 | A59 &
A60[T60] | A61 & A62 | A63 & A64 |
A65 & A66 | A67 & A68 | A69 & A70[T70]
A19 & A20[T20] | A21 & A22 |
A23 & A24 | A25 & A26 | A27 & A28 |
A29 & A30[T30] | A31 & A32 |
A33 & A34 | A35 & A36 | A37 & A38 |
A39 & A40[T40] | A41 & A42 |
A43 & A44 | A45 & A46 | A47 & A48 |
A49 & A50[T50] | A51 & A52 |
A53 & A54 | A55 & A56 | A57 & A58 |
A59 & A60[T60] | A61 & A62 |
A63 & A64 | A65 & A66 | A67 & A68 |
A69 & A70[T70]
<<< #2422 with comments
runner.dialect = scala3
===
Expand All @@ -3986,26 +3987,27 @@ type T = A1 & A2 | A3 & A4 | A5 & A6 /* c1 */ | /* c2 */ A7 & A8 | A9 & A10[T10]
A51 & A52 | A53 & A54 | A55 & A56 /* c1 */ | /* c2 */ A57 & A58 | A59 & A60[T60] |
A61 & A62 | A63 & A64 | A65 & A66 /* c1 */ | /* c2 */ A67 & A68 | A69 & A70[T70]
>>>
type T = A1 & A2 | A3 & A4 | A5 &
A6 /* c1 */ | /* c2 */ A7 & A8 | A9 &
A10[T10] | A11 & A12 | A13 & A14 |
A15 & A16 /* c1 */ | /* c2 */ A17 &
A18 | A19 & A20[T20] | A21 & A22 |
A23 & A24 | A25 &
A26 /* c1 */ | /* c2 */ A27 & A28 |
A29 & A30[T30] | A31 & A32 | A33 &
A34 | A35 &
A36 /* c1 */ | /* c2 */ A37 & A38 |
A39 & A40[T40] | A41 & A42 | A43 &
A44 | A45 &
A46 /* c1 */ | /* c2 */ A47 & A48 |
A49 & A50[T50] | A51 & A52 | A53 &
A54 | A55 &
A56 /* c1 */ | /* c2 */ A57 & A58 |
A59 & A60[T60] | A61 & A62 | A63 &
A64 | A65 &
A66 /* c1 */ | /* c2 */ A67 & A68 |
A69 & A70[T70]
type T = A1 & A2 | A3 & A4 |
A5 & A6 /* c1 */ | /* c2 */
A7 & A8 | A9 & A10[T10] | A11 & A12 |
A13 & A14 |
A15 & A16 /* c1 */ | /* c2 */
A17 & A18 | A19 & A20[T20] |
A21 & A22 | A23 & A24 |
A25 & A26 /* c1 */ | /* c2 */
A27 & A28 | A29 & A30[T30] |
A31 & A32 | A33 & A34 |
A35 & A36 /* c1 */ | /* c2 */
A37 & A38 | A39 & A40[T40] |
A41 & A42 | A43 & A44 |
A45 & A46 /* c1 */ | /* c2 */
A47 & A48 | A49 & A50[T50] |
A51 & A52 | A53 & A54 |
A55 & A56 /* c1 */ | /* c2 */
A57 & A58 | A59 & A60[T60] |
A61 & A62 | A63 & A64 |
A65 & A66 /* c1 */ | /* c2 */
A67 & A68 | A69 & A70[T70]
<<< #2561 scala 2: defn, no align
align.preset = none
newlines.beforeOpenParenDefnSite = source
Expand Down
79 changes: 44 additions & 35 deletions scalafmt-tests/src/test/resources/newlines/source_keep.stat
Original file line number Diff line number Diff line change
Expand Up @@ -4167,20 +4167,28 @@ type T = A1 & A2 | A3 & A4 | A5 & A6 | A7 & A8 | A9 & A10[T10] |
A51 & A52 | A53 & A54 | A55 & A56 | A57 & A58 | A59 & A60[T60] |
A61 & A62 | A63 & A64 | A65 & A66 | A67 & A68 | A69 & A70[T70]
>>>
type T = A1 & A2 | A3 & A4 | A5 & A6 |
A7 & A8 | A9 & A10[T10] |
A11 & A12 | A13 & A14 | A15 & A16 |
A17 & A18 | A19 & A20[T20] |
A21 & A22 | A23 & A24 | A25 & A26 |
A27 & A28 | A29 & A30[T30] |
A31 & A32 | A33 & A34 | A35 & A36 |
A37 & A38 | A39 & A40[T40] |
A41 & A42 | A43 & A44 | A45 & A46 |
A47 & A48 | A49 & A50[T50] |
A51 & A52 | A53 & A54 | A55 & A56 |
A57 & A58 | A59 & A60[T60] |
A61 & A62 | A63 & A64 | A65 & A66 |
A67 & A68 | A69 & A70[T70]
type T =
A1 & A2 | A3 & A4 | A5 & A6 | A7 & A8 | A9 & A10[
T10
] |
A11 & A12 | A13 & A14 | A15 & A16 | A17 & A18 | A19 & A20[
T20
] |
A21 & A22 | A23 & A24 | A25 & A26 | A27 & A28 | A29 & A30[
T30
] |
A31 & A32 | A33 & A34 | A35 & A36 | A37 & A38 | A39 & A40[
T40
] |
A41 & A42 | A43 & A44 | A45 & A46 | A47 & A48 | A49 & A50[
T50
] |
A51 & A52 | A53 & A54 | A55 & A56 | A57 & A58 | A59 & A60[
T60
] |
A61 & A62 | A63 & A64 | A65 & A66 | A67 & A68 | A69 & A70[
T70
]
<<< #2422 with comments
runner.dialect = scala3
===
Expand All @@ -4192,27 +4200,28 @@ type T = A1 & A2 | A3 & A4 | A5 & A6 /* c1 */ | /* c2 */ A7 & A8 | A9 & A10[T10]
A51 & A52 | A53 & A54 | A55 & A56 /* c1 */ | /* c2 */ A57 & A58 | A59 & A60[T60] |
A61 & A62 | A63 & A64 | A65 & A66 /* c1 */ | /* c2 */ A67 & A68 | A69 & A70[T70]
>>>
type T = A1 & A2 | A3 & A4 | A5 &
A6 /* c1 */ | /* c2 */ A7 & A8 | A9 &
A10[T10] |
A11 & A12 | A13 & A14 | A15 &
A16 /* c1 */ | /* c2 */ A17 & A18 |
A19 & A20[T20] |
A21 & A22 | A23 & A24 | A25 &
A26 /* c1 */ | /* c2 */ A27 & A28 |
A29 & A30[T30] |
A31 & A32 | A33 & A34 | A35 &
A36 /* c1 */ | /* c2 */ A37 & A38 |
A39 & A40[T40] |
A41 & A42 | A43 & A44 | A45 &
A46 /* c1 */ | /* c2 */ A47 & A48 |
A49 & A50[T50] |
A51 & A52 | A53 & A54 | A55 &
A56 /* c1 */ | /* c2 */ A57 & A58 |
A59 & A60[T60] |
A61 & A62 | A63 & A64 | A65 &
A66 /* c1 */ | /* c2 */ A67 & A68 |
A69 & A70[T70]
type T =
A1 & A2 | A3 & A4 | A5 & A6 /* c1 */ | /* c2 */ A7 & A8 | A9 & A10[
T10
] |
A11 & A12 | A13 & A14 | A15 & A16 /* c1 */ | /* c2 */ A17 & A18 | A19 & A20[
T20
] |
A21 & A22 | A23 & A24 | A25 & A26 /* c1 */ | /* c2 */ A27 & A28 | A29 & A30[
T30
] |
A31 & A32 | A33 & A34 | A35 & A36 /* c1 */ | /* c2 */ A37 & A38 | A39 & A40[
T40
] |
A41 & A42 | A43 & A44 | A45 & A46 /* c1 */ | /* c2 */ A47 & A48 | A49 & A50[
T50
] |
A51 & A52 | A53 & A54 | A55 & A56 /* c1 */ | /* c2 */ A57 & A58 | A59 & A60[
T60
] |
A61 & A62 | A63 & A64 | A65 & A66 /* c1 */ | /* c2 */ A67 & A68 | A69 & A70[
T70
]
<<< #2226
object Class extends Base
with Trait1
Expand Down
Loading

0 comments on commit cdeb22b

Please sign in to comment.