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 ------------------------------------------------------------------------------ _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user