-
-
Notifications
You must be signed in to change notification settings - Fork 925
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Truffle] Kernel#send should be more transparent #3013
Comments
Maybe we just need to hide the frame when we construct backtraces, and when we find the caller frame for other purposes? |
I modified |
* See #3013. In this case ignoring all builtins might make sense.
Is this resolved for the issues you have? I'd rather not leave issues speculatively open in case something might still be a problem for people in the future. If you don't have a test case then it's not actionable and I'll close until we have one. |
Yeah it seems OK for now as |
I replaced most uses of A nice way to fix this would be to pass the caller frame if the target method needs it |
… RubyCallStack version. * Ignores #send as it should for these cases. * See #3013.
The two remaining usages would work just fine with the RubyCallStack version as well, but in these cases ignoring send does not change anything. |
Yes, we need to do this for another reason as well - |
Quite a few shared specs use
send
and expect it to be the same as if it was an actual literal call.For instance,
spec/ruby/core/kernel/__callee___spec.rb
,spec/ruby/core/module/private_spec.rb
and many others.In MRI,
send
seems to not even appear in the backtrace:I am not sure sure how we can handle this, but ideally we would not create any additional frame between a
send(:bla,1,2)
andbla(1,2)
.If we do not want to simulate that behavior, how could we reliably get the caller frame? Ignore frames which have
Kernel#send
for METHOD?The text was updated successfully, but these errors were encountered: