mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* compile.c (rb_parse_in_eval): returns true in true eval, not in
main. [ruby-dev:38382] * parse.y (program): inherits dvars in eval or main. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
589ec2beb5
commit
f91b0dc811
3 changed files with 12 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
Sun May 17 14:23:08 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* compile.c (rb_parse_in_eval): returns true in true eval, not in
|
||||
main. [ruby-dev:38382]
|
||||
|
||||
* parse.y (program): inherits dvars in eval or main.
|
||||
|
||||
Sun May 17 14:02:56 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* ruby.c (ruby_script): sets also VM toplevel program name.
|
||||
|
|
|
@ -5416,7 +5416,7 @@ rb_local_defined(ID id)
|
|||
int
|
||||
rb_parse_in_eval(void)
|
||||
{
|
||||
return GET_THREAD()->parse_in_eval != 0;
|
||||
return GET_THREAD()->parse_in_eval > 0;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
7
parse.y
7
parse.y
|
@ -760,14 +760,15 @@ static void token_info_pop(struct parser_params*, const char *token);
|
|||
program : {
|
||||
lex_state = EXPR_BEG;
|
||||
/*%%%*/
|
||||
local_push(compile_for_eval);
|
||||
$<num>$ = compile_for_eval || rb_parse_in_main();
|
||||
local_push($<num>$);
|
||||
/*%
|
||||
%*/
|
||||
}
|
||||
compstmt
|
||||
{
|
||||
/*%%%*/
|
||||
if ($2 && !compile_for_eval) {
|
||||
if ($2 && !$<num>1) {
|
||||
/* last expression should not be void */
|
||||
if (nd_type($2) != NODE_BLOCK) void_expr($2);
|
||||
else {
|
||||
|
@ -4993,7 +4994,7 @@ yycompile0(VALUE arg, int tracing)
|
|||
NODE *tree;
|
||||
struct parser_params *parser = (struct parser_params *)arg;
|
||||
|
||||
if ((!compile_for_eval || rb_parse_in_main()) && rb_safe_level() == 0) {
|
||||
if (!compile_for_eval && rb_safe_level() == 0) {
|
||||
ruby_debug_lines = debug_lines(ruby_sourcefile);
|
||||
if (ruby_debug_lines && ruby_sourceline > 0) {
|
||||
VALUE str = STR_NEW0();
|
||||
|
|
Loading…
Reference in a new issue