private boolean checkRootPackageParent(JCCompilationUnit topLevel, PackageSymbol rootPackage, PackageSymbol parentPackage) { if (parentPackage == null) { return true; } if (!context.options.isNoRootDirectories() || context.options.isBundle()) { return true; } if (context.isRootPackage(parentPackage)) { report(topLevel.getPackageName(), JSweetProblem.ENCLOSED_ROOT_PACKAGES, rootPackage.getQualifiedName().toString(), parentPackage.getQualifiedName().toString()); return false; } for (Symbol s : parentPackage.getEnclosedElements()) { if (s instanceof ClassSymbol) { if (Util.isSourceElement(s)) { report(topLevel.getPackageName(), JSweetProblem.CLASS_OUT_OF_ROOT_PACKAGE_SCOPE, s.getQualifiedName().toString(), rootPackage.getQualifiedName().toString()); return false; } } } return checkRootPackageParent(topLevel, rootPackage, (PackageSymbol) parentPackage.owner); }