Crystal clear intro to the challenges of inlining with good debug info https://docs.google.com/presentation/d/1Wcblp3jpfeKwA0Y4FOmj63PW52M_qmNqlQkNaLj0P5o/edit#slide=id.p (even though Go lets you inspect the stack!)
miniblog.
Related Posts
Go has a wonderful, accessible discussion of how it does inlining today, the downsides, and the plans for 1.22:
On the nuances of Rust inlining, crate boundaries, and what gets inlined by default: https://matklad.github.io/2021/07/09/inline-in-rust.html
It's well known that certain compiler optimisations matter way more than others (e.g. inlining).
Is there a similar principle for linters? I find red squiggles under unused/undefined variables the single most useful check.