@Override public CallGraph getCallGraph() { return vm.getDependencyInfo().getCallGraph(); }
public static void describeProblems(TeaVM vm, TeaVMToolLog log) { describeProblems(vm.getDependencyInfo().getCallGraph(), vm.getProblemProvider(), log); }
private String buildErrorMessage(TeaVM vm) { CallGraph cg = vm.getDependencyInfo().getCallGraph(); DefaultProblemTextConsumer consumer = new DefaultProblemTextConsumer(); StringBuilder sb = new StringBuilder(); for (Problem problem : vm.getProblemProvider().getProblems()) { consumer.clear(); problem.render(consumer); sb.append(consumer.getText()); TeaVMProblemRenderer.renderCallStack(cg, problem.getLocation(), sb); sb.append("\n"); } return sb.toString(); }
private List<ClassNode> modelToAst(ListableClassHolderSource classes) { AsyncMethodFinder asyncFinder = new AsyncMethodFinder(controller.getDependencyInfo().getCallGraph(), controller.getDiagnostics()); asyncFinder.find(classes); asyncMethods.addAll(asyncFinder.getAsyncMethods()); asyncFamilyMethods.addAll(asyncFinder.getAsyncFamilyMethods()); Decompiler decompiler = new Decompiler(classes, controller.getClassLoader(), controller.getCacheStatus(), asyncMethods, asyncFamilyMethods, controller.isFriendlyToDebugger(), false); decompiler.setRegularMethodCache(astCache); for (Map.Entry<MethodReference, Generator> entry : methodGenerators.entrySet()) { decompiler.addGenerator(entry.getKey(), entry.getValue()); } for (MethodReference injectedMethod : methodInjectors.keySet()) { decompiler.addMethodToSkip(injectedMethod); } List<String> classOrder = decompiler.getClassOrdering(classes.getClassNames()); List<ClassNode> classNodes = new ArrayList<>(); for (String className : classOrder) { ClassHolder cls = classes.get(className); for (MethodHolder method : cls.getMethods()) { preprocessNativeMethod(method, decompiler); if (controller.wasCancelled()) { break; } } classNodes.add(decompiler.decompile(cls)); } return classNodes; }
response.callGraph = tool.getDependencyInfo().getCallGraph(); response.problems.addAll(tool.getProblemProvider().getProblems()); response.severeProblems.addAll(tool.getProblemProvider().getSevereProblems());
.collect(Collectors.toSet()); return new InProcessBuildResult(tool.getDependencyInfo().getCallGraph(), tool.getProblemProvider(), tool.getClasses(), tool.getUsedResources(), generatedFiles);
private String buildErrorMessage(TeaVM vm) { CallGraph cg = vm.getDependencyInfo().getCallGraph(); DefaultProblemTextConsumer consumer = new DefaultProblemTextConsumer(); StringBuilder sb = new StringBuilder(); for (Problem problem : vm.getProblemProvider().getProblems()) { consumer.clear(); problem.render(consumer); sb.append(consumer.getText()); TeaVMProblemRenderer.renderCallStack(cg, problem.getLocation(), sb); sb.append("\n"); } return sb.toString(); }
public static void describeProblems(TeaVM vm, TeaVMToolLog log) { CallGraph cg = vm.getDependencyInfo().getCallGraph(); DefaultProblemTextConsumer consumer = new DefaultProblemTextConsumer(); for (Problem problem : vm.getProblemProvider().getProblems()) { consumer.clear(); problem.render(consumer); StringBuilder sb = new StringBuilder(); sb.append(consumer.getText()); renderCallStack(cg, problem.getLocation(), sb); String problemText = sb.toString(); switch (problem.getSeverity()) { case ERROR: log.error(problemText); break; case WARNING: log.warning(problemText); break; } } }
private List<ClassNode> modelToAst(ListableClassHolderSource classes) { AsyncMethodFinder asyncFinder = new AsyncMethodFinder(controller.getDependencyInfo().getCallGraph(), controller.getDiagnostics()); asyncFinder.find(classes); asyncMethods.addAll(asyncFinder.getAsyncMethods()); asyncFamilyMethods.addAll(asyncFinder.getAsyncFamilyMethods()); Decompiler decompiler = new Decompiler(classes, controller.getClassLoader(), asyncMethods, asyncFamilyMethods, controller.isFriendlyToDebugger()); decompiler.setRegularMethodCache(controller.isIncremental() ? astCache : null); for (Map.Entry<MethodReference, Generator> entry : methodGenerators.entrySet()) { decompiler.addGenerator(entry.getKey(), entry.getValue()); } for (MethodReference injectedMethod : methodInjectors.keySet()) { decompiler.addMethodToSkip(injectedMethod); } List<String> classOrder = decompiler.getClassOrdering(classes.getClassNames()); List<ClassNode> classNodes = new ArrayList<>(); for (String className : classOrder) { ClassHolder cls = classes.get(className); for (MethodHolder method : cls.getMethods()) { preprocessNativeMethod(method); if (controller.wasCancelled()) { break; } } classNodes.add(decompiler.decompile(cls)); } return classNodes; }