diff --git a/core/src/main/java/org/teavm/dependency/DependencyAnalyzer.java b/core/src/main/java/org/teavm/dependency/DependencyAnalyzer.java index 49d6f6a78..5a8d5a089 100644 --- a/core/src/main/java/org/teavm/dependency/DependencyAnalyzer.java +++ b/core/src/main/java/org/teavm/dependency/DependencyAnalyzer.java @@ -436,6 +436,7 @@ public abstract class DependencyAnalyzer implements DependencyInfo { MethodDependency dep = getMethodDependency(className, descriptor); if (!dep.activated) { + reachedMethods.add(dep.getReference()); dep.activated = true; if (!dep.isMissing()) { for (DependencyListener listener : listeners) { diff --git a/core/src/main/java/org/teavm/model/util/MissingItemsProcessor.java b/core/src/main/java/org/teavm/model/util/MissingItemsProcessor.java index 4fb15b049..25721bfd4 100644 --- a/core/src/main/java/org/teavm/model/util/MissingItemsProcessor.java +++ b/core/src/main/java/org/teavm/model/util/MissingItemsProcessor.java @@ -194,11 +194,7 @@ public class MissingItemsProcessor { return true; } - private InstructionVisitor instructionProcessor = new InstructionVisitor() { - @Override - public void visit(NullCheckInstruction insn) { - } - + private InstructionVisitor instructionProcessor = new AbstractInstructionVisitor() { @Override public void visit(InitClassInstruction insn) { checkClass(insn.getLocation(), insn.getClassName()); @@ -218,30 +214,6 @@ public class MissingItemsProcessor { } } - @Override - public void visit(InvokeDynamicInstruction insn) { - } - - @Override - public void visit(PutElementInstruction insn) { - } - - @Override - public void visit(GetElementInstruction insn) { - } - - @Override - public void visit(UnwrapArrayInstruction insn) { - } - - @Override - public void visit(CloneArrayInstruction insn) { - } - - @Override - public void visit(ArrayLengthInstruction insn) { - } - @Override public void visit(PutFieldInstruction insn) { checkField(insn.getLocation(), insn.getField()); @@ -267,94 +239,13 @@ public class MissingItemsProcessor { checkClass(insn.getLocation(), insn.getItemType()); } - @Override - public void visit(RaiseInstruction insn) { - } - - @Override - public void visit(ExitInstruction insn) { - } - - @Override - public void visit(SwitchInstruction insn) { - } - - @Override - public void visit(JumpInstruction insn) { - } - - @Override - public void visit(BinaryBranchingInstruction insn) { - } - - @Override - public void visit(BranchingInstruction insn) { - } - - @Override - public void visit(CastIntegerInstruction insn) { - } - - @Override - public void visit(CastNumberInstruction insn) { - } - @Override public void visit(CastInstruction insn) { checkClass(insn.getLocation(), insn.getTargetType()); } - - @Override - public void visit(AssignInstruction insn) { - } - - @Override - public void visit(NegateInstruction insn) { - } - - @Override - public void visit(BinaryInstruction insn) { - } - - @Override - public void visit(StringConstantInstruction insn) { - } - - @Override - public void visit(DoubleConstantInstruction insn) { - } - - @Override - public void visit(FloatConstantInstruction insn) { - } - - @Override - public void visit(LongConstantInstruction insn) { - } - - @Override - public void visit(IntegerConstantInstruction insn) { - } - - @Override - public void visit(NullConstantInstruction insn) { - } - @Override public void visit(ClassConstantInstruction insn) { checkClass(insn.getLocation(), insn.getConstant()); } - - @Override - public void visit(EmptyInstruction insn) { - } - - @Override - public void visit(MonitorEnterInstruction insn) { - } - - @Override - public void visit(MonitorExitInstruction insn) { - } }; } diff --git a/tools/cli/pom.xml b/tools/cli/pom.xml index a07051509..4a0b7cea8 100644 --- a/tools/cli/pom.xml +++ b/tools/cli/pom.xml @@ -57,6 +57,33 @@ ${project.version} runtime + + + commons-io + commons-io + true + + + org.ow2.asm + asm-commons + true + + + org.ow2.asm + asm-util + true + + + com.carrotsearch + hppc + 0.7.3 + true + + + org.mozilla + rhino + true + diff --git a/tools/cli/src/main/java/org/teavm/cli/TeaVMRunner.java b/tools/cli/src/main/java/org/teavm/cli/TeaVMRunner.java index 94492c705..29d9e6857 100644 --- a/tools/cli/src/main/java/org/teavm/cli/TeaVMRunner.java +++ b/tools/cli/src/main/java/org/teavm/cli/TeaVMRunner.java @@ -46,6 +46,7 @@ import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.PosixParser; import org.teavm.backend.wasm.render.WasmBinaryVersion; +import org.teavm.tooling.TeaVMProblemRenderer; import org.teavm.tooling.TeaVMTargetType; import org.teavm.tooling.TeaVMTool; import org.teavm.tooling.TeaVMToolException; @@ -535,6 +536,8 @@ public final class TeaVMRunner { phaseStartTime = System.currentTimeMillis(); tool.generate(); reportPhaseComplete(); + TeaVMProblemRenderer.describeProblems(tool.getDependencyInfo().getCallGraph(), tool.getProblemProvider(), log); + log.flush(); System.out.println("Build complete for " + ((System.currentTimeMillis() - startTime) / 1000.0) + " seconds"); }