31 Commits

Author SHA1 Message Date
mimaki 22464fe5a0 mruby-1.2.0 2015-11-17 18:02:30 +09:00
Zachary Scott 87564dc98f Make travis happy
We have do this because mruby's test files are found using MRUBY_ROOT, like this:
    mrbs = Dir.glob("#{MRUBY_ROOT}/test/t/*.rb")
2015-09-02 09:56:27 -04:00
cremno 5cd877be7f fix masgn nosplat array rhs bug
The rest lhs variable has to be an empty array if rhs is an array with
less elements than pre + post lhs variables. The codegen generated
OP_ARRAY with an invalid length (such as 127 for *a, b = []) because rn
was negative.
2015-05-31 13:30:49 +02:00
Yukihiro "Matz" Matsumoto 9ef4bbb10d update test/t/syntax.rb to success on CRuby 2015-05-31 18:29:26 +09:00
cremno ba3a0c22a5 add multiple assignment with rest tests 2015-05-29 12:17:13 +02:00
cremno 2aa59393ba fix splat without assignment; fix #2781
The parser generates NODE_NIL for tSTAR without argument in masgns. The
codegen didn't handle that.
2015-05-07 16:58:43 +02:00
Kouhei Sutou 4b4ddd5a28 Fix a bug that no expression case doesn't return valid value
Here is a script that reproduces this problem:

     x = case
         when true; 1
         end
     p x # => main # 1 is expected
2015-02-24 20:53:12 +09:00
Kouhei Sutou 584d6de3c2 Fix a bug that if and no return value case can't return true clause value
Here is a script that reproduce this problem:

     x = if true
           1
         else
           case 2
           when 3
           end
           4
         end
     p x # => nil # 1 is expected
2015-02-24 00:16:41 +09:00
Kouhei Sutou 5ec676aa37 Fix splat and multiple assignments
Case1: From variable

Code:

    a = [1, 2, 3, 4, 5]
    b, c, *d = a

    p [a, b, c, d]

Before:

    [[1, 2, 3, 4, 5], 1, 2, []]

After:

    [[1, 2, 3, 4, 5], 1, 2, [3, 4, 5]]

Ruby:

    [[1, 2, 3, 4, 5], 1, 2, [3, 4, 5]]

Case2: From variables

Code:

    a = [1, 2, 3]
    b = [4, 5, 6, 7]
    c, d, *e, f, g = *a, *b

    p [a, b, c, d, e, f, g]

Before:

    [[1, 2, 3], [4, 5, 6, 7], 1, 2, [], 6, 7]

After:

    [[1, 2, 3], [4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7]

Ruby:

    [[1, 2, 3], [4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7]

Case 3: "for"

Code:

    a = [1, 2, 3, 4, 5, 6, 7]
    for b, c, *d, e, f in [a] do
      p [a, b, c, d, e, f]
    end

Before:

    [[1, 2, 3, 4, 5, 6, 7], 1, 2, [], nil, nil]

After:

    [[1, 2, 3, 4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7]

Ruby:

    [[1, 2, 3, 4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7]
2014-12-23 21:16:01 +09:00
Yukihiro "Matz" Matsumoto bcf8ad87e6 add multiple assignment decomposition test 2014-11-27 16:21:48 +09:00
Nobuyoshi Nakada 8b13efc26d count skipped line numbers 2014-05-03 08:42:32 +09:00
Nobuyoshi Nakada cf3b880df6 skip to the next line and reset column after =end 2014-05-03 08:42:31 +09:00
Nobuyoshi Nakada 854ae564a3 fix embedded documents
tabs are allowed after `=begin` and `=end`.
raise `SyntaxError` if no =end is found.
2014-05-03 08:42:31 +09:00
Carson McDonald 9ac817ae78 Add tests for multiline comment parsing 2014-04-28 14:22:55 -04:00
cremno 9dd28c96bb tests should not depend on mruby-proc-ext 2014-04-21 08:09:52 +02:00
Nobuyoshi Nakada ac6747a9c5 fix optional block arguments in rhs
define optional block arguments as argument variables in the rhs
default expressions, as same as mere assignment expressions.

Import ruby/ruby@01740f0c27
2014-04-21 14:55:06 +09:00
Nobuyoshi Nakada 367118b1b6 fix optional arguments in rhs
define optional arguments as argument variables in the rhs default
expressions, as same as mere assignment expressions.

Import ruby/ruby@01740f0c27
2014-04-21 10:48:00 +09:00
Nobuyoshi Nakada 9eaddfab44 allow method definition in cmdarg
save cmdarg_stack and isolate command argument state from outer scope
to allow method definition in cmdarg

import from ruby/ruby@04bb9d6b75
2014-04-21 07:00:57 +09:00
Nobuyoshi Nakada b16697982e Allow parenthesed do-block in cmdarg
Flush cmdarg flags inside left-paren in a command argument, to allow
parenthesed `do-block` as an argument without arguments parentheses.
`CMDARG_PUSH(0)` for tLPAREN_ARG is before `CMDARG_PUSH(1)` in
`command_args` due to look-ahead.
2014-04-19 18:46:07 +09:00
take_cheeze 2239350348 Add test for backquote.
* Implement code generation of NODE_DXSTR.
* Fix NOVAL NODE_XSTR.
2014-03-28 13:02:52 +09:00
cremno 3900fcecd7 __FILE__ test: add support for \ as separator 2014-03-05 17:38:02 +01:00
take_cheeze d31f824b5a add test for __LINE__ and __FILE__ 2014-02-26 21:11:33 +09:00
Tomoyuki Sahara 37475f4577 tests for "case" expression. 2014-01-06 10:10:37 +09:00
Carson McDonald 8bff2a8f9d Test case statement with splat 2014-01-04 13:58:09 -05:00
h2so5 e80c0c90cd add some tests for case statements 2013-12-20 15:29:23 +09:00
Jun Hiroe bd48b383df I fix order of actual and expect test value in syntax.rb. 2013-08-02 23:15:04 +09:00
Carson McDonald 2eb2cdf0de Add a couple splat tests 2013-07-28 13:35:00 -04:00
Daniel Bovensiepen c5d116f9c2 Improve Syntax Tests 2013-06-14 23:57:09 +08:00
skandhas a100352595 add test for 'Abbreviated variable assignment as returns' 2012-11-30 22:31:35 +08:00
Yukihiro Matsumoto 308b41c12b add test for 8cf42709 2012-11-02 08:02:21 +09:00
Yukihiro Matsumoto 46b098e079 minor correction in test/t/syntax.rb 2012-06-12 12:16:18 +09:00