From f4fdb221b798bdab47c0eed4932f8cb216b85eba Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Tue, 26 Mar 2019 14:54:36 +0100 Subject: [PATCH] Add String interpolation position regression test --- ...tasty-string-interpolator-position-a.check | 2 ++ .../Macro_1.scala | 21 +++++++++++++++++++ .../Test_2.scala | 8 +++++++ ...tasty-string-interpolator-position-b.check | 2 ++ .../Macro_1.scala | 21 +++++++++++++++++++ .../Test_2.scala | 8 +++++++ 6 files changed, 62 insertions(+) create mode 100644 tests/neg/tasty-string-interpolator-position-a.check create mode 100644 tests/neg/tasty-string-interpolator-position-a/Macro_1.scala create mode 100644 tests/neg/tasty-string-interpolator-position-a/Test_2.scala create mode 100644 tests/neg/tasty-string-interpolator-position-b.check create mode 100644 tests/neg/tasty-string-interpolator-position-b/Macro_1.scala create mode 100644 tests/neg/tasty-string-interpolator-position-b/Test_2.scala diff --git a/tests/neg/tasty-string-interpolator-position-a.check b/tests/neg/tasty-string-interpolator-position-a.check new file mode 100644 index 000000000000..75feca5bdc45 --- /dev/null +++ b/tests/neg/tasty-string-interpolator-position-a.check @@ -0,0 +1,2 @@ +<46..65> in Test_2.scala +there are no parts diff --git a/tests/neg/tasty-string-interpolator-position-a/Macro_1.scala b/tests/neg/tasty-string-interpolator-position-a/Macro_1.scala new file mode 100644 index 000000000000..769d29069f8a --- /dev/null +++ b/tests/neg/tasty-string-interpolator-position-a/Macro_1.scala @@ -0,0 +1,21 @@ +import scala.quoted._ +import scala.tasty.Reflection +import scala.language.implicitConversions +import scala.quoted.Exprs.LiftedExpr +import scala.quoted.Toolbox.Default._ + +object Macro { + + implicit inline def (strCtx: => StringContext) f2 (args: =>Any*): String = ${FIntepolator.apply('strCtx, 'args)} + +} + +object FIntepolator { + + def apply(strCtxExpr: Expr[StringContext], argsExpr: Expr[Seq[Any]])(implicit reflect: Reflection): Expr[String] = { + import reflect._ + error("there are no parts", strCtxExpr.unseal.underlyingArgument.pos) + '{ ($strCtxExpr).s($argsExpr: _*) } + } + +} diff --git a/tests/neg/tasty-string-interpolator-position-a/Test_2.scala b/tests/neg/tasty-string-interpolator-position-a/Test_2.scala new file mode 100644 index 000000000000..0b335d55c40c --- /dev/null +++ b/tests/neg/tasty-string-interpolator-position-a/Test_2.scala @@ -0,0 +1,8 @@ + +import Macro._ + +object Test extends App { + + new StringContext().f2() // error + +} diff --git a/tests/neg/tasty-string-interpolator-position-b.check b/tests/neg/tasty-string-interpolator-position-b.check new file mode 100644 index 000000000000..c903bfb69b24 --- /dev/null +++ b/tests/neg/tasty-string-interpolator-position-b.check @@ -0,0 +1,2 @@ +<65..65> in Test_2.scala +there are no args diff --git a/tests/neg/tasty-string-interpolator-position-b/Macro_1.scala b/tests/neg/tasty-string-interpolator-position-b/Macro_1.scala new file mode 100644 index 000000000000..d4d2466c5168 --- /dev/null +++ b/tests/neg/tasty-string-interpolator-position-b/Macro_1.scala @@ -0,0 +1,21 @@ +import scala.quoted._ +import scala.tasty.Reflection +import scala.language.implicitConversions +import scala.quoted.Exprs.LiftedExpr +import scala.quoted.Toolbox.Default._ + +object Macro { + + implicit inline def (strCtx: => StringContext) f3 (args: =>Any*): String = ${FIntepolator.apply('strCtx, 'args)} + +} + +object FIntepolator { + + def apply(strCtxExpr: Expr[StringContext], argsExpr: Expr[Seq[Any]])(implicit reflect: Reflection): Expr[String] = { + import reflect._ + error("there are no args", argsExpr.unseal.underlyingArgument.pos) + '{ ($strCtxExpr).s($argsExpr: _*) } + } + +} diff --git a/tests/neg/tasty-string-interpolator-position-b/Test_2.scala b/tests/neg/tasty-string-interpolator-position-b/Test_2.scala new file mode 100644 index 000000000000..2242deada224 --- /dev/null +++ b/tests/neg/tasty-string-interpolator-position-b/Test_2.scala @@ -0,0 +1,8 @@ + +import Macro._ + +object Test extends App { + + new StringContext().f3() // error + +}