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");
}