Ah, thank you for the elaboration tetrates.
Now I am able to understand why you might think that.
If you look at the original text:
https://freepascal.org/docs-html/ref/refsu4.html#x26-250003.1.1The statement at the remark-part is a generic statement on how the compiler works. Immediately after that statement the original documentation elaborates on how that is done by the compiler by telling:
The first match in table (3.3) is used.
By using the table you are able to determine the order of precedence.
fwiw: I left out the actual table in my code because I have beter things to do other than copying a html-table into source-code
First the compiler tries to match shortint, then byte, then smallint, etc, and as shown in the table.
The number/value 64 first match is that of a shortint.
the number/value 128 does not fit in a shortint and the next candidate in the table is a byte.
the same applies the number/value 192.
The resulting answer/value turning into a 64 bit integer is the exception, which is also explained by the documentation (note that the 64-bit is mentioned in the documentation, but that might differ because the documentation can be different for other platforms and therefor not always return a 64-bit integer. e.g. that could also be a 32-bit integer on 32 bit cpu, or perhaps an even smaller integer depending on the platform).
Does the above explanation compute better for you ?
y.ivanov wrote:
@molly
+1 for your detailed explanation
Thank you for the +1 but I can't really take the credit for that as others have (more or less) stated the same.
The only thing I did is make it a bit more easier to understand by creating an example that is as simple as possible to understand and that matches the documentation.
In case the example and explanation was able to help the reader better understand of what is actually happening then I'm glad I was able to help out (a little).
Practise shows that it is far more difficult to be able to disprove what is written in the documentation , and then nag about that