Do I understand it right? Do you think there is a better (correct) way to handle this in the code (as I am definitely not an expert)?
In case there is a question why 3-dimention array: I think in my case it is a very convenient way to handle a set of data which represents transitions of some system between several (5) states. So that the first dimension is the initial state, 2nd is the final state and the 3rd is some transition parameter.Transitions occur randomly and repeatedly with different unpredictable probabilities, which means the numbers of transitions for different pairs of states may differ by an order(s) of magnitude.
It is a
note, essentially the lowest verbosity of a message available. And it simply means that the function
MeanAndStdDev is declared with the
inline directive (as
TRon mentioned), but it's simply not inlined (in this case due to the open array parameter). There is nothing you can do here except disabling the message.
In addition to what
dbannon wrote you can also use the following if you want it to be more targeted:
{$push}
{$warn 6058 off}
procedure Test;
var
mean, stddev: Extended;
begin
MeanAndStdDev([2.5, 53.4, 694], mean, stddev);
end;
{$pop}
Please note that the disabling of the note needs to surround the whole function/method.
What handles the "inlined" label (or whatever it is) to the compiler?
It is called a modifier. The compiler handles it...
.. or at least it did. The note in the wiki probably means that work is (currently?) done on the compiler (with regards to the inline modifier) in order to fix the issues as reported. That could mean that for safety reasons it is turned off/ignored by default when certain conditions are met (that causes issues). But the last paragraph is pure speculation on my part.
Users never knew if their routines were inlined or not. That's why we added the note so that users know that the compiler decided not to inline a routine due to one reason or the other (a very common one is inside a unit if the body of the function to be inlined has not yet been parsed, thus can't be inlined obviously). Also inlining does not support open array parameters (or
inherited) yet.