public static boolean validate(TreeLogger logger, CompilerContext compilerContext) {
Event validateEvent = SpeedTracerLogger.start(CompilerEventType.VALIDATE);
try {
ModuleDef module = compilerContext.getModule();
PrecompileTaskOptions jjsOptions = compilerContext.getOptions();
CompilationState compilationState = module.getCompilationState(logger, compilerContext);
if (jjsOptions.isStrict() && compilationState.hasErrors()) {
abortDueToStrictMode(logger);
}
String[] declEntryPts = module.getEntryPointTypeNames();
String[] additionalRootTypes = null;
if (declEntryPts.length == 0) {
// No declared entry points, just validate all visible classes.
Collection<CompilationUnit> compilationUnits = compilationState.getCompilationUnits();
additionalRootTypes = new String[compilationUnits.size()];
int i = 0;
for (CompilationUnit unit : compilationUnits) {
additionalRootTypes[i++] = unit.getTypeName();
}