Skip to content

Commit b1eaaab

Browse files
Tidy up dst library use (#4631)
* Use AddComment if there's only one comment * Use astbuilder.Statements instead of literal * Use astbuilder.Returns factory method * Use astbuilder.StatementBlock factory method * Code gardening
1 parent eff1350 commit b1eaaab

14 files changed

+58
-80
lines changed

v2/tools/generator/internal/armconversion/convert_from_arm_function_builder.go

+4-10
Original file line numberDiff line numberDiff line change
@@ -564,17 +564,11 @@ func (builder *convertFromARMBuilder) buildFlattenedAssignment(
564564
astbuilder.IfNotNil(propToCheck, stmts...))
565565
}
566566

567-
comment := []dst.Stmt{
568-
&dst.EmptyStmt{
569-
Decs: dst.EmptyStmtDecorations{
570-
NodeDecs: dst.NodeDecs{
571-
End: []string{"// copying flattened property:"},
572-
},
573-
},
574-
},
575-
}
567+
astbuilder.AddComment(
568+
&stmts[0].Decorations().Start,
569+
"// copying flattened property:")
576570

577-
return handleWith(comment, stmts), nil
571+
return handleWith(stmts), nil
578572
}
579573

580574
func (builder *convertFromARMBuilder) propertiesByNameHandler(

v2/tools/generator/internal/armconversion/convert_to_arm_function_builder.go

+3-6
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,9 @@ func (builder *convertToARMBuilder) functionBodyStatements() ([]dst.Stmt, error)
135135
return nil, eris.Wrapf(err, "unable to generate property conversions for %s", builder.methodName)
136136
}
137137

138-
returnStatement := &dst.ReturnStmt{
139-
Results: []dst.Expr{
140-
dst.NewIdent(builder.resultIdent),
141-
astbuilder.Nil(),
142-
},
143-
}
138+
returnStatement := astbuilder.Returns(
139+
dst.NewIdent(builder.resultIdent),
140+
astbuilder.Nil())
144141

