Skip to content

Commit c0aa252

Browse files
authored
fix resolver for enum alias (#263)
1 parent 598dda3 commit c0aa252

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

resolver/fqdn.go

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ func (f *OneofField) FQDN() string {
3232
}
3333

3434
func (e *Enum) FQDN() string {
35+
if e == nil {
36+
return ""
37+
}
3538
if e.Message != nil {
3639
return fmt.Sprintf("%s.%s", e.Message.FQDN(), e.Name)
3740
}

resolver/resolver.go

+15-19
Original file line numberDiff line numberDiff line change
@@ -2889,26 +2889,17 @@ func (r *Resolver) resolveEnumAliases(ctx *context, aliasNames []string, builder
28892889
}
28902890
var ret []*Enum
28912891
for _, aliasName := range aliasNames {
2892-
if strings.Contains(aliasName, ".") {
2893-
pkg, err := r.lookupPackage(aliasName)
2894-
if err != nil {
2895-
ctx.addError(
2896-
ErrWithLocation(
2897-
err.Error(),
2898-
builder.WithOption().Location(),
2899-
),
2900-
)
2901-
return nil
2902-
}
2903-
name := r.trimPackage(pkg, aliasName)
2904-
if alias := r.resolveEnum(ctx, pkg, name, source.NewEnumBuilder(ctx.fileName(), ctx.messageName(), name)); alias != nil {
2905-
ret = append(ret, alias)
2906-
}
2907-
} else {
2908-
if alias := r.resolveEnum(ctx, ctx.file().Package, aliasName, source.NewEnumBuilder(ctx.fileName(), ctx.messageName(), aliasName)); alias != nil {
2909-
ret = append(ret, alias)
2910-
}
2892+
enum, err := r.resolveEnumByName(ctx, aliasName, builder)
2893+
if err != nil {
2894+
ctx.addError(
2895+
ErrWithLocation(
2896+
err.Error(),
2897+
builder.WithOption().Location(),
2898+
),
2899+
)
2900+
continue
29112901
}
2902+
ret = append(ret, enum)
29122903
}
29132904
return ret
29142905
}
@@ -2962,6 +2953,11 @@ func (r *Resolver) resolveEnumValueAlias(ctx *context, enumValueName, enumValueA
29622953
EnumAlias: alias,
29632954
Aliases: []*EnumValue{value},
29642955
})
2956+
} else if value := alias.Value(ctx.file().PackageName() + "." + enumValueAlias); value != nil {
2957+
enumValueAliases = append(enumValueAliases, &EnumValueAlias{
2958+
EnumAlias: alias,
2959+
Aliases: []*EnumValue{value},
2960+
})
29652961
}
29662962
aliasFQDNs = append(aliasFQDNs, fmt.Sprintf("%q", alias.FQDN()))
29672963
}

0 commit comments

Comments
 (0)