mutlitconcat: fix non-folding adjacent consts
authorDavid Mitchell <davem@iabyn.com>
Mon, 25 Dec 2017 10:40:58 +0000 (10:40 +0000)
committerDavid Mitchell <davem@iabyn.com>
Mon, 25 Dec 2017 11:21:07 +0000 (11:21 +0000)
commitf08f2d0393c6f2ccdfc17ed791cd9956d95eaa4e
tree495b03a6fdf1cd69db62ad5589535c599654aaea
parent06c214d653ac955e506914a26f8f9ab8917a6f41
mutlitconcat: fix non-folding adjacent consts

RT ##132646

v5.27.6-120-gbcc30fd changed multiconcat so that adjacent constants
weren't folded, so that ($overloaded . "a" . "b") is invoked as
    $overloaded->concat("a")->concat("b")
rather than
    $overloaded->concat("ab")

It did this by 'demoting' every second adjacent const as a real arg rather
than adding it to the const string. However, that could leave a
multiconcat op with more than the maximum allowed args.

So include demotion candidates as part of the arg count.
op.c
t/opbasic/concat.t