145142
return astbuilder.Statements(
146143
returnIfNil,

v2/tools/generator/internal/astmodel/conversion_function_builder.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -354,9 +354,9 @@ func IdentityConvertComplexArrayProperty(
354354

355355
emptySlice := astbuilder.SliceLiteral(destinationTypeExpr)
356356
assignEmpty := astbuilder.SimpleAssignment(params.GetDestination(), emptySlice)
357-
astbuilder.AddComments(
357+
astbuilder.AddComment(
358358
&assignEmpty.Decs.Start,
359-
[]string{"// Set property to empty map, as this resource is set to serialize all collections explicitly"})
359+
"// Set property to empty map, as this resource is set to serialize all collections explicitly")
360360
assignEmpty.Decs.Before = dst.NewLine
361361

362362
ifNil := astbuilder.IfNil(
@@ -471,20 +471,20 @@ func IdentityConvertComplexMapProperty(
471471
emptyMap := astbuilder.MakeMap(keyTypeExpr, valueTypeExpr)
472472

473473
assignEmpty := astbuilder.SimpleAssignment(params.GetDestination(), emptyMap)
474-
astbuilder.AddComments(
474+
astbuilder.AddComment(
475475
&assignEmpty.Decs.Start,
476-
[]string{"// Set property to empty map, as this resource is set to serialize all collections explicitly"})
476+
"// Set property to empty map, as this resource is set to serialize all collections explicitly")
477477
assignEmpty.Decs.Before = dst.NewLine
478478

479479
result = astbuilder.SimpleIfElse(
480480
astbuilder.NotNil(params.GetSource()),
481-
[]dst.Stmt{
481+
astbuilder.Statements(
482482
makeMapStatement,
483483
rangeStatement,
484-
},
485-
[]dst.Stmt{
484+
),
485+
astbuilder.Statements(
486486
assignEmpty,
487-
},
487+
),
488488
)
489489
} else {
490490
result = astbuilder.IfNotNil(
@@ -500,7 +500,7 @@ func IdentityConvertComplexMapProperty(
500500
result.Body.List = append(result.Body.List, params.AssignmentHandler(params.GetDestination(), dst.Clone(destination).(dst.Expr)))
501501
}
502502

503-
return []dst.Stmt{result}, nil
503+
return astbuilder.Statements(result), nil
504504
}
505505

506506
// IdentityAssignTypeName handles conversion for TypeName's that are the same

v2/tools/generator/internal/astmodel/file_definition.go

+10-12
Original file line numberDiff line numberDiff line change
@@ -227,21 +227,19 @@ func (file *FileDefinition) AsAst() (result *dst.File, err error) {
227227
&dst.FuncDecl{
228228
Type: &dst.FuncType{Params: &dst.FieldList{}},
229229
Name: dst.NewIdent("init"),
230-
Body: &dst.BlockStmt{
231-
List: []dst.Stmt{
232-
&dst.ExprStmt{
233-
Decs: dst.ExprStmtDecorations{
234-
NodeDecs: dst.NodeDecs{
235-
Before: dst.NewLine,
236-
},
237-
},
238-
X: &dst.CallExpr{
239-
Fun: dst.NewIdent("SchemeBuilder.Register"), // HACK
240-
Args: exprs,
230+
Body: astbuilder.StatementBlock(
231+
&dst.ExprStmt{
232+
Decs: dst.ExprStmtDecorations{
233+
NodeDecs: dst.NodeDecs{
234+
Before: dst.NewLine,
241235
},
242236
},
237+
X: &dst.CallExpr{
238+
Fun: dst.NewIdent("SchemeBuilder.Register"), // HACK
239+
Args: exprs,
240+
},
243241
},
244-
},
242+
),
245243
})
246244
}
247245

v2/tools/generator/internal/codegen/pipeline/report_resource_versions.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,9 @@ func (report *ResourceVersionsReport) createItem(
680680
}
681681

682682
// generateAPILink returns a link to the API definition for the given resource
683-
func (report *ResourceVersionsReport) generateAPILink(name astmodel.InternalTypeName) string {
683+
func (report *ResourceVersionsReport) generateAPILink(
684+
name astmodel.InternalTypeName,
685+
) string {
684686
crdKind := name.Name()
685687
linkTemplate := report.reportConfiguration.ResourceUrlTemplate
686688
pathTemplate := report.reportConfiguration.ResourcePathTemplate

v2/tools/generator/internal/codegen/pipeline/resource_registration_file.go

+2-10
Original file line numberDiff line numberDiff line change
@@ -370,11 +370,7 @@ func (r *ResourceRegistrationFile) createGetKnownStorageTypesFunc(
370370
resourceAppendStatements = append(resourceAppendStatements, appendStmt)
371371
}
372372

373-
returnStmt := &dst.ReturnStmt{
374-
Results: []dst.Expr{
375-
resultIdent,
376-
},
377-
}
373+
returnStmt := astbuilder.Returns(resultIdent)
378374

379375
body := astbuilder.Statements(resultVar, resourceAppendStatements, returnStmt)
380376

@@ -494,11 +490,7 @@ func (r *ResourceRegistrationFile) createCreateSchemeFunc(codeGenerationContext
494490
groupVersionAssignments = append(groupVersionAssignments, groupSchemeAssign)
495491
}
496492

497-
returnStmt := &dst.ReturnStmt{
498-
Results: []dst.Expr{
499-
dst.NewIdent(scheme),
500-
},
501-
}
493+
returnStmt := astbuilder.Returns(dst.NewIdent(scheme))
502494

503495
body := astbuilder.Statements(initSchemeVar, clientGoSchemeAssign, groupVersionAssignments, returnStmt)
504496

v2/tools/generator/internal/conversions/property_conversions.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -1337,14 +1337,14 @@ func assignArrayFromArray(
13371337
astbuilder.MakeSlice(destinationArrayExpr, astbuilder.CallFunc("len", actualReader)))
13381338

13391339
writeToElement := func(expr dst.Expr) []dst.Stmt {
1340-
return []dst.Stmt{
1340+
return astbuilder.Statements(
13411341
astbuilder.SimpleAssignment(
13421342
&dst.IndexExpr{
13431343
X: dst.NewIdent(tempId),
13441344
Index: dst.NewIdent(indexId),
13451345
},
13461346
expr),
1347-
}
1347+
)
13481348
}
13491349

13501350
avoidAliasing := astbuilder.ShortDeclaration(itemId, dst.NewIdent(itemId))
@@ -1499,14 +1499,14 @@ func assignMapFromMap(
14991499
astbuilder.CallFunc("len", actualReader)))
15001500

15011501
assignToItem := func(expr dst.Expr) []dst.Stmt {
1502-
return []dst.Stmt{
1502+
return astbuilder.Statements(
15031503
astbuilder.SimpleAssignment(
15041504
&dst.IndexExpr{
15051505
X: dst.NewIdent(tempId),
15061506
Index: dst.NewIdent(keyId),
15071507
},
15081508
expr),
1509-
}
1509+
)
15101510
}
15111511

15121512
avoidAliasing := astbuilder.ShortDeclaration(itemId, dst.NewIdent(itemId))
@@ -1649,9 +1649,8 @@ func assignUserAssignedIdentityMapFromArray(
16491649
uaiBuilder.AddField("Reference", dst.NewIdent(intermediateDestination))
16501650

16511651
writeToElement := func(expr dst.Expr) []dst.Stmt {
1652-
return []dst.Stmt{
1653-
astbuilder.ShortDeclaration(intermediateDestination, expr),
1654-
}
1652+
return astbuilder.Statements(
1653+
astbuilder.ShortDeclaration(intermediateDestination, expr))
16551654
}
16561655

16571656
// for key, _ := range source.UserAssignedIdentities {

v2/tools/generator/internal/conversions/writable_conversion_endpoint.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,10 @@ func NewWritableConversionEndpointWritingProperty(
4040
return &WritableConversionEndpoint{
4141
endpoint: endpoint,
4242
writer: func(destination dst.Expr, value dst.Expr) []dst.Stmt {
43-
return []dst.Stmt{
43+
return astbuilder.Statements(
4444
astbuilder.SimpleAssignment(
4545
astbuilder.Selector(destination, name),
46-
value),
47-
}
46+
value))
4847
},
4948
description: fmt.Sprintf("write to property %s", name),
5049
}
@@ -59,11 +58,10 @@ func NewWritableConversionEndpointWritingPropertyBagMember(
5958
return &WritableConversionEndpoint{
6059
endpoint: NewTypedConversionEndpoint(NewPropertyBagMemberType(itemType), itemName),
6160
writer: func(destination dst.Expr, value dst.Expr) []dst.Stmt {
62-
return []dst.Stmt{
61+
return astbuilder.Statements(
6362
astbuilder.SimpleAssignment(
6463
astbuilder.Selector(destination, itemName),
65-
value),
66-
}
64+
value))
6765
},
6866
description: fmt.Sprintf("write %s to property bag", itemName),
6967
}

v2/tools/generator/internal/functions/conditions_functions.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ func GetConditionsFunction(
3838
Name: methodName,
3939
ReceiverIdent: receiverIdent,
4040
ReceiverType: astbuilder.PointerTo(receiverExpr),
41-
Body: []dst.Stmt{
41+
Body: astbuilder.Statements(
4242
astbuilder.Returns(astbuilder.Selector(status, astmodel.ConditionsProperty)),
43-
},
43+
),
4444
}
4545

4646
fn.AddComments("returns the conditions of the resource")
@@ -79,9 +79,9 @@ func SetConditionsFunction(
7979
Name: methodName,
8080
ReceiverIdent: receiverIdent,
8181
ReceiverType: astbuilder.PointerTo(receiverExpr),
82-
Body: []dst.Stmt{
82+
Body: astbuilder.Statements(
8383
astbuilder.QualifiedAssignment(status, "Conditions", token.ASSIGN, dst.NewIdent(conditionsParameterName)),
84-
},
84+
),
8585
}
8686

8787
conditionsTypeExpr, err := astmodel.ConditionsType.AsTypeExpr(codeGenerationContext)

v2/tools/generator/internal/functions/kubernetes_admissions_validator.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -441,9 +441,9 @@ func (v *ValidatorBuilder) localValidationFuncBody(
441441
}
442442

443443
if len(elements) == 0 {
444-
return []dst.Stmt{
444+
return astbuilder.Statements(
445445
astbuilder.Returns(astbuilder.Nil()),
446-
}, nil
446+
), nil
447447
}
448448

449449
returnStmt := astbuilder.Returns(&dst.CompositeLit{
@@ -493,11 +493,9 @@ func (v *ValidatorBuilder) makeLocalValidationElement(
493493
},
494494
},
495495
Type: getValidationFuncType(kind, codeGenerationContext),
496-
Body: &dst.BlockStmt{
497-
List: []dst.Stmt{
498-
astbuilder.Returns(astbuilder.CallQualifiedFunc(receiverIdent, validation.name)),
499-
},
500-
},
496+
Body: astbuilder.StatementBlock(
497+
astbuilder.Returns(astbuilder.CallQualifiedFunc(receiverIdent, validation.name)),
498+
),
501499
}, nil
502500
}
503501
}

v2/tools/generator/internal/functions/one_of_json_marshal_function.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,7 @@ func (f *OneOfJSONMarshalFunction) AsFunc(
106106
statements = append(statements, ifStatement)
107107
}
108108

109-
finalReturnStatement := &dst.ReturnStmt{
110-
Results: []dst.Expr{astbuilder.Nil(), astbuilder.Nil()},
111-
}
109+
finalReturnStatement := astbuilder.Returns(astbuilder.Nil(), astbuilder.Nil())
112110

113111
fn := &astbuilder.FuncDetails{
114112
Name: f.Name(),

v2/tools/generator/internal/functions/one_of_json_unmarshal_function.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func (f *OneOfJSONUnmarshalFunction) AsFunc(
7777
discrimName := "discriminator"
7878
errName := "err"
7979

80-
statements := []dst.Stmt{
80+
statements := astbuilder.Statements(
8181
astbuilder.LocalVariableDeclaration(mapName, &dst.MapType{Key: dst.NewIdent("string"), Value: dst.NewIdent("interface{}")}, ""),
8282
astbuilder.ShortDeclaration(errName,
8383
astbuilder.CallQualifiedFunc(jsonPackage, "Unmarshal", dst.NewIdent(paramName), astbuilder.AddrOf(dst.NewIdent(mapName)))),
@@ -86,7 +86,7 @@ func (f *OneOfJSONUnmarshalFunction) AsFunc(
8686
X: dst.NewIdent(mapName),
8787
Index: astbuilder.StringLiteral(discrimJSONName),
8888
}),
89-
}
89+
)
9090

9191
// must order this for consistent output
9292
values := make([]string, 0, len(valuesMapping))

v2/tools/generator/internal/interfaces/kubernetes_resource_interface.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -627,13 +627,13 @@ func setStringAzureNameFunction(
627627
Name: methodName,
628628
ReceiverIdent: receiverIdent,
629629
ReceiverType: astbuilder.PointerTo(receiverTypeExpr),
630-
Body: []dst.Stmt{
630+
Body: astbuilder.Statements(
631631
astbuilder.QualifiedAssignment(
632632
dst.NewIdent(receiverIdent),
633633
astmodel.AzureNameProperty,
634634
token.ASSIGN,
635635
dst.NewIdent("azureName")),
636-
},
636+
),
637637
}
638638

639639
fn.AddComments("sets the Azure name of the resource")

v2/tools/generator/internal/testcases/json_serialization_test_case.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,9 @@ func (o *JSONSerializationTestCase) createGeneratorMethod(ctx *astmodel.CodeGene
487487
Ellipsis: true,
488488
}
489489

490-
oneOfStmts = []dst.Stmt{possibleGenerators, initGopters}
490+
oneOfStmts = astbuilder.Statements(
491+
possibleGenerators,
492+
initGopters)
491493
}
492494

493495
// If we have already cached our builder, return it immediately

0 commit comments

Comments
 (0)