ProdUplcConstrOps
scalus.compiler.sir.lowering.typegens.ProdUplcConstrOps
object ProdUplcConstrOps
Emitter for ProductCaseClassRepresentation.ProdUplcConstr — native UPLC Constr(tag, [t1, t2, ...]) emission for product values.
Owns:
genConstr: adopts each argument to its target field representation (canonical LambdaRepresentation for function fields; the@UplcRepr-annotated repr for annotated fields; the field type's natural repr when the type itself carries a class-level@UplcRepr), then assembles aTerm.Constr-shapedLoweredValuetagged with the constructor's index.hasClassLevelUplcRepr(private helper): unwrapsAnnotated/TypeLambda/TypeProxyand returns true when the underlying(CaseClass | SumCaseClass).decl.annotationscarry theuplcReprkey.
Called from:
ProductCaseEmitter.genConstrLowered(Data-vs-UplcConstr dispatcher);ProductCaseUplcConstrOnlyEmitter,ProductCaseUplcConstrEmitter,SumCaseUplcConstrEmitter,SumCaseUplcConstrOnlyEmitter— all with the same(constr, loweredArgs)signature.
Constructor-handling helpers (retrieveConstrIndex, retrieveConstrDecl) still live on ProductCaseEmitter; called cross-class from here.
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ProdUplcConstrOps.type
Members list
In this article