It's a bug in version 1.22.
The correct behaviour is that the member access operator is precedenced to the Len operator.
So "Len(anything).ToString()" has to be compiled as "Len((anything).ToString())".
But in version 1.22 somthing got wrong - so "Len (anything).ToString()" is compiled as "(Len(anything)).ToString()".
So the compiler thinks you want first to get the length of it and then access to the ToString method of the returned integer (which is impossible because there's no ToString method in type Int).
The correct compiler behaviour would be first to compile the access to the ToString method and then compile Len to get the length of the returned string.
To solve this I'm currently still using V1.20, but that's not a good solution.
I don't know when this gets fixed, but I hope very soon.
The correct behaviour is that the member access operator is precedenced to the Len operator.
So "Len(anything).ToString()" has to be compiled as "Len((anything).ToString())".
But in version 1.22 somthing got wrong - so "Len (anything).ToString()" is compiled as "(Len(anything)).ToString()".
So the compiler thinks you want first to get the length of it and then access to the ToString method of the returned integer (which is impossible because there's no ToString method in type Int).
The correct compiler behaviour would be first to compile the access to the ToString method and then compile Len to get the length of the returned string.
To solve this I'm currently still using V1.20, but that's not a good solution.
I don't know when this gets fixed, but I hope very soon.