The unused variables are not declared by null-checking, but by inline functions. They are used by the compiler / debugger to know where an inlined function starts (I don't know the exact details though). The JVM knows they are unused, so they don't have any impact during runtime.