generateGroupedCasesWithAssignment is like generateGroupedCases but for assignment context.
(varName string, typeSwitch bool)
| 349 | |
| 350 | // generateGroupedCasesWithAssignment is like generateGroupedCases but for assignment context. |
| 351 | func (g *MatchCodeGen) generateGroupedCasesWithAssignment(varName string, typeSwitch bool) { |
| 352 | // Group arms by their case key |
| 353 | groups := make(map[string]*armGroup) |
| 354 | var order []string |
| 355 | |
| 356 | for _, arm := range g.Match.Arms { |
| 357 | key := g.getPatternCaseKey(arm.Pattern) |
| 358 | if _, exists := groups[key]; !exists { |
| 359 | groups[key] = &armGroup{ |
| 360 | typeName: key, |
| 361 | isDefault: key == "default", |
| 362 | } |
| 363 | order = append(order, key) |
| 364 | } |
| 365 | groups[key].arms = append(groups[key].arms, arm) |
| 366 | } |
| 367 | |
| 368 | for _, key := range order { |
| 369 | group := groups[key] |
| 370 | g.generateGroupedCaseWithAssignment(group, varName, typeSwitch) |
| 371 | } |
| 372 | } |
| 373 | |
| 374 | // generateGroupedCaseWithAssignment generates a single case clause with assignment for a group. |
| 375 | func (g *MatchCodeGen) generateGroupedCaseWithAssignment(group *armGroup, varName string, typeSwitch bool) { |
no test coverage detected