ChooseDataLoweredValue
LoweredValue for ChooseData builtin (PlutusV1-V3).
Uses the ChooseData builtin with delayed branches: Force(ChooseData data (Delay constr) (Delay map) (Delay list) (Delay i) (Delay b)).
Unlike CaseDataLoweredValue, the bound variables are not lambda parameters: each carries the corresponding un*Data extraction of the scrutinee as its rhs and is emitted inside the branch that uses it, so the extraction only runs when the branch is selected.
Attributes
- Graph
-
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait ComplexLoweredValuetrait LoweredValueclass Objecttrait Matchableclass AnyShow all
Members list
Value members
Concrete methods
Pretty print this value with all definitona
Pretty print this value with all definitona
Value parameters
- style
-
- style of printing
Attributes
- Definition Classes
Attributes
- Definition Classes
The type of representation of this value.
Attributes
- Definition Classes
Generates the term for this value.
Inherited methods
add identifiable variable to be updated from this variable
add identifiable variable to be updated from this variable
Attributes
- Definition Classes
- Inherited from:
- ComplexLoweredValue
Annotation for a term emitted by this value: p plus functionName.
Annotation for a term emitted by this value: p plus functionName.
Attributes
- Inherited from:
- LoweredValue
Pretty print reference to value
Pretty print reference to value
Value parameters
- style
-
- style of printing
Attributes
- Definition Classes
- Inherited from:
- ComplexLoweredValue
Attributes
- Definition Classes
- Inherited from:
- ComplexLoweredValue
Internal variables, that are used inside this value.
Internal variables, that are used inside this value.
Attributes
- Definition Classes
- Inherited from:
- ComplexLoweredValue
Whether this value is (or wraps) a compile-time constant. Propagates through proxies and variable bindings.
Whether this value is (or wraps) a compile-time constant. Propagates through proxies and variable bindings.
Attributes
- Inherited from:
- LoweredValue
Is this value effort-less to compute (i.e. constant or variable or lambda)
Is this value effort-less to compute (i.e. constant or variable or lambda)
Attributes
- Definition Classes
- Inherited from:
- ComplexLoweredValue
Upcast the value to the target type if needed.
Upcast the value to the target type if needed.
Also reconciles the value's representation with any uplcRepr annotation on the target type. Even if structural unification succeeds (annotations are stripped by SIRUnify), the target may declare a representation hint that this value's actual representation doesn't satisfy — in that case, convert via toRepresentation so the returned value's type and repr stay consistent for downstream consumers.
Attributes
- Inherited from:
- LoweredValue
Attributes
- Inherited from:
- LoweredValue
Attributes
- Inherited from:
- Product
Attributes
- Inherited from:
- Product
Attributes
- Inherited from:
- ComplexLoweredValue
Attributes
- Inherited from:
- LoweredValue
Attributes
- Inherited from:
- LoweredValue
The UPLC term that represents this value, wrapped in vars if needed.
The UPLC term that represents this value, wrapped in vars if needed.
Value parameters
- gctx
-
- context for term generation
Attributes
- Returns
-
generated term wrapped in lambdas with definition of needed uplevel variables
- Inherited from:
- LoweredValue
Convert this value to the given representation.
Convert this value to the given representation.
Routes through SumDispatch.toRepresentation, which inspects the source value's actual typegen and dispatches accordingly (Sum-side typegens go through the centralized toRepresentationImpl helpers; non-Sum typegens fall back to their direct toRepresentation). We can't split by SIRType.isSum/isProd here because sum-shaped constructors have CaseClass SIR types (e.g. List.Cons is a CaseClass whose typegen is SumBuiltinList).
Attributes
- Inherited from:
- LoweredValue
Attributes
- Inherited from:
- LoweredValue
Uplevel variables, that are used in this value.
Uplevel variables, that are used in this value.
Attributes
- Definition Classes
- Inherited from:
- ComplexLoweredValue
Inherited fields
Attributes
- Inherited from:
- ComplexLoweredValue
Attributes
- Inherited from:
- ComplexLoweredValue
Attributes
- Inherited from:
- LoweredValue
Attributes
- Inherited from:
- LoweredValue
Uplevel variables, that should be generated before generation of term
Uplevel variables, that should be generated before generation of term
Attributes
- Inherited from:
- ComplexLoweredValue
Simple name of the user function that was being lowered when this value was created, or "" when it was created outside any named binding. Captured from LoweringContext.currentFunction at construction time, because term generation runs as a separate pass after lowering has finished and no longer knows where a value came from.
Simple name of the user function that was being lowered when this value was created, or "" when it was created outside any named binding. Captured from LoweringContext.currentFunction at construction time, because term generation runs as a separate pass after lowering has finished and no longer knows where a value came from.
Pure metadata: it is copied into the scalus.uplc.UplcAnnotation of every term this value emits (see ann) so tooling can group the compiled UPLC by source function. It never influences the generated code.
Attributes
- Inherited from:
- LoweredValue
Variables, that are directly defined in this value.
Attributes
- Inherited from:
- ComplexLoweredValue