Skip to content

Commit 4e1ddd6

Browse files
authored
Merge pull request #72 from jtxyz/interpret_unordered_messagebody_emptystatement
UnorderedInterpret: handle EmptyStatement in MessageBody
2 parents a1aa0a0 + 51b28b6 commit 4e1ddd6

File tree

5 files changed

+28
-23
lines changed

5 files changed

+28
-23
lines changed

interpret/unordered/enum.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func interpretEnumBody(src []parser.Visitee) (
6969
case *parser.EmptyStatement:
7070
emptyStatements = append(emptyStatements, t)
7171
default:
72-
return nil, fmt.Errorf("invalid EnumBody type %v of %v", t, s)
72+
return nil, fmt.Errorf("invalid EnumBody type %T of %v", t, t)
7373
}
7474
}
7575
return &EnumBody{

interpret/unordered/extend.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func interpretExtendBody(src []parser.Visitee) (
6161
case *parser.EmptyStatement:
6262
emptyStatements = append(emptyStatements, t)
6363
default:
64-
return nil, fmt.Errorf("invalid ExtendBody type %v of %v", t, s)
64+
return nil, fmt.Errorf("invalid ExtendBody type %T of %v", t, t)
6565
}
6666
}
6767
return &ExtendBody{

interpret/unordered/message.go

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ import (
99

1010
// MessageBody is unordered in nature, but each slice field preserves the original order.
1111
type MessageBody struct {
12-
Fields []*parser.Field
13-
Enums []*Enum
14-
Messages []*Message
15-
Options []*parser.Option
16-
Oneofs []*parser.Oneof
17-
Maps []*parser.MapField
18-
Groups []*parser.GroupField
19-
Reserves []*parser.Reserved
20-
Extends []*parser.Extend
12+
Fields []*parser.Field
13+
Enums []*Enum
14+
Messages []*Message
15+
Options []*parser.Option
16+
Oneofs []*parser.Oneof
17+
Maps []*parser.MapField
18+
Groups []*parser.GroupField
19+
Reserves []*parser.Reserved
20+
Extends []*parser.Extend
21+
EmptyStatements []*parser.EmptyStatement
2122
}
2223

2324
// Message consists of a message name and a message body.
@@ -68,6 +69,7 @@ func interpretMessageBody(src []parser.Visitee) (
6869
var groups []*parser.GroupField
6970
var reserves []*parser.Reserved
7071
var extends []*parser.Extend
72+
var emptyStatements []*parser.EmptyStatement
7173
for _, s := range src {
7274
switch t := s.(type) {
7375
case *parser.Field:
@@ -96,19 +98,22 @@ func interpretMessageBody(src []parser.Visitee) (
9698
reserves = append(reserves, t)
9799
case *parser.Extend:
98100
extends = append(extends, t)
101+
case *parser.EmptyStatement:
102+
emptyStatements = append(emptyStatements, t)
99103
default:
100-
return nil, fmt.Errorf("invalid MessageBody type %v of %v", t, s)
104+
return nil, fmt.Errorf("invalid MessageBody type %T of %v", t, t)
101105
}
102106
}
103107
return &MessageBody{
104-
Fields: fields,
105-
Enums: enums,
106-
Messages: messages,
107-
Options: options,
108-
Oneofs: oneofs,
109-
Maps: maps,
110-
Groups: groups,
111-
Reserves: reserves,
112-
Extends: extends,
108+
Fields: fields,
109+
Enums: enums,
110+
Messages: messages,
111+
Options: options,
112+
Oneofs: oneofs,
113+
Maps: maps,
114+
Groups: groups,
115+
Reserves: reserves,
116+
Extends: extends,
117+
EmptyStatements: emptyStatements,
113118
}, nil
114119
}

interpret/unordered/proto.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func interpretProtoBody(src []parser.Visitee) (
8787
case *parser.EmptyStatement:
8888
emptyStatements = append(emptyStatements, t)
8989
default:
90-
return nil, fmt.Errorf("invalid ProtoBody type %v of %v", t, s)
90+
return nil, fmt.Errorf("invalid ProtoBody type %T of %v", t, t)
9191
}
9292
}
9393
return &ProtoBody{

interpret/unordered/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func interpretServiceBody(src []parser.Visitee) (
6161
case *parser.RPC:
6262
rpcs = append(rpcs, t)
6363
default:
64-
return nil, fmt.Errorf("invalid ServiceBody type %v of %v", t, s)
64+
return nil, fmt.Errorf("invalid ServiceBody type %T of %v", t, t)
6565
}
6666
}
6767
return &ServiceBody{

0 commit comments

Comments
 (0)