--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Thu May 05 16:36:00 2016 -0700
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Fri May 06 16:06:27 2016 -0400
@@ -102,6 +102,7 @@
import com.sun.tools.javac.tree.JCTree.Tag;
import static com.sun.tools.javac.code.Flags.ABSTRACT;
+import static com.sun.tools.javac.code.Flags.ENUM;
import static com.sun.tools.javac.code.Flags.PUBLIC;
import static com.sun.tools.javac.tree.JCTree.Tag.MODULEDEF;
@@ -753,7 +754,10 @@
@Override
public void visitUses(JCUses tree) {
Type st = attr.attribType(tree.qualid, env, syms.objectType);
- if (st.hasTag(CLASS)) {
+ Symbol sym = TreeInfo.symbol(tree.qualid);
+ if ((sym.flags() & ENUM) != 0) {
+ log.error(tree.qualid.pos(), Errors.ServiceDefinitionIsEnum(st.tsym));
+ } else if (st.hasTag(CLASS)) {
ClassSymbol service = (ClassSymbol) st.tsym;
Directive.UsesDirective d = new Directive.UsesDirective(service);
if (!allUses.add(d)) {