Skip to content

Commit c4ab99f

Browse files
committed
Replace inheritance with ifdef for version specific Interpolator
1 parent 7ba54c8 commit c4ab99f

7 files changed

+230
-225
lines changed

Base/src/main/scala-2/VersionSpecificInterpolator.scala

-114
This file was deleted.

Base/src/main/scala-2/VersionSpecificParser.scala

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package name.rayrobdod.stringContextParserCombinator
22

3+
import scala.collection.immutable.Seq
34
import scala.reflect.macros.blackbox.Context
45
import name.rayrobdod.stringContextParserCombinator.{Parser => SCPCParser}
56

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package name.rayrobdod.stringContextParserCombinator
2+
3+
import scala.quoted.*
4+
5+
// scala 2 reads the `'{Some($value}` as an unclosed character literal
6+
// and ifdef is insufficient to hide that construct from the scala 2 compiler
7+
8+
private[stringContextParserCombinator]
9+
object InterpolatorImpl {
10+
def stringContextFromExpr(sc:Expr[StringContext])(using Quotes): Seq[Expr[String]] = {
11+
sc match {
12+
case '{ _root_.scala.StringContext(${Varargs(args)}: _*) } => args
13+
case _ => scala.quoted.quotes.reflect.report.errorAndAbort(s"Do not know how to process this tree", sc)
14+
}
15+
}
16+
}

Base/src/main/scala-3/VersionSpecificInterpolator.scala

-107
This file was deleted.

0 commit comments

Comments
 (0)