@@ -190,7 +190,7 @@ func actionDoc(s *Session, in string) (string, error) {
190
190
s .storeMainBody ()
191
191
defer s .restoreMainBody ()
192
192
193
- expr , err := s .evalExpr (in )
193
+ exprs , err := s .evalExpr (in )
194
194
if err != nil {
195
195
return "" , err
196
196
}
@@ -206,33 +206,35 @@ func actionDoc(s *Session, in string) (string, error) {
206
206
debugf ("typecheck error (ignored): %s" , err )
207
207
}
208
208
209
- // :doc patterns:
210
- // - "json" -> "encoding/json" (package name)
211
- // - "json.Encoder" -> "encoding/json", "Encoder" (package member)
212
- // - "json.NewEncoder(nil).Encode" -> "encoding/json", "Decode" (package type member)
213
209
var docObj types.Object
214
- if sel , ok := expr .(* ast.SelectorExpr ); ok {
215
- // package member, package type member
216
- docObj = s .TypeInfo .ObjectOf (sel .Sel )
217
- } else if t := s .TypeInfo .TypeOf (expr ); t != nil && t != types .Typ [types .Invalid ] {
218
- for {
219
- if pt , ok := t .(* types.Pointer ); ok {
220
- t = pt .Elem ()
221
- } else {
222
- break
210
+ for _ , expr := range exprs {
211
+ // :doc patterns:
212
+ // - "json" -> "encoding/json" (package name)
213
+ // - "json.Encoder" -> "encoding/json", "Encoder" (package member)
214
+ // - "json.NewEncoder(nil).Encode" -> "encoding/json", "Decode" (package type member)
215
+ if sel , ok := expr .(* ast.SelectorExpr ); ok {
216
+ // package member, package type member
217
+ docObj = s .TypeInfo .ObjectOf (sel .Sel )
218
+ } else if t := s .TypeInfo .TypeOf (expr ); t != nil && t != types .Typ [types .Invalid ] {
219
+ for {
220
+ if pt , ok := t .(* types.Pointer ); ok {
221
+ t = pt .Elem ()
222
+ } else {
223
+ break
224
+ }
223
225
}
226
+ switch t := t .(type ) {
227
+ case * types.Named :
228
+ docObj = t .Obj ()
229
+ case * types.Basic :
230
+ // builtin types
231
+ docObj = types .Universe .Lookup (t .Name ())
232
+ }
233
+ } else if ident , ok := expr .(* ast.Ident ); ok {
234
+ // package name
235
+ mainScope := s .TypeInfo .Scopes [s .mainFunc ().Type ]
236
+ _ , docObj = mainScope .LookupParent (ident .Name , ident .NamePos )
224
237
}
225
- switch t := t .(type ) {
226
- case * types.Named :
227
- docObj = t .Obj ()
228
- case * types.Basic :
229
- // builtin types
230
- docObj = types .Universe .Lookup (t .Name ())
231
- }
232
- } else if ident , ok := expr .(* ast.Ident ); ok {
233
- // package name
234
- mainScope := s .TypeInfo .Scopes [s .mainFunc ().Type ]
235
- _ , docObj = mainScope .LookupParent (ident .Name , ident .NamePos )
236
238
}
237
239
238
240
if docObj == nil {
0 commit comments