In Scala2's macro, you could dynamically construct expressions by using Context.parse and so on.
  def generateExpr[T: c.WeakTypeTag](target: C#Symbol): C#Expr[T] = {
    if (target.isModule) {
      c.Expr[T](c.parse(target.fullName))
    } else {
      c.Expr[T] {
        c.parse(
          s"""new ${target.fullName}(${
            val a = target.asClass.primaryConstructor.asMethod
            val b = a.paramLists
            target.asClass.primaryConstructor.asMethod.paramLists
              .collect {
                case curry if !curry.exists(_.isImplicit) =>
                  curry.map { param => s"inject[${param.typeSignature.toString}]" }.mkString(",")
              }
              .mkString(")(")
          }) with MixIn"""
        )
      }
    }
  }
Even if the pre-composition syntax literal refers to a symbol that is not in the current classpath, the compilation will succeed if it can be resolved in the module that calls macro.
However, there is no such feature in the released Scala3.
My goal is to use
- to refer to a symbol that is not in the classpath of a module using macro.
 - I want to use 
new $T(???) with Traitfrom the type information. 
Are these no longer feasible?
=====
https://github.com/lampepfl/dotty/discussions/12590
As mentioned in this issue, the deployment of variable length parameters to Trees is also unknown. These will be relevant as dynamic AST construction.