ConstructorUtil

izumi.distage.constructors.ConstructorUtil
class ConstructorUtil[Q <: Quotes](using val qctx: Q)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Type members

Classlikes

final case class MemberRepr(name: String, isMethod: Boolean, mbSymbol: Option[Symbol], tpe: TypeRepr, isNewMethod: Boolean)

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object MemberRepr

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ParamRepr(name: String, mbSymbol: Option[Symbol], tpe: TypeRepr)

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Types

type ParamReprLists = List[List[ParamRepr]]

Value members

Concrete methods

def assertSignatureIsAcceptableForFactory(signatureParams: List[ParamRepr], resultTpe: TypeRepr, clue: String): Unit
def buildConstructorTermAppliedToTypeParameters(resultType: TypeRepr): Term
def buildParentConstructorCallTerms(constructorParamListsRepr: List[(TypeRepr, ParamReprLists)], outerLamArgs: List[Term]): Seq[Term]
def dereferenceTypeRef(tpe: TypeRepr): TypeRepr
final def ensureByName(tpe: TypeRepr): TypeRepr
def extractMethodParamLists(methodType: TypeRepr, methodSym: Symbol): ParamReprLists
def findRequiredImplParents(resultTpeSym: Symbol, resultTpe: TypeRepr): List[Symbol]
def getMethodArityWithTypeParams(mtpe: TypeRepr): Int
def makeFunctoid[R : Type](params: List[ParamRepr], argsLambda: Expr[Seq[Any] => R], providerType: Expr[ProviderType]): Expr[Functoid[R]]
def processOverrides(memberReprs: List[MemberRepr]): List[MemberRepr]
def readWithAnnotation(name: String, annotSym: Option[Symbol], tpe: TypeRepr): Option[TypeRepr]
def requireConcreteTypeConstructor(tpe: TypeRepr, macroName: String): Unit
final def returnTypeOfByName(tpe: TypeRepr): TypeRepr
final def returnTypeOfMethod(t: TypeRepr): TypeRepr
final def returnTypeOfMethodOrByName(tpe: TypeRepr): TypeRepr
def symbolIsTraitOrAbstract(typeSym: Symbol): Boolean
def unpackRefinement(t: TypeRepr): List[MemberRepr]
def wrapCtorApplicationIntoFunctoidRawLambda[R : Type](paramss: ParamReprLists, constructorTerm: Term): Expr[Seq[Any] => R]
def wrapIntoFunctoidRawLambda[R : Type](params: List[ParamRepr])(body: (Symbol, List[Term]) => Tree): Expr[Seq[Any] => R]

Givens

Givens

given qctx: Q