All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cps.macros.forest.ValDefTreeTransform.scala Maven / Gradle / Ivy

package cps.macros.forest

import scala.quoted._

import cps._
import cps.macros._
import cps.macros.common._
import cps.macros.misc._


trait ValDefTreeTransform[F[_], CT, CC<:CpsMonadContext[F]]:

  thisScope: TreeTransformScope[F, CT, CC] =>

  import quotes.reflect.*

  def runValDefFromBlock(block: Block, valDef: ValDef)(owner: Symbol): CpsTree = {
    if cpsCtx.flags.debugLevel >= 15 then
      cpsCtx.log(s"ValDefTreeTransform:runValDefFomBlock, valDef=$valDef")
    val rhs = valDef.rhs.getOrElse(
            throw MacroError(s"val $valDef without right part in block ", block.asExpr)
    )
    //val rhsType = TransformUtil.veryWiden(rhs.tpe).asType
    val cpsRhs = runRoot(rhs)(valDef.symbol)
    ValCpsTree(owner,valDef, cpsRhs, CpsTree.empty, true)
  }

  




© 2015 - 2025 Weber Informatics LLC | Privacy Policy