New syntax for function decoration with macros

I have noticed, that the Base functions now use a new syntax, where the decorator macros such as @inline or @propagate_inbounds appear as the first line of the body of the function.

  • What version of Julia was this syntax added? (Want to know if I use it and then want to specify required version ranges).
  • As far as I understand, it was introduced to decorate the do blocks. On the other hand, it looks like the whole Base was rewritten to use the new syntax. It does not seem the old syntax is going to get deprecated. So, why rewrite all the functions?

it was added in 1.8 . Base uses this form extensively because it simplifies some bootstrapping issues, but for package code they should be considered equivalent and which to use is entirely aesthetic preference.

Great, thanks!