aboutsummaryrefslogtreecommitdiff
path: root/compiler/test/dotty/tools/dotc/ast/UntypedTreeMapTest.scala
blob: 9e7402968513fd84e8a62e20de4afb4f2fcb0ceb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package dotty.tools
package dotc
package ast

import org.junit.Test
import org.junit.Assert._

import dotc.core.Contexts._
import dotc.parsing.Parsers.Parser
import dotc.util.SourceFile

class UntpdTreeMapTest extends DottyTest {

  import untpd._

  def parse(code: String): Tree = {
    val (_, stats) = new Parser(new SourceFile("<meta>", code.toCharArray)).templateStatSeq()
    stats match { case List(stat) => stat; case stats => untpd.Thicket(stats) }
  }

  @Test
  def testMapInterpolatedString = {
    val tree = parse(""" q"hello ${2017}!" """)
    val identity = new UntypedTreeMap {
      override def transform(tree: Tree)(implicit ctx: Context): Tree = tree match {
        case _ =>  super.transform(tree)
      }
    }

    assertEquals(tree.toString, identity.transform(tree).toString)
  }
}