File tree 1 file changed +14
-4
lines changed
1 file changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -364,10 +364,15 @@ func (fm provider) DownFlows() ([]reflect.Type, []reflect.Type) {
364
364
}
365
365
t := v .Type ()
366
366
if t .Kind () == reflect .Func {
367
- if fm .group == finalGroup {
367
+ switch fm .group {
368
+ case finalGroup :
368
369
return typesIn (t ), nil
370
+ default :
371
+ return effectiveOutputs (t )
369
372
}
370
- return effectiveOutputs (t )
373
+ }
374
+ if fm .group == invokeGroup && t .Kind () == reflect .Ptr && t .Elem ().Kind () == reflect .Func {
375
+ return nil , typesIn (t .Elem ())
371
376
}
372
377
return nil , []reflect.Type {t }
373
378
}
@@ -443,10 +448,15 @@ func (fm provider) UpFlows() ([]reflect.Type, []reflect.Type) {
443
448
}
444
449
t := v .Type ()
445
450
if t .Kind () == reflect .Func {
446
- if fm .group == finalGroup {
451
+ switch fm .group {
452
+ case finalGroup :
447
453
return nil , typesOut (t )
454
+ default :
455
+ return effectiveReturns (t )
448
456
}
449
- return effectiveReturns (t )
457
+ }
458
+ if fm .group == invokeGroup && t .Kind () == reflect .Ptr && t .Elem ().Kind () == reflect .Func {
459
+ return typesOut (t .Elem ()), nil
450
460
}
451
461
return nil , []reflect.Type {t }
452
462
}
You can’t perform that action at this time.
0 commit comments