When an AFTER CALL rule assigns $! the return value on the stack at the trigger injection point should be replaced with the assigned value. Since the value is stored in an Object array this may require casting or unboxing. The trigger code generator schedules planting of a cast/unbox operation but it passes the return type of the trigger method. Thsi is appropriate for an AT EXIT rule where the tyep of $! is the type of the trigger method. However, for an AFTER CALL rule the correct type is the type of the method which has just been called. So, where this type differs from the trigger method type the generated trigger code will suffer from a verify error.
This was not caught during testing because the test suite includes a test for assignment of $! in an AT EXIT rule but not in an AFTER CALL rule. A bugfix test shoudl be added to the test suite.