langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
changeset 37854 a76a06106d02
parent 37848 3c8ff4204d2d
child 38619 27c0007bb28d
equal deleted inserted replaced
37853:b4ea8806ad1a 37854:a76a06106d02
   100 
   100 
   101 import com.sun.tools.javac.tree.JCTree.JCDirective;
   101 import com.sun.tools.javac.tree.JCTree.JCDirective;
   102 import com.sun.tools.javac.tree.JCTree.Tag;
   102 import com.sun.tools.javac.tree.JCTree.Tag;
   103 
   103 
   104 import static com.sun.tools.javac.code.Flags.ABSTRACT;
   104 import static com.sun.tools.javac.code.Flags.ABSTRACT;
       
   105 import static com.sun.tools.javac.code.Flags.ENUM;
   105 import static com.sun.tools.javac.code.Flags.PUBLIC;
   106 import static com.sun.tools.javac.code.Flags.PUBLIC;
   106 import static com.sun.tools.javac.tree.JCTree.Tag.MODULEDEF;
   107 import static com.sun.tools.javac.tree.JCTree.Tag.MODULEDEF;
   107 
   108 
   108 /**
   109 /**
   109  *  TODO: fill in
   110  *  TODO: fill in
   751         }
   752         }
   752 
   753 
   753         @Override
   754         @Override
   754         public void visitUses(JCUses tree) {
   755         public void visitUses(JCUses tree) {
   755             Type st = attr.attribType(tree.qualid, env, syms.objectType);
   756             Type st = attr.attribType(tree.qualid, env, syms.objectType);
   756             if (st.hasTag(CLASS)) {
   757             Symbol sym = TreeInfo.symbol(tree.qualid);
       
   758             if ((sym.flags() & ENUM) != 0) {
       
   759                 log.error(tree.qualid.pos(), Errors.ServiceDefinitionIsEnum(st.tsym));
       
   760             } else if (st.hasTag(CLASS)) {
   757                 ClassSymbol service = (ClassSymbol) st.tsym;
   761                 ClassSymbol service = (ClassSymbol) st.tsym;
   758                 Directive.UsesDirective d = new Directive.UsesDirective(service);
   762                 Directive.UsesDirective d = new Directive.UsesDirective(service);
   759                 if (!allUses.add(d)) {
   763                 if (!allUses.add(d)) {
   760                     log.error(tree.pos(), Errors.DuplicateUses(service));
   764                     log.error(tree.pos(), Errors.DuplicateUses(service));
   761                 }
   765                 }