equal
deleted
inserted
replaced
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 } |