summaryrefslogtreecommitdiffstats
path: root/jack/src
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2014-11-06 18:15:49 +0100
committerBenoit Lamarche <benoitlamarche@google.com>2014-11-06 18:15:49 +0100
commit839d58e245b08c409073c67a5cc52345c677ac42 (patch)
tree417b89e7ada8ad57ae8474f650acbb08b3d6b5f8 /jack/src
parent75d8f5b6bb19cb5d85a1c9f5dffc5541481007f4 (diff)
downloadtoolchain_jack-839d58e245b08c409073c67a5cc52345c677ac42.zip
toolchain_jack-839d58e245b08c409073c67a5cc52345c677ac42.tar.gz
toolchain_jack-839d58e245b08c409073c67a5cc52345c677ac42.tar.bz2
Handle lookup exceptions in Tracer
Change-Id: I977d508b77162f5874af30929ce248d3650f262a
Diffstat (limited to 'jack/src')
-rw-r--r--jack/src/com/android/jack/analysis/tracer/Tracer.java10
-rw-r--r--jack/src/com/android/jack/transformations/enums/SwitchEnumSupport.java1
2 files changed, 9 insertions, 2 deletions
diff --git a/jack/src/com/android/jack/analysis/tracer/Tracer.java b/jack/src/com/android/jack/analysis/tracer/Tracer.java
index 777e13d..bf93886 100644
--- a/jack/src/com/android/jack/analysis/tracer/Tracer.java
+++ b/jack/src/com/android/jack/analysis/tracer/Tracer.java
@@ -58,6 +58,7 @@ import com.android.jack.ir.ast.JTypeStringLiteral;
import com.android.jack.ir.ast.JVariable;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.ir.ast.marker.ThrownExceptionMarker;
+import com.android.jack.lookup.JMethodLookupException;
import com.android.sched.item.Description;
import com.android.sched.marker.LocalMarkerManager;
import com.android.sched.util.log.LoggerFactory;
@@ -175,8 +176,13 @@ public class Tracer extends JVisitor {
if (t instanceof JDefinedEnum) {
// The values() method is needed for the switches on enum support
- JMethod values = definedClass.getMethod("values", definedClass.getArray());
- trace(values);
+ try {
+ JMethod values = definedClass.getMethod("values", definedClass.getArray());
+ trace(values);
+ } catch (JMethodLookupException e) {
+ // A valid enum must have a values() method
+ throw new AssertionError(e);
+ }
}
}
diff --git a/jack/src/com/android/jack/transformations/enums/SwitchEnumSupport.java b/jack/src/com/android/jack/transformations/enums/SwitchEnumSupport.java
index 917d2b8..ee8fcbf 100644
--- a/jack/src/com/android/jack/transformations/enums/SwitchEnumSupport.java
+++ b/jack/src/com/android/jack/transformations/enums/SwitchEnumSupport.java
@@ -294,6 +294,7 @@ public class SwitchEnumSupport implements RunnableSchedulable<JMethod> {
try {
valuesMethod = enumType.getMethod("values", enumArrayType);
} catch (JMethodLookupException e1) {
+ // A valid enum must have a values() method
throw new AssertionError(e1);
}