more precise error code
fix #972
fix #977
fix #975
probably-correct fix for #952
eeek
fix #962
proposed solution for #962
squash npe
squash npe
fix #942
temporary bandaid solution to #954
eek, fix from @lucaswerkmeister for #975
fix #954
fix #979
fix tests
fix #974, don't allow direct subtypes of ConstrainedAnnotation
fix #964
proposed solution to #893
more correct solution for #893