langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
changeset 37854 a76a06106d02
parent 37848 3c8ff4204d2d
child 38619 27c0007bb28d
--- 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)) {