Skip to content

Commit 5ac806c

Browse files
lvan100lianghuan
authored andcommitted
refactor(main): remove default values
1 parent c53972f commit 5ac806c

File tree

10 files changed

+203
-324
lines changed

10 files changed

+203
-324
lines changed

gen/generator/golang/type.go

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,6 @@ type TypeField struct {
327327
Type string
328328
TypeKind TypeKind
329329
Name string
330-
Default *string
331330
Tag string
332331
Validate *string
333332
Binding *Binding
@@ -493,12 +492,6 @@ func convertType(ctx Context, t tidl.Type) (Type, error) {
493492
return Type{}, err
494493
}
495494

496-
// Parse default value if specified
497-
defVal, err := parseDefault(ctx, typeName, f.Default)
498-
if err != nil {
499-
return Type{}, err
500-
}
501-
502495
// Parse binding information from annotations
503496
binding, err := parseBinding(f.Annotations)
504497
if err != nil {
@@ -522,7 +515,6 @@ func convertType(ctx Context, t tidl.Type) (Type, error) {
522515
Type: typeName,
523516
TypeKind: typeKind,
524517
Name: fieldName,
525-
Default: defVal,
526518
Tag: fieldTag,
527519
Validate: validate,
528520
Binding: binding,
@@ -647,46 +639,6 @@ func getTypeKind(ctx Context, typeName string) (TypeKind, error) {
647639
}
648640
}
649641

650-
// parseDefault parses the default value of a field based on its type
651-
func parseDefault(ctx Context, typeName string, v *string) (*string, error) {
652-
if v == nil {
653-
return nil, nil
654-
}
655-
656-
baseType := strings.TrimPrefix(typeName, "*")
657-
switch baseType {
658-
case "bool":
659-
return v, nil
660-
case "int", "int8", "int16", "int32", "int64":
661-
s := fmt.Sprintf("%s(%s)", baseType, *v)
662-
return &s, nil
663-
case "uint", "uint8", "uint16", "uint32", "uint64":
664-
s := fmt.Sprintf("%s(%s)", baseType, *v)
665-
return &s, nil
666-
case "float32", "float64":
667-
s := fmt.Sprintf("%s(%s)", baseType, *v)
668-
return &s, nil
669-
case "string":
670-
return v, nil
671-
default:
672-
if parts := strings.Split(*v, "."); len(parts) == 2 {
673-
// Handle enum values like EnumName.VALUE
674-
asString := strings.HasSuffix(typeName, "AsString")
675-
typeNameTrimmed := strings.TrimSuffix(typeName, "AsString")
676-
if _, ok := tidl.GetEnum(ctx.files, typeNameTrimmed); !ok {
677-
return v, nil // Treat as a regular string
678-
}
679-
s := parts[0] + "_" + parts[1]
680-
if asString {
681-
s = fmt.Sprintf("%sAsString(%s)", typeNameTrimmed, s)
682-
}
683-
return &s, nil
684-
} else { // Treat as a regular string
685-
return v, nil
686-
}
687-
}
688-
}
689-
690642
// parseBinding parses a field's binding information from annotations.
691643
// It supports "header", "path", or "query" annotations.
692644
func parseBinding(arr []tidl.Annotation) (*Binding, error) {

gen/testdata/manager/idl/manager.idl

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ enum Department {
4545

4646
// Generic response wrapper for all RPCs
4747
type Response<T> {
48-
ErrCode errno = ErrCode.ERR_OK (validate="OneOfErrCode($)")
48+
ErrCode errno (validate="OneOfErrCode($)")
4949
string errmsg
5050
T data
5151
}
5252

5353
// Pagination request and response
5454
type PageReq {
55-
int page = DEFAULT_PAGE (json="page", validate="$ >= 1", query="page")
56-
int size = DEFAULT_PAGE_SIZE (validate="$ >= 1 && $ <= MAX_PAGE_SIZE", query="size")
55+
int page (json="page", validate="$ >= 1", query="page")
56+
int size (validate="$ >= 1 && $ <= MAX_PAGE_SIZE", query="size")
5757
}
5858

5959
type PageResp<T> {
@@ -89,10 +89,10 @@ type Manager {
8989
string id
9090
string name (validate="len($) > 0 && len($) <= 64")
9191
int? age (validate="$ >= MIN_AGE && $ <= MAX_AGE")
92-
bool vip = DEFAULT_VIP
93-
float salary = 0.0 (validate="$ >= SALARY_MIN && $ <= SALARY_MAX")
94-
string role = DEFAULT_ROLE
95-
ManagerLevel level = ManagerLevel.JUNIOR (enum_as_string)
92+
bool vip
93+
float salary (validate="$ >= SALARY_MIN && $ <= SALARY_MAX")
94+
string role
95+
ManagerLevel level (enum_as_string)
9696
DepartmentInfo deptInfo
9797
ContactInfo contact
9898
}
@@ -108,10 +108,10 @@ type ManagerReq {
108108
type CreateManagerReq {
109109
string name (validate="len($) > 0 && len($) <= 64")
110110
int? age (validate="$ >= MIN_AGE && $ <= MAX_AGE")
111-
bool vip = DEFAULT_VIP
112-
float salary = 0.0 (validate="$ >= SALARY_MIN && $ <= SALARY_MAX")
113-
string role = DEFAULT_ROLE
114-
ManagerLevel level = ManagerLevel.JUNIOR
111+
bool vip
112+
float salary (validate="$ >= SALARY_MIN && $ <= SALARY_MAX")
113+
string role
114+
ManagerLevel level
115115
DepartmentInfo deptInfo
116116
ContactInfo contact
117117
}

lib/tidl/TParser.g4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ embed_type_field
7878
: user_type
7979
;
8080

81-
// Common field: type + name + optional default value + optional annotations
81+
// Common field: type + name + optional annotations
8282
common_type_field
83-
: common_field_type IDENTIFIER (EQUAL const_value)? type_annotations?
83+
: common_field_type IDENTIFIER type_annotations?
8484
;
8585

8686
// Field type options

lib/tidl/format.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ func dumpType(t Type) string {
271271
}
272272

273273
// dumpTypeField formats a single field in a type declaration,
274-
// including its type, name, default value, annotations, and comments.
274+
// including its type, name, annotations, and comments.
275275
func dumpTypeField(f TypeField, sb *strings.Builder) {
276276
dumpAboveComments(f.Comments.Above, sb, indent)
277277

@@ -282,12 +282,6 @@ func dumpTypeField(f TypeField, sb *strings.Builder) {
282282
sb.WriteString(" ")
283283
sb.WriteString(f.Name)
284284

285-
// Default value
286-
if f.Default != nil {
287-
sb.WriteString(" = ")
288-
sb.WriteString(*f.Default)
289-
}
290-
291285
// Annotations
292286
if len(f.Annotations) > 0 {
293287
sb.WriteString(" (")

lib/tidl/parser.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -398,12 +398,6 @@ func (l *ParseTreeListener) parseCommonTypeField(f ICommon_type_fieldContext, ty
398398
typeField.FieldType = l.parseCommonFieldType(f.Common_field_type(), t)
399399
typeField.Name = f.IDENTIFIER().GetText()
400400

401-
// Default value
402-
if f.Const_value() != nil {
403-
s := f.Const_value().GetText()
404-
typeField.Default = &s
405-
}
406-
407401
// Annotations
408402
if f.Type_annotations() != nil {
409403
for _, aCtx := range f.Type_annotations().AllAnnotation() {

0 commit comments

Comments
 (0)