fix inner type generate error (#377)

* fix point type bug

* optimized

* fix inner type error
This commit is contained in:
kingxt
2021-01-13 11:54:53 +08:00
committed by GitHub
parent cf3a1020b0
commit 9cd2015661
8 changed files with 92 additions and 54 deletions

View File

@@ -104,9 +104,11 @@ func (p parser) fillTypes() error {
}
}
var types []spec.Type
for _, item := range p.spec.Types {
switch v := (item).(type) {
case spec.DefineStruct:
var members []spec.Member
for _, member := range v.Members {
switch v := member.Type.(type) {
case spec.DefineStruct:
@@ -117,11 +119,16 @@ func (p parser) fillTypes() error {
member.Type = *tp
}
}
members = append(members, member)
}
v.Members = members
types = append(types, v)
default:
return errors.New(fmt.Sprintf("unknown type %+v", v))
}
}
p.spec.Types = types
return nil
}
@@ -243,6 +250,16 @@ func (p parser) fillService() error {
if astRoute.Route.Reply != nil {
route.ResponseType = p.astTypeToSpec(astRoute.Route.Reply.Name)
}
if astRoute.AtDoc != nil {
var properties = make(map[string]string, 0)
for _, kv := range astRoute.AtDoc.Kv {
properties[kv.Key.Text()] = kv.Value.Text()
}
route.AtDoc.Properties = properties
if astRoute.AtDoc.LineDoc != nil {
route.AtDoc.Text = astRoute.AtDoc.LineDoc.Text()
}
}
err := p.fillRouteType(&route)
if err != nil {