Skip to content

Commit f62e286

Browse files
Merge pull request #6202 from dotty-staging/inline-strip
Add test case for typesafe compile-time stripMargin
2 parents 5163b70 + d45e50c commit f62e286

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import scala.quoted._
2+
import scala.tasty._
3+
4+
object api {
5+
inline def (inline x: String) strip <: String =
6+
${ stripImpl(x) }
7+
8+
private def stripImpl(x: String)(implicit refl: Reflection): Expr[String] =
9+
x.stripMargin.toExpr
10+
11+
inline def typeChecks(inline x: String): Boolean =
12+
${ typeChecksImpl(x) }
13+
14+
private def typeChecksImpl(x: String)(implicit refl: Reflection): Expr[Boolean] = {
15+
import refl._
16+
if (refl.typing.typeChecks(x)) true.toExpr else false.toExpr
17+
}
18+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import api._
2+
3+
object Test {
4+
def main(args: Array[String]): Unit = {
5+
assert(typeChecks("1 + 1".strip))
6+
assert(scala.testing.typeChecks("1 + 1".strip))
7+
}
8+
}

0 commit comments

Comments
 (0)