MCPcopy Index your code
hub / github.com/MadAppGang/dingo / generateConstructorCaseWithAssignment

Method generateConstructorCaseWithAssignment

pkg/codegen/match.go:914–929  ·  view source on GitHub ↗

generateConstructorCaseWithAssignment generates case for constructor patterns with assignment.

(pattern *ast.ConstructorPattern, arm *ast.MatchArm, varName string, typeSwitch bool)

Source from the content-addressed store, hash-verified

912
913// generateConstructorCaseWithAssignment generates case for constructor patterns with assignment.
914func (g *MatchCodeGen) generateConstructorCaseWithAssignment(pattern *ast.ConstructorPattern, arm *ast.MatchArm, varName string, typeSwitch bool) {
915 // Convert constructor name to full type name
916 typeName := g.constructorToTypeName(pattern.Name)
917
918 g.Write("case " + typeName + ":\n")
919
920 // Extract bindings from constructor parameters
921 var bindings []Binding
922 numParams := len(pattern.Params)
923 isTupleVariant := g.isTupleVariant(typeName)
924 for i, param := range pattern.Params {
925 bindings = append(bindings, g.extractBindings(param, i, numParams, isTupleVariant)...)
926 }
927
928 g.generateArmBodyWithAssignment(arm, varName, bindings)
929}
930
931// generateLiteralCaseWithAssignment generates case for literal patterns with assignment.
932func (g *MatchCodeGen) generateLiteralCaseWithAssignment(pattern *ast.LiteralPattern, arm *ast.MatchArm, varName string) {

Callers 1

Calls 5

constructorToTypeNameMethod · 0.95
isTupleVariantMethod · 0.95
extractBindingsMethod · 0.95
WriteMethod · 0.45

Tested by

no test coverage detected