I investigated further and it seems... It both is and isn't. Apparently those checks are only done after annotation processing has finished. Somehow the compiler allows malformed code to reach the annotation processor. Since I had my break point in the annotation processor I never noticed the errors that would come afterwards.