nocallback
This reverts commit c5f789050daab25aad6770790987e2b7c0395936 and reapplies 7aea3ea8c3b33c9bb338d5d6c0e4832be1d09ac3 with additional test changes.
Differential Revision: https://reviews.llvm.org/D104316
Differential Revision: https://reviews.llvm.org/D102954