summaryrefslogtreecommitdiff
path: root/iseq.h
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2021-05-21 11:01:06 -0700
committerJeremy Evans <code@jeremyevans.net>2021-07-29 13:51:03 -0700
commit64ac984129a7a4645efe5ac57c168ef880b479b2 (patch)
tree3d5aa171e3e63e39b9b8d4ab4425d01894880f02 /iseq.h
parent6998d758248d778fa95b008c78d05473e48b8428 (diff)
downloadruby-64ac984129a7a4645efe5ac57c168ef880b479b2.tar.gz
Make RubyVM::AbstractSyntaxTree.of raise for method/proc created in eval
This changes Thread::Location::Backtrace#absolute_path to return nil for methods/procs defined in eval. If the realpath of an iseq is nil, that indicates it was defined in eval, in which case you cannot use RubyVM::AbstractSyntaxTree.of. Fixes [Bug #16983] Co-authored-by: Koichi Sasada <ko1@atdot.net>
Diffstat (limited to 'iseq.h')
-rw-r--r--iseq.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/iseq.h b/iseq.h
index 87e498227b..b792e13703 100644
--- a/iseq.h
+++ b/iseq.h
@@ -192,6 +192,7 @@ VALUE rb_iseqw_new(const rb_iseq_t *iseq);
const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw);
VALUE rb_iseq_absolute_path(const rb_iseq_t *iseq); /* obsolete */
+int rb_iseq_from_eval_p(const rb_iseq_t *iseq);
VALUE rb_iseq_label(const rb_iseq_t *iseq);
VALUE rb_iseq_base_label(const rb_iseq_t *iseq);
VALUE rb_iseq_first_lineno(const rb_iseq_t *iseq);