diff -r 32eb45c44fc8 -r 567c159ce16f langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java --- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java Wed Jun 28 14:46:18 2017 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java Thu Jun 29 07:19:44 2017 -0700 @@ -630,6 +630,13 @@ } } + // Class literals look like field accesses of a field named class + // at the tree level + if (TreeInfo.name(tree) != names._class) { + log.error(tree.pos(), Errors.AnnotationValueMustBeClassLiteral); + return new Attribute.Error(syms.errType); + } + return new Attribute.Class(types, (((JCFieldAccess) tree).selected).type); }