From 331326b8e810f0f6d885b69bf86253839d059ed3 Mon Sep 17 00:00:00 2001 From: Albert Meltzer <7529386+kitbellew@users.noreply.github.com> Date: Thu, 14 Sep 2023 07:00:34 -0700 Subject: [PATCH] Add a full structure test for intermittent failure --- .../org/scalafmt/CustomStructureTest.scala | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 scalafmt-tests/src/test/scala/org/scalafmt/CustomStructureTest.scala diff --git a/scalafmt-tests/src/test/scala/org/scalafmt/CustomStructureTest.scala b/scalafmt-tests/src/test/scala/org/scalafmt/CustomStructureTest.scala new file mode 100644 index 0000000000..2975a32815 --- /dev/null +++ b/scalafmt-tests/src/test/scala/org/scalafmt/CustomStructureTest.scala @@ -0,0 +1,58 @@ +package org.scalafmt + +import munit.FunSuite + +import scala.meta._ +import scala.meta.internal.parsers.ScalametaParser + +class CustomStructureTest extends FunSuite { + + private def check( + original: String, + expected: Tree, + dialect: Dialect + )(implicit loc: munit.Location): Unit = { + val parser = new ScalametaParser(Input.String(original))(dialect) + assertNoDiff(parser.parseStat().structure, expected.structure) + } + + // #3634 + check( + """ + |def foo(a: Foo[_]): Unit = ??? + """.stripMargin, + Defn.Def( + Nil, + Term.Name("foo"), + List( + Member.ParamClauseGroup( + Type.ParamClause(Nil), + List( + Term.ParamClause( + List( + Term.Param( + Nil, + Term.Name("a"), + Some( + Type.Apply( + Type.Name("Foo"), + Type.ArgClause( + List(Type.Wildcard(Type.Bounds(None, None))) + ) + ) + ), + None + ) + ), + None + ) + ) + ) + ), + Some(Type.Name("Unit")), + Term.Name("???") + ), + dialects.Scala3 + ) + +}