[Gambas-user] Wrong error message
Doriano Blengino
doriano.blengino at ...1909...
Mon May 3 20:01:39 CEST 2010
Benoît Minisini ha scritto:
>> Hi!
>> There's minor bug.
>> Overflow with concatenate operator causes wrong error message.
>> You can reproduce the bug with this code:
>>
>> Dim ii As Integer
>> Dim jj As Integer
>>
>> For ii = 9 To 0 Step -1
>> jj&= ii<--- Wanted Integer got String instead.
>> Next
>>
>> Gambas 3 rev 2879 @ Ubuntu 9.10 64bit
>>
>> Jussi
>>
>>
> I'd like to know what you expected exactly from that code, and what you think
> the error message should be!
>
> For information, the previous code is equivalent to:
>
> Dim ii As Integer
> Dim jj As Integer
>
> For ii = 9 To 0 Step -1
> jj = CInt(CStr(jj)& CStr(ii))
> Next
>
> The error message comes from CInt(). When its argument cannot be converted to
> an integer, it just says that there is a type mismatch (you forgot to tell
> that) and that its argument is not an integer.
>
I think that Jussi is right. Even the form you are using shows that the
"&" operator is used with an integer to the left, and so, the "&" is
meaningless. This is even more true with the C-style operator "&="
which, by definition, must not cast the operand to the left.
In other words, I would say that automatic type conversion must be
performed only when reading values, and never when writing.
Regards,
Doriano
More information about the User
mailing list