src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PathAndPackageVerifier.java

Print this page
rev 2819 : imported patch my-classpath-deps-00

*** 39,65 **** import com.sun.tools.javac.tree.JCTree.JCFieldAccess; import com.sun.tools.javac.tree.JCTree.JCIdent; import com.sun.tools.javac.util.DefinedBy; import com.sun.tools.javac.util.DefinedBy.Api; import com.sun.tools.javac.util.Name; public class PathAndPackageVerifier implements TaskListener { // Stores the set of compilation units whose source file path does not // match the package declaration. Set<CompilationUnitTree> misplacedCompilationUnits = new HashSet<>(); @Override @DefinedBy(Api.COMPILER_TREE) - public void started(TaskEvent e) { - } - - @Override - @DefinedBy(Api.COMPILER_TREE) public void finished(TaskEvent e) { ! if (e.getKind() != TaskEvent.Kind.ANALYZE) ! return; CompilationUnitTree cu = e.getCompilationUnit(); if (cu == null) return; --- 39,61 ---- import com.sun.tools.javac.tree.JCTree.JCFieldAccess; import com.sun.tools.javac.tree.JCTree.JCIdent; import com.sun.tools.javac.util.DefinedBy; import com.sun.tools.javac.util.DefinedBy.Api; import com.sun.tools.javac.util.Name; + import com.sun.tools.sjavac.Log; public class PathAndPackageVerifier implements TaskListener { // Stores the set of compilation units whose source file path does not // match the package declaration. Set<CompilationUnitTree> misplacedCompilationUnits = new HashSet<>(); @Override @DefinedBy(Api.COMPILER_TREE) public void finished(TaskEvent e) { ! if (e.getKind() == TaskEvent.Kind.ANALYZE) { ! CompilationUnitTree cu = e.getCompilationUnit(); if (cu == null) return;
*** 74,83 **** --- 70,93 ---- Path dir = Paths.get(jfo.toUri()).normalize().getParent(); if (!checkPathAndPackage(dir, pkg)) misplacedCompilationUnits.add(cu); } + if (e.getKind() == TaskEvent.Kind.COMPILATION) { + + for (CompilationUnitTree cu : misplacedCompilationUnits) { + Log.error("Misplaced compilation unit."); + Log.error(" Directory: " + Paths.get(cu.getSourceFile().toUri()).getParent()); + Log.error(" Package: " + cu.getPackageName()); + } + } + } + + public boolean errorsDiscovered() { + return misplacedCompilationUnits.size() > 0; + } + /* Returns true if dir matches pkgName. * * Examples: * (a/b/c, a.b.c) gives true * (i/j/k, i.x.k) gives false
*** 92,105 **** return false; } return !pkgIter.hasNext(); /*&& !pathIter.hasNext() See JDK-8059598 */ } - public Set<CompilationUnitTree> getMisplacedCompilationUnits() { - return misplacedCompilationUnits; - } - /* Iterates over the names of the parents of the given path: * Example: dir1/dir2/dir3 results in dir3 -> dir2 -> dir1 */ private static class ParentIterator implements Iterator<String> { Path next; --- 102,111 ----