Hi Kyle,
After taking a look at the related code, I don’t believe that this change is intended. It is more likely an oversight from CLs 35133078 and 35245469. The pair of macros FUNCTION_NON_NULL_RETURN_START/END annotate a function as never returning nullptr, so the change made by those CLs is actually correct, but I believe the code
if (!Src) { return nullptr; }
should have been moved to the version of CastChecked() that takes ECastCheckedType::Type CheckType as a parameter, since nullptr is indeed a valid return for it.
I am filing an internal bug report now about this issue. I’ll get back to you with a tracking number once I have one, so you’ll be able to make sure that it eventually gets marked as “fixed” and not “by design”.
Best regards,
Vitor