未验证 提交 d81de72e 编写于 作者: 梦境迷离's avatar 梦境迷离 提交者: GitHub

make force set false (#182)

Co-authored-by: 梦境迷离's avatar梦境迷离 <dreamylost@outlook.com>
上级 1f4df5f7
......@@ -47,7 +47,7 @@ abstract class AbstractMacroProcessor(val c: whitebox.Context) {
c.enclosingPosition,
s"\n###### Time: ${ZonedDateTime.now().format(DateTimeFormatter.ISO_ZONED_DATE_TIME)} " +
s"Expanded macro start ######\n" + resTree.toString() + "\n###### Expanded macro end ######\n",
force = force
force = false
)
/**
......@@ -76,7 +76,7 @@ abstract class AbstractMacroProcessor(val c: whitebox.Context) {
c.info(
c.enclosingPosition,
s"Method: `${name.decodedName.toString}` in enclosing class: `$getEnclosingClassName`.",
force = true
force = false
)
buffer.append(name)
doFind(tail)
......
......@@ -122,7 +122,7 @@ object CacheEvictMacro {
DefDef(mods, name, tparams, vparamss, tpt, newBody)
}
printTree(force = true, resTree)
printTree(force = false, resTree)
c.Expr[Any](resTree)
}
}
......
......@@ -77,7 +77,7 @@ object CacheableMacro {
DefDef(mods, name, tparams, vparamss, tpt, newBody)
}
printTree(force = true, resTree)
printTree(force = false, resTree)
c.Expr[Any](resTree)
}
}
......
......@@ -36,6 +36,8 @@ abstract class AbstractMacroProcessor(val c: blackbox.Context) {
import c.universe._
protected val packageName = q"_root_.org.bitlap.csv.core"
/**
* Get the list of case class constructor parameters and return the column index, column name, and parameter type that zip as a `List[((Int, Tree), Type)]`.
*
......@@ -80,12 +82,12 @@ abstract class AbstractMacroProcessor(val c: blackbox.Context) {
* @tparam T
* @return
*/
def printTree[T: c.WeakTypeTag](force: Boolean, resTree: c.Tree): c.Expr[T] = {
def exprPrintTree[T: c.WeakTypeTag](force: Boolean, resTree: c.Tree): c.Expr[T] = {
c.info(
c.enclosingPosition,
s"\n###### Time: ${ZonedDateTime.now().format(DateTimeFormatter.ISO_ZONED_DATE_TIME)} Expanded macro start ######\n" + resTree
.toString() + "\n###### Expanded macro end ######\n",
force = force
force = false
)
c.Expr[T](resTree)
}
......
......@@ -34,8 +34,6 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
import c.universe._
private val packageName = q"_root_.org.bitlap.csv.core"
private val annoBuilderPrefix = "_AnonCsvableBuilder$"
private val builderFunctionPrefix = "_CsvableBuilderFunction$"
......@@ -48,7 +46,7 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
val builderId = getBuilderId(annoBuilderPrefix)
MacroCache.builderFunctionTrees.getOrElseUpdate(builderId, mutable.Map.empty).update(termName.toString, value)
val tree = q"new ${c.prefix.actualType}"
printTree[CsvableBuilder[T]](force = true, tree)
exprPrintTree[CsvableBuilder[T]](force = false, tree)
}
def applyImpl[T: c.WeakTypeTag]: c.Expr[CsvableBuilder[T]] =
......@@ -68,7 +66,7 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
class $className extends $packageName.CsvableBuilder[$caseClazzName]
new $className
"""
printTree[CsvableBuilder[T]](force = true, tree)
exprPrintTree[CsvableBuilder[T]](force = false, tree)
}
private def deriveCsvableImpl[T: c.WeakTypeTag](t: c.Expr[T], columnSeparator: c.Expr[Char]): c.Expr[Csvable[T]] = {
......@@ -90,7 +88,7 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
..${CsvableBody[T](columnSeparator, innerVarTermName, customTrees)}
}
"""
printTree[Csvable[T]](force = false, tree)
exprPrintTree[Csvable[T]](force = false, tree)
}
private def CsvableBody[T: c.WeakTypeTag](
......@@ -152,7 +150,7 @@ class DeriveCsvableBuilder(override val c: whitebox.Context) extends AbstractMac
if (null == fields) "" else $fieldsToString.mkString($separator.toString)
}
"""
printTree[Csvable[T]](force = false, tree)
exprPrintTree[Csvable[T]](force = false, tree)
}
}
......@@ -34,9 +34,8 @@ class DeriveScalableBuilder(override val c: whitebox.Context) extends AbstractMa
import c.universe._
private val packageName = q"_root_.org.bitlap.csv.core"
private val annoBuilderPrefix = "_AnonScalableBuilder$"
private val builderFunctionPrefix = "_ScalableBuilderFunction$"
def setFieldImpl[T: c.WeakTypeTag, SF: c.WeakTypeTag](
......@@ -47,7 +46,7 @@ class DeriveScalableBuilder(override val c: whitebox.Context) extends AbstractMa
val builderId = getBuilderId(annoBuilderPrefix)
MacroCache.builderFunctionTrees.getOrElseUpdate(builderId, mutable.Map.empty).update(termName.toString, value)
val tree = q"new ${c.prefix.actualType}"
printTree[ScalableBuilder[T]](force = true, tree)
exprPrintTree[ScalableBuilder[T]](force = false, tree)
}
def applyImpl[T: c.WeakTypeTag]: c.Expr[ScalableBuilder[T]] =
......@@ -67,7 +66,7 @@ class DeriveScalableBuilder(override val c: whitebox.Context) extends AbstractMa
class $className extends $packageName.ScalableBuilder[$caseClazzName]
new $className
"""
printTree[ScalableBuilder[T]](force = true, tree)
exprPrintTree[ScalableBuilder[T]](force = false, tree)
}
......@@ -94,7 +93,7 @@ class DeriveScalableBuilder(override val c: whitebox.Context) extends AbstractMa
..${scalableBody[T](clazzName, innerVarTermName)}
}
"""
printTree[Scalable[T]](force = true, tree)
exprPrintTree[Scalable[T]](force = false, tree)
}
private def scalableBody[T: c.WeakTypeTag](
......
......@@ -34,8 +34,6 @@ object DeriveToCaseClass {
class Macro(override val c: blackbox.Context) extends AbstractMacroProcessor(c) {
import c.universe._
private val packageName = q"_root_.org.bitlap.csv.core"
def macroImpl[T <: Product: c.WeakTypeTag](
line: c.Expr[String],
columnSeparator: c.Expr[Char]
......@@ -77,7 +75,7 @@ object DeriveToCaseClass {
lazy val $innerVarTermName = _root_.org.bitlap.csv.core.StringUtils.splitColumns($line, $columnSeparator)
Option(${TermName(clazzName.decodedName.toString)}(..${fields(innerVarTermName)}))
"""
printTree[T](force = false, tree)
exprPrintTree[T](force = false, tree)
}.asInstanceOf[c.Expr[Option[T]]]
......
......@@ -35,8 +35,6 @@ object DeriveToString {
import c.universe._
private val packageName = q"_root_.org.bitlap.csv.core"
def macroImpl[T: c.WeakTypeTag](t: c.Expr[T], columnSeparator: c.Expr[Char]): c.Expr[String] = {
val (names, indexTypes) = super.checkCaseClassZip[T]
val clazzName = c.weakTypeOf[T].typeSymbol.name
......@@ -62,7 +60,7 @@ object DeriveToString {
val fields = ${TermName(clazzName.decodedName.toString)}.unapply($innerVarTermName).orNull
if (null == fields) "" else $fieldsToString.mkString($separator.toString)
"""
printTree[String](force = false, tree)
exprPrintTree[String](force = false, tree)
}
}
......
......@@ -49,7 +49,7 @@ object DeriveCsvConverter {
override def toCsvString(t: $typeName): String = org.bitlap.csv.core.macros.DeriveToString[$typeName](t, $columnSeparator)
}
"""
printTree[CC](force = true, tree)
exprPrintTree[CC](force = false, tree)
}
def macroImpl[CC: c.WeakTypeTag]: c.Expr[CC] = {
......
......@@ -55,7 +55,7 @@ abstract class AbstractMacroProcessor(val c: whitebox.Context) {
def impl(annottees: Expr[Any]*): Expr[Any] = {
checkAnnottees(annottees)
val resTree = collectCustomExpr(annottees)(createCustomExpr)
printTree(force = true, resTree.tree)
printTree(force = false, resTree.tree)
resTree
}
......@@ -86,7 +86,7 @@ abstract class AbstractMacroProcessor(val c: whitebox.Context) {
c.enclosingPosition,
s"\n###### Time: ${ZonedDateTime.now().format(DateTimeFormatter.ISO_ZONED_DATE_TIME)} " +
s"Expanded macro start ######\n" + resTree.toString() + "\n###### Expanded macro end ######\n",
force = force
force = false
)
/**
......
......@@ -170,7 +170,7 @@ object elapsedMacro {
getNewMethod(defDef)
}
}
printTree(force = true, resTree)
printTree(force = false, resTree)
c.Expr[Any](resTree)
}
}
......
......@@ -97,7 +97,7 @@ object logMacro {
// see https://docs.scala-lang.org/overviews/macros/annotations.html
}
printTree(force = true, resTree)
printTree(force = false, resTree)
c.Expr[Any](resTree)
}
}
......
......@@ -195,7 +195,7 @@ object ProcessorCreatorMacro {
c.enclosingPosition,
s"\n###### Time: ${ZonedDateTime.now().format(DateTimeFormatter.ISO_ZONED_DATE_TIME)} " +
s"Expanded macro start ######\n" + ret.toString() + "\n###### Expanded macro end ######\n",
force = true
force = false
)
ret
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册