Shurley shome mishtake, hic! The block clearly has 2 arguments and is called with one, and the print block prints "N arguments" for anything other than 1, so how does the error message come out as you report??
Eliot (phone)
On Apr 30, 2015, at 3:25 AM, karl ramberg <
[hidden email]> wrote:
> #(1 2) do:[:a :b| b] "do it"
>
> Error: 'This block accepts 2 argument, but was called with 1 arguments.'
>
> Should not the numArgs and the numArgsForInvocation switch place here ?
>
> BlockClosure>>numArgsError: numArgsForInvocation
>
> | printNArgs |
> printNArgs := [:n| n printString, ' argument', (n = 1 ifTrue: [''] ifFalse:['s'])].
> self error:
> 'This block accepts ', (printNArgs value: numArgs),
> ', but was called with ', (printNArgs value: numArgsForInvocation), '.'
>