in com.microsoft.java.lsif.core/src/com/microsoft/java/lsif/core/internal/indexer/ASTUtil.java [34:66]
public static CompilationUnit createAST(final ITypeRoot input, final IProgressMonitor progressMonitor) {
if (progressMonitor != null && progressMonitor.isCanceled()) {
return null;
}
final CompilationUnit root[] = new CompilationUnit[1];
try {
if (progressMonitor != null && progressMonitor.isCanceled()) {
return null;
}
if (input instanceof ICompilationUnit) {
ICompilationUnit cu = (ICompilationUnit) input;
if (cu.isWorkingCopy()) {
root[0] = cu.reconcile(IASTSharedValues.SHARED_AST_LEVEL, true, null, progressMonitor);
}
}
if (root[0] == null) {
final ASTParser parser = newASTParser();
parser.setSource(input);
parser.setResolveBindings(true);
root[0] = (CompilationUnit) parser.createAST(progressMonitor);
}
// mark as unmodifiable
ASTNodes.setFlagsToAST(root[0], ASTNode.PROTECT);
} catch (OperationCanceledException ex) {
return null;
} catch (Throwable e) {
JavaLanguageServerPlugin.logException("Error in JDT Core during AST creation", e);
return null;
}
return root[0];
}