Merge "Consider declared member descriptors as direct ref" into nyc-dev
diff --git a/dx/src/com/android/dx/Version.java b/dx/src/com/android/dx/Version.java
index 1e15d55..0e77941 100644
--- a/dx/src/com/android/dx/Version.java
+++ b/dx/src/com/android/dx/Version.java
@@ -21,5 +21,5 @@
*/
public class Version {
/** {@code non-null;} version string */
- public static final String VERSION = "1.11";
+ public static final String VERSION = "1.12";
}
diff --git a/dx/src/com/android/dx/command/dexer/Main.java b/dx/src/com/android/dx/command/dexer/Main.java
index e7c63b8..e42eb54 100644
--- a/dx/src/com/android/dx/command/dexer/Main.java
+++ b/dx/src/com/android/dx/command/dexer/Main.java
@@ -753,6 +753,9 @@
try {
new DirectClassFileConsumer(name, bytes, null).call(
new ClassParserTask(name, bytes).call());
+ } catch (ParseException ex) {
+ // handled in FileBytesConsumer
+ throw ex;
} catch(Exception ex) {
throw new RuntimeException("Exception parsing classes", ex);
}
@@ -1658,6 +1661,14 @@
DxConsole.err.println("\nEXCEPTION FROM SIMULATION:");
DxConsole.err.println(ex.getMessage() + "\n");
DxConsole.err.println(((SimException) ex).getContext());
+ } else if (ex instanceof ParseException) {
+ DxConsole.err.println("\nPARSE ERROR:");
+ ParseException parseException = (ParseException) ex;
+ if (args.debug) {
+ parseException.printStackTrace(DxConsole.err);
+ } else {
+ parseException.printContext(DxConsole.err);
+ }
} else {
DxConsole.err.println("\nUNEXPECTED TOP-LEVEL EXCEPTION:");
ex.printStackTrace(DxConsole.err);