In example/main.go, if delete line aspect.AddAdvice(&aop.Advice{Ordering: aop.Around, Method: "Around", PointcutRefID: "pointcut_1"}), panic will rise. The reason is that in aop.go, realFunc has argumentsargs ...interface{} while in retValues = realFunc(inputs) inputs has type []reflect.value. So args will always have length 1.
In example/main.go, if delete line
aspect.AddAdvice(&aop.Advice{Ordering: aop.Around, Method: "Around", PointcutRefID: "pointcut_1"})
, panic will rise. The reason is that in aop.go, realFunc has argumentsargs ...interface{}
while inretValues = realFunc(inputs)
inputs has type[]reflect.value
. So args will always have length 1.