callee-noinlineThe callee is marked @noinline
Reported by --explain after a verdict.
mettle explain callee-noinline
An absolute veto. @noinline is not a hint, and no budget or heuristic overrides it.
Fix: remove @noinline where inlining is what you want. Where it is on the function deliberately (to keep a call boundary for profiling, or to shape code layout), this remark is the compiler agreeing with you.
The report simulates removing it and tells you what inlining would have unlocked, so the cost of the decorator is visible rather than assumed.
Related
- callee-no-bodyThe callee has no body to inline
- callee-denylistedThe callee is on the compiler's inline denylist
- too-many-parametersThe callee takes more than 16 parameters
- callee-parameter-namesThe callee's parameter names are unavailable
- callee-over-budgetThe callee's body is over the inline size budget
- callee-call-countThe callee makes more calls than the inline call-count budget allows
- callee-inline-asmThe callee contains inline assembly
- callee-has-loopThe callee's loop body is over the inline size budget