Kernel location is set differently when kernel is defined using a lambda vs a functor. Diagnostics are emitted at point of invocation when lambdas are used but emitted at functor declaration when functors are used. It should be generated at point of invocation for functor as well.