private static TreePath adjustPathForModuleName(TreePath path) { TreePath tp = path; while (tp != null && (tp.getLeaf().getKind() == Kind.IDENTIFIER || tp.getLeaf().getKind() == Kind.MEMBER_SELECT)) { Tree parent = tp.getParentPath().getLeaf(); if (parent.getKind() == Kind.MODULE && ((ModuleTree)parent).getName() == tp.getLeaf()) { return tp.getParentPath(); } if (parent.getKind() == Kind.REQUIRES && ((RequiresTree)parent).getModuleName() == tp.getLeaf() || parent.getKind() == Kind.EXPORTS && ((ExportsTree)parent).getModuleNames() != null && ((ExportsTree)parent).getModuleNames().contains(tp.getLeaf()) || parent.getKind() == Kind.OPENS && ((OpensTree)parent).getModuleNames() != null && ((OpensTree)parent).getModuleNames().contains(tp.getLeaf())) { return tp; } tp = tp.getParentPath(); } return path; }
@Override public Tree visitOpens(OpensTree tree, Void p) { OpensTree n = make.Opens(tree.getPackageName(), tree.getModuleNames()); model.setType(n, model.getType(tree)); comments.copyComments(tree, n); model.setPos(n, model.getPos(tree)); return n; }
@Override public Void visitOpens(OpensTree tree, EnumSet<UseTypes> d) { tl.moveToOffset(sourcePositions.getStartPosition(info.getCompilationUnit(), tree)); Token t = firstIdentifierToken("opens"); //NOI18N if (t != null) { contextKeywords.add(t); } scan(tree.getPackageName(), d); tl.moveToOffset(sourcePositions.getEndPosition(info.getCompilationUnit(), tree.getPackageName())); t = firstIdentifierToken("to"); //NOI18N if (t != null) { contextKeywords.add(t); } return scan(tree.getModuleNames(), d); }
@Override public List<? extends TypeMirror> visitOpens(OpensTree node, Object p) { return null; }
@Override public Mirror visitOpens(OpensTree node, EvaluationContext p) { Assert.error(node, "noModules"); return super.visitOpens(node, p); }
public void visitOpens(OpensTree node, @SuppressWarnings("unused") TreeVisitor<?, ?> __) { mv.visitOpen(qualifiedString(node.getPackageName()), 0, toArray(node.getModuleNames())); }