* parse.y (assign_in_cond): also should warn assignment to dvar in
conditional. [ruby-dev:39363] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
eb5692ab32
commit
bda0b012a8
@ -1,3 +1,8 @@
|
||||
Wed Sep 23 17:08:30 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* parse.y (assign_in_cond): also should warn assignment to dvar in
|
||||
conditional. [ruby-dev:39363]
|
||||
|
||||
Wed Sep 23 13:14:21 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* string.c (rb_str_upto): keep first width. [ruby-dev:39361]
|
||||
|
1
parse.y
1
parse.y
@ -8463,6 +8463,7 @@ assign_in_cond(struct parser_params *parser, NODE *node)
|
||||
|
||||
case NODE_LASGN:
|
||||
case NODE_DASGN:
|
||||
case NODE_DASGN_CURR:
|
||||
case NODE_GASGN:
|
||||
case NODE_IASGN:
|
||||
break;
|
||||
|
@ -281,13 +281,33 @@ class TestRubyOptions < Test::Unit::TestCase
|
||||
/invalid name for global variable - -# \(NameError\)/)
|
||||
end
|
||||
|
||||
def test_assignment_in_conditional
|
||||
t = Tempfile.new(["test_ruby_test_rubyoption", ".rb"])
|
||||
t.puts "if a = 1"
|
||||
t.puts "end"
|
||||
t.puts "0.times do"
|
||||
t.puts " if b = 2"
|
||||
t.puts " end"
|
||||
t.puts "end"
|
||||
t.close
|
||||
err = ["#{t.path}:1: warning: found = in conditional, should be ==",
|
||||
"#{t.path}:4: warning: found = in conditional, should be =="]
|
||||
err = /\A(#{Regexp.quote(t.path)}):1(: warning: found = in conditional, should be ==)\n\1:4\2\Z/
|
||||
bug2136 = '[ruby-dev:39363]'
|
||||
assert_in_out_err(["-w", t.path], "", [], err, bug2136)
|
||||
assert_in_out_err(["-wr", t.path, "-e", ""], "", [], err, bug2136)
|
||||
ensure
|
||||
t.close(true) if t
|
||||
end
|
||||
|
||||
def test_indentation_check
|
||||
t = Tempfile.new(["test_ruby_test_rubyoption", ".rb"])
|
||||
t.puts "begin"
|
||||
t.puts " end"
|
||||
t.close
|
||||
assert_in_out_err(["-w", t.path], "", [], /:2: warning: mismatched indentations at 'end' with 'begin' at 1/)
|
||||
assert_in_out_err(["-wr", t.path, "-e", ""], "", [], /:2: warning: mismatched indentations at 'end' with 'begin' at 1/)
|
||||
err = ["#{t.path}:2: warning: mismatched indentations at 'end' with 'begin' at 1"]
|
||||
assert_in_out_err(["-w", t.path], "", [], err)
|
||||
assert_in_out_err(["-wr", t.path, "-e", ""], "", [], err)
|
||||
ensure
|
||||
t.close(true) if t
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user