Implementation of the function(x=parent.frame()) ...
pattern for the
diff*
methods since the normal pattern does not
work with S4 methods. Works by looking through the call stack and
identifying what call likely initiated the S4 dispatch.
par_frame()
an environment
The function is not exported and intended only for use as the default value
for the frame
argument for the diff*
methods.
Matching is done purely by looking for the last repeated call followed
by .local(target, current, ...)
that is not a call to eval
.
This pattern seems to match the correct call most of the time.
Since methods can be renamed by the user we make no attempt to verify method
names. This method could potentially be tricked if you implement custom
diff*
methods that somehow
issue two identical sequential calls before calling callNextMethod
.
Failure in this case means the wrong frame
will be returned.