aboutsummaryrefslogtreecommitdiffstats
path: root/lib/irb/context.rb
diff options
context:
space:
mode:
authortomoya ishida <tomoyapenguin@gmail.com>2022-10-18 14:44:04 +0900
committergit <svn-admin@ruby-lang.org>2022-10-18 05:44:07 +0000
commita09f764ce52838a363b006ea434287eca431dbae (patch)
tree8da2c8147cb80ea8caf9484bdf7a1d5915e30b06 /lib/irb/context.rb
parent344e6c915f41d99df024c7e90403baca0d5213a5 (diff)
downloadruby-a09f764ce52838a363b006ea434287eca431dbae.tar.gz
[ruby/irb] Always use local variables in current context to parse code (https://github.com/ruby/irb/pull/397)
* Use local_variables for colorize, code_block_open check, nesting_level and assignment_expression check * Check if expression is an assignment BEFORE evaluating it. evaluate might define new localvars and change result of assignment_expression? * Add local_variables dependent code test * pend local variable dependent test on truffleruby code_block_open is not working on truffleruby * Always pass context to RubyLex#lex * Rename local_variable_assign_code generator method name * Add assignment expression truncate test * Add Context#local_variables and make generate_local_variables_assign_code more simple * Update lib/irb/input-method.rb Co-authored-by: Stan Lo <stan001212@gmail.com> * Add a comment why assignment expression check should be done before evaluate https://github.com/ruby/irb/commit/c8b3877281 Co-authored-by: Stan Lo <stan001212@gmail.com> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Diffstat (limited to 'lib/irb/context.rb')
-rw-r--r--lib/irb/context.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/irb/context.rb b/lib/irb/context.rb
index 5e07f5dfb0..d238da9350 100644
--- a/lib/irb/context.rb
+++ b/lib/irb/context.rb
@@ -518,5 +518,9 @@ module IRB
end
alias __to_s__ to_s
alias to_s inspect
+
+ def local_variables # :nodoc:
+ workspace.binding.local_variables
+ end
end
end