Merge "Revert "Reduce locking in JLookup"" into ub-jack
diff --git a/build.xml b/build.xml
index 9c6ec23..b798d0d 100644
--- a/build.xml
+++ b/build.xml
@@ -999,7 +999,9 @@
<exclude name="com/android/jack/jarjar/test006/dontcompile/"/>
<exclude name="com/android/jack/jarjar/test006/dontcompile/"/>
<exclude name="com/android/jack/java8/gwt/test019/jack/Java8Test.java"/>
- <exclude name="com/android/jack/java8/intersectiontype/"/>
+ <exclude name="com/android/jack/java8/intersectiontype/test004/"/>
+ <exclude name="com/android/jack/java8/intersectiontype/test005/"/>
+ <exclude name="com/android/jack/java8/intersectiontype/test006/"/>
<exclude name="com/android/jack/java8/lambda/test019/"/>
<exclude name="com/android/jack/java8/methodref/test014/jack/Tests.java"/>
<exclude name="com/android/jack/java8/variable/test001/"/>
@@ -1008,6 +1010,7 @@
<exclude name="com/android/jack/jill/test002/**"/>
<exclude name="com/android/jack/jill/test003/**"/>
<exclude name="com/android/jack/jill/test004/**"/>
+ <exclude name="com/android/jack/jill/test005/**"/>
<exclude name="com/android/jack/lookup/test001/liboverride/"/>
<exclude name="com/android/jack/sourcepath/test002/jack/Sourcepath002.java"/>
<classpath>
diff --git a/jack-coverage/Android.mk b/jack-coverage/Android.mk
index b23622d..b798d87 100644
--- a/jack-coverage/Android.mk
+++ b/jack-coverage/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2016 The Android Open Source Project
+# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,24 +12,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := jack-coverage-plugin
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_RESOURCE_DIRS := rsc
-LOCAL_JAVACFLAGS := -processor com.android.sched.build.SchedAnnotationProcessor
-LOCAL_JAVA_LANGUAGE_VERSION := 1.7
-
-LOCAL_JAVA_LIBRARIES := \
- jsr305lib-jack \
- schedlib \
- jack \
- sched-build
-
-include $(BUILD_HOST_JAVA_LIBRARY)
+include $(call all-subdir-makefiles)
diff --git a/jack-coverage/build.xml b/jack-coverage/build.xml
index 2b51696..27e9134 100644
--- a/jack-coverage/build.xml
+++ b/jack-coverage/build.xml
@@ -19,6 +19,7 @@
<dirname property="jack-coverage-project.dir" file="${ant.file.jack-coverage}" />
<property name="jack-coverage-dist.dir" value="${jack-coverage-project.dir}/dist" />
+ <property name="jack-coverage-rsc.dir" value="${jack-coverage-project.dir}/rsc" />
<property name="jack-coverage-doc.dir" value="${jack-coverage-dist.dir}/doc" />
<property name="jack-coverage-tests.output.dir"
value="${jack-coverage-project.dir}/testResults" />
@@ -108,6 +109,10 @@
<fileset dir="${plugin.rsc.dir}" />
</copy>
+ <!-- Copy the version.properties -->
+ <copy file="${jack-coverage-rsc.dir}/jack-coverage-plugin-version.properties"
+ todir="${plugin.build.src.classes.dir}"/>
+
<mkdir dir="${jack-coverage-dist.dir}" />
<jar basedir="${plugin.build.src.classes.dir}"
destfile="${jack-coverage-dist.dir}/${plugin.execname}" />
@@ -303,7 +308,7 @@
</unzip>
<!-- Reuse the same version.properties than the plugin. -->
- <copy file="${plugin.rsc.dir}/jack-coverage-plugin-version.properties"
+ <copy file="${jack-coverage-rsc.dir}/jack-coverage-plugin-version.properties"
tofile="${reporter.build.src.classes.dir}/jack-jacoco-reporter-version.properties"/>
<jar destfile="${jack-coverage-dist.dir}/${reporter.execname}"
diff --git a/jack-coverage/plugin/Android.mk b/jack-coverage/plugin/Android.mk
new file mode 100644
index 0000000..1eb21e7
--- /dev/null
+++ b/jack-coverage/plugin/Android.mk
@@ -0,0 +1,35 @@
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := jack-coverage-plugin
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_JAVA_RESOURCE_DIRS := rsc ../rsc
+LOCAL_JAVACFLAGS := -processor com.android.sched.build.SchedAnnotationProcessor
+LOCAL_JAVA_LANGUAGE_VERSION := 1.7
+
+LOCAL_JAVA_LIBRARIES := \
+ jsr305lib-jack \
+ schedlib \
+ jack \
+ sched-build
+
+include $(BUILD_HOST_JAVA_LIBRARY)
diff --git a/jack-coverage/plugin/rsc/jack-coverage-plugin-version.properties b/jack-coverage/rsc/jack-coverage-plugin-version.properties
similarity index 100%
rename from jack-coverage/plugin/rsc/jack-coverage-plugin-version.properties
rename to jack-coverage/rsc/jack-coverage-plugin-version.properties
diff --git a/jack-tests/.classpath b/jack-tests/.classpath
index 664ee69..49d610b 100644
--- a/jack-tests/.classpath
+++ b/jack-tests/.classpath
@@ -2,7 +2,7 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry excluding="com/android/jack/annotation/processor/sample2/src/|com/android/jack/annotation/processor/sample2/src/|com/android/jack/annotation/test015/jack/|com/android/jack/annotation/test017/jack/|com/android/jack/assign/test002/|com/android/jack/classpath/test002/lib1override/**|com/android/jack/encoding/tests/**|com/android/jack/enums/test003/link/Other.java|com/android/jack/enums/test003/link/Values.java|com/android/jack/error/test001/jack/A.java|com/android/jack/error/test002/jack/A.java|com/android/jack/frontend/generic/test002/jack/|com/android/jack/frontend/test002/jack/PackageName/ClassInConflictingPackage.java|com/android/jack/frontend/test005/jack/**|com/android/jack/frontend/test006/jack/**|com/android/jack/frontend/test007/jack/|com/android/jack/frontend/test007/jackduplicate/|com/android/jack/frontend/test008/jack/NoOuterContext.java|com/android/jack/frontend/test010/jack/UnusedLocalVar.java|com/android/jack/frontend/test013/jack/ExtendingInnerOnly.java|com/android/jack/frontend/test014/jack/ExtendingInnerInStaticContext.java|com/android/jack/frontend/test015/jack/WithOuterContextButStatic.java|com/android/jack/frontend/test016/jack/WithDuplicated.java|com/android/jack/frontend/test017/jack/InvalidQualification.java|com/android/jack/frontend/test019/jack/TooBig.java|com/android/jack/jarjar/test003/dontcompile/|com/android/jack/jarjar/test006/dontcompile/|com/android/jack/jarjar/test006/dontcompile/|com/android/jack/java8/annotation/|com/android/jack/java8/bridges/|com/android/jack/java8/gwt/test019/jack/Java8Test.java|com/android/jack/java8/intersectiontype/|com/android/jack/java8/lambda/test019/|com/android/jack/java8/lambda/test039/|com/android/jack/java8/lambda/test040/|com/android/jack/java8/lambda/test041/|com/android/jack/java8/methodref/test014/jack/Tests.java|com/android/jack/java8/variable/test001/|com/android/jack/java8/variable/test003/|com/android/jack/jill/test001/**|com/android/jack/jill/test002/**|com/android/jack/jill/test003/**|com/android/jack/jill/test004/**|com/android/jack/lookup/test001/liboverride/|com/android/jack/nopackage/test*/**|com/android/jack/sourcepath/test002/jack/Sourcepath002.java" kind="src" path="tests"/>
+ <classpathentry excluding="com/android/jack/annotation/processor/sample2/src/|com/android/jack/annotation/processor/sample2/src/|com/android/jack/annotation/test015/jack/|com/android/jack/annotation/test017/jack/|com/android/jack/assign/test002/|com/android/jack/classpath/test002/lib1override/**|com/android/jack/encoding/tests/**|com/android/jack/enums/test003/link/Other.java|com/android/jack/enums/test003/link/Values.java|com/android/jack/error/test001/jack/A.java|com/android/jack/error/test002/jack/A.java|com/android/jack/frontend/generic/test002/jack/|com/android/jack/frontend/test002/jack/PackageName/ClassInConflictingPackage.java|com/android/jack/frontend/test005/jack/**|com/android/jack/frontend/test006/jack/**|com/android/jack/frontend/test007/jack/|com/android/jack/frontend/test007/jackduplicate/|com/android/jack/frontend/test008/jack/NoOuterContext.java|com/android/jack/frontend/test010/jack/UnusedLocalVar.java|com/android/jack/frontend/test013/jack/ExtendingInnerOnly.java|com/android/jack/frontend/test014/jack/ExtendingInnerInStaticContext.java|com/android/jack/frontend/test015/jack/WithOuterContextButStatic.java|com/android/jack/frontend/test016/jack/WithDuplicated.java|com/android/jack/frontend/test017/jack/InvalidQualification.java|com/android/jack/frontend/test019/jack/TooBig.java|com/android/jack/jarjar/test003/dontcompile/|com/android/jack/jarjar/test006/dontcompile/|com/android/jack/jarjar/test006/dontcompile/|com/android/jack/java8/annotation/test004/|com/android/jack/java8/bridges/test007/|com/android/jack/java8/intersectiontype/test004/|com/android/jack/java8/intersectiontype/test005/|com/android/jack/java8/intersectiontype/test006/|com/android/jack/java8/lambda/test039/|com/android/jack/java8/lambda/test040/|com/android/jack/java8/lambda/test041/|com/android/jack/java8/variable/test001/|com/android/jack/java8/variable/test003/|com/android/jack/jill/test001/**|com/android/jack/jill/test002/**|com/android/jack/jill/test003/**|com/android/jack/jill/test004/**|com/android/jack/jill/test005/**|com/android/jack/lookup/test001/liboverride/|com/android/jack/nopackage/test*/**|com/android/jack/sourcepath/test002/jack/Sourcepath002.java" kind="src" path="tests"/>
<classpathentry kind="lib" path="libs/junit4.jar"/>
<classpathentry kind="lib" path="libs/antlr-runtime-lib.jar"/>
<classpathentry kind="lib" path="libs/dx-ref.jar"/>
diff --git a/jack-tests/README.android b/jack-tests/README.android
index 047e3b5..6660415 100644
--- a/jack-tests/README.android
+++ b/jack-tests/README.android
@@ -29,5 +29,10 @@
Original sources can be downloaded from:
http://archive.apache.org/dist/ant/source/apache-ant-1.9.6-src.zip
+* Proguard 5.3.2, as a prebuilt jar for jack-tests
+https://sourceforge.net/projects/proguard/files/proguard/5.3/proguard5.3.2.zip/download
+* Desugar, as a prebuilt jar for jack-tests
+Build from Bazel open source project (commit 5dbb23ba44ec0037cf0944b17716ea3f08a69c27)
+https://github.com/bazelbuild/bazel.git
diff --git a/jack-tests/build.gradle b/jack-tests/build.gradle
index 506f960..5c84b4c 100644
--- a/jack-tests/build.gradle
+++ b/jack-tests/build.gradle
@@ -36,10 +36,8 @@
main {
java {
srcDirs = ['src', 'tests']
- exclude "com/android/jack/annotation/processor/sample2/src/**"
- exclude "com/android/jack/annotation/test015/jack/**"
- exclude "com/android/jack/annotation/test017/jack/**"
- exclude "com/android/jack/annotation/test019/jack/**"
+ exclude "com/android/jack/annotation/processor/sample2/src/"
+ exclude "com/android/jack/annotation/processor/sample2/src/"
exclude "com/android/jack/classpath/test002/lib1override/**"
exclude "com/android/jack/encoding/tests/**"
exclude "com/android/jack/enums/test003/link/Other.java"
@@ -47,6 +45,9 @@
exclude "com/android/jack/error/test001/jack/A.java"
exclude "com/android/jack/error/test002/jack/A.java"
exclude "com/android/jack/frontend/test002/jack/PackageName/ClassInConflictingPackage.java"
+ exclude "com/android/jack/frontend/test005/jack/**"
+ exclude "com/android/jack/frontend/test006/jack/**"
+ exclude "com/android/jack/frontend/test007/jackduplicate/"
exclude "com/android/jack/frontend/test008/jack/NoOuterContext.java"
exclude "com/android/jack/frontend/test010/jack/UnusedLocalVar.java"
exclude "com/android/jack/frontend/test013/jack/ExtendingInnerOnly.java"
@@ -55,48 +56,24 @@
exclude "com/android/jack/frontend/test016/jack/WithDuplicated.java"
exclude "com/android/jack/frontend/test017/jack/InvalidQualification.java"
exclude "com/android/jack/frontend/test019/jack/TooBig.java"
- exclude "com/android/jack/frontend/test018/jack/**"
- exclude "com/android/jack/nopackage/jack/**"
- exclude "com/android/jack/java8/lambda/**"
- exclude "com/android/jack/java8/defaultmethod/**"
- exclude "com/android/jack/java8/staticmethod/**"
- exclude "com/android/jack/java8/methodref/**"
- exclude "com/android/jack/java8/inference/**"
- exclude "com/android/jack/java8/gwt/**"
- exclude "com/android/jack/java8/retrolambda/**"
- exclude "com/android/jack/java8/intersectiontype/**"
- exclude "com/android/jack/java8/annotation/**"
- exclude "com/android/jack/java8/variable/**"
- exclude "com/android/jack/java8/bridges/**"
- exclude "com/android/jack/java8/parameter/**"
- exclude "com/android/jack/jarjar/test003/dontcompile/**"
- exclude "com/android/jack/jarjar/test004/dontcompile/**"
- exclude "com/android/jack/jarjar/test006/dontcompile/**"
- exclude "com/android/jack/lookup/test001/liboverride/**"
- exclude "com/android/jack/frontend/generic/test002/jack/**"
- exclude "com/android/jack/frontend/generic/test003/jack/**"
- exclude "com/android/jack/frontend/test005/jack/**"
- exclude "com/android/jack/frontend/test006/jack/**"
- exclude "com/android/jack/frontend/test007/**"
+ exclude "com/android/jack/jarjar/test003/dontcompile/"
+ exclude "com/android/jack/jarjar/test006/dontcompile/"
+ exclude "com/android/jack/jarjar/test006/dontcompile/"
+ exclude "com/android/jack/java8/gwt/test019/jack/Java8Test.java"
+ exclude "com/android/jack/java8/intersectiontype/test004/"
+ exclude "com/android/jack/java8/intersectiontype/test005/"
+ exclude "com/android/jack/java8/intersectiontype/test006/"
+ exclude "com/android/jack/java8/lambda/test019/"
+ exclude "com/android/jack/java8/methodref/test014/jack/Tests.java"
+ exclude "com/android/jack/java8/variable/test001/"
+ exclude "com/android/jack/java8/variable/test003/"
exclude "com/android/jack/jill/test001/**"
exclude "com/android/jack/jill/test002/**"
exclude "com/android/jack/jill/test003/**"
exclude "com/android/jack/jill/test004/**"
- exclude "com/android/jack/multidex/test004/**"
- exclude "com/android/jack/nopackage/test*/**"
- exclude "com/android/jack/optimizations/lambdas/test001/**"
- exclude "com/android/jack/optimizations/lambdas/test002/**"
- exclude "com/android/jack/optimizations/lambdas/test003/**"
- exclude "com/android/jack/optimizations/lambdas/test004/**"
- exclude "com/android/jack/optimizations/lambdas/test005/**"
- exclude "com/android/jack/optimizations/lambdas/test006/**"
- exclude "com/android/jack/optimizations/lambdas/test007/**"
- exclude "com/android/jack/optimizations/lambdas/test008/**"
+ exclude "com/android/jack/jill/test005/**"
+ exclude "com/android/jack/lookup/test001/liboverride/"
exclude "com/android/jack/sourcepath/test002/jack/Sourcepath002.java"
- exclude "com/android/jack/shrob/test062/jack/**"
- exclude "com/android/jack/shrob/test066/jack/**"
- exclude "com/android/jack/shrob/test067/jack/**"
- exclude "com/android/jack/shrob/test068/jack/**"
}
}
diff --git a/jack-tests/prebuilts/desugar.jar b/jack-tests/prebuilts/desugar.jar
new file mode 100755
index 0000000..8ade1f6
--- /dev/null
+++ b/jack-tests/prebuilts/desugar.jar
Binary files differ
diff --git a/jack-tests/prebuilts/proguard.jar b/jack-tests/prebuilts/proguard.jar
index 56d68ba..bf92108 100644
--- a/jack-tests/prebuilts/proguard.jar
+++ b/jack-tests/prebuilts/proguard.jar
Binary files differ
diff --git a/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java b/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java
index 8672f56..a252975 100644
--- a/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java
@@ -77,7 +77,7 @@
}
public void compare() throws Exception {
- runTest(createDexFileComparator().setWithDebugInfo(withDebugInfos));
+ runTest(createDexFileComparatorWithAnnotations());
}
}
diff --git a/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java b/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
index 5be494c..6265f65 100644
--- a/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
@@ -244,7 +244,7 @@
@Nonnull
public void run(@Nonnull String mainClass, @Nonnull String expected) throws Exception {
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
((AbstractRuntimeRunner) runner).setOutputStream(out);
diff --git a/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java b/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java
index be2c84a..21c166f 100644
--- a/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/RuntimeTestHelper.java
@@ -31,6 +31,8 @@
import junit.framework.Assert;
+import org.junit.Assume;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -65,6 +67,9 @@
private SourceLevel level = SourceLevel.JAVA_6;
+ @CheckForNull
+ private String minApiLevel = null;
+
@Nonnull
private List<FileChecker> fileCheckers = new ArrayList<FileChecker>(0);
@@ -102,6 +107,12 @@
}
@Nonnull
+ public RuntimeTestHelper setAndroidMinApiLevel(@Nonnull String minApiLevel) {
+ this.minApiLevel = minApiLevel;
+ return this;
+ }
+
+ @Nonnull
public RuntimeTestHelper addProperty(@Nonnull String key, @Nonnull String value) {
String oldValue = runtimeProperties.get(key);
if (oldValue != null && !oldValue.equals(value)) {
@@ -308,12 +319,16 @@
}
@Nonnull
- private AndroidToolchain createCandidateToolchain() {
+ private AndroidToolchain createCandidateToolchain() throws Exception {
AndroidToolchain candidateTestTools =
AbstractTestTools.getCandidateToolchain(AndroidToolchain.class, ignoredCandidateToolchains);
candidateTestTools.setSourceLevel(level);
+ if (minApiLevel != null) {
+ candidateTestTools.setAndroidMinApiLevel(minApiLevel);
+ }
candidateTestTools.setWithDebugInfos(withDebugInfos);
- if (!runtimeProperties.isEmpty() && candidateTestTools instanceof JackBasedToolchain) {
+ if (!runtimeProperties.isEmpty()) {
+ Assume.assumeTrue(candidateTestTools instanceof JackBasedToolchain);
// if the tool chain is type of JackBasedToolchain and the customized properties are set,
// configure the runtime testing properties
JackBasedToolchain jackBasedToolchain = (JackBasedToolchain) candidateTestTools;
@@ -325,10 +340,13 @@
}
@Nonnull
- private AndroidToolchain createReferenceToolchain() {
+ private AndroidToolchain createReferenceToolchain() throws Exception {
AndroidToolchain referenceTestTools =
AbstractTestTools.getReferenceToolchain(AndroidToolchain.class);
referenceTestTools.setSourceLevel(level);
+ if (minApiLevel != null) {
+ referenceTestTools.setAndroidMinApiLevel(minApiLevel);
+ }
referenceTestTools.setWithDebugInfos(withDebugInfos);
if (!runtimeProperties.isEmpty() && referenceTestTools instanceof JackBasedToolchain) {
// if the tool chain is type of JackBasedToolchain and the customized properties are set,
diff --git a/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java b/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java
index e8d7f7e..3ec1c64 100644
--- a/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java
@@ -16,7 +16,10 @@
package com.android.jack.test.helper;
+import com.android.jack.test.comparator.Comparator;
+import com.android.jack.test.comparator.ComparatorComposite;
import com.android.jack.test.comparator.ComparatorDex;
+import com.android.jack.test.comparator.ComparatorDexAnnotations;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.AndroidToolchain;
import com.android.jack.test.toolchain.Toolchain.SourceLevel;
@@ -156,6 +159,12 @@
}
@Nonnull
+ public Comparator createDexFileComparatorWithAnnotations() {
+ return new ComparatorComposite(createDexFileComparator(),
+ new ComparatorDexAnnotations(refDex, candidateDex));
+ }
+
+ @Nonnull
public SourceToDexComparisonTestHelper setJarjarRulesFile(@Nonnull File jarjarRulesFile) {
this.jarjarRulesFile = jarjarRulesFile;
return this;
diff --git a/jack-tests/src/com/android/jack/test/runner/DeviceRunner.java b/jack-tests/src/com/android/jack/test/runner/DeviceRunner.java
index 7a087bb..ba7955c 100644
--- a/jack-tests/src/com/android/jack/test/runner/DeviceRunner.java
+++ b/jack-tests/src/com/android/jack/test/runner/DeviceRunner.java
@@ -188,176 +188,186 @@
}
int exitStatus = -1;
+ List<String> failingDevices = new ArrayList<>(0);
for (IDevice device : connectedDevices) {
- checkDeviceRuntime(device);
-
- if (isVerbose) {
- System.out.println("Running on device: " + device.getName());
- }
-
- ensureAdbRoot(device);
-
- //Remove trailing '\n' returned by emulator
- File testsRootDirFile =
- new File(device.getMountPoint(IDevice.MNT_DATA).replace("\n", ""), "jack-tests");
- String testsRootDir = convertToTargetPath(testsRootDirFile);
-
- String testScriptPathOnTarget =
- convertToTargetPath(new File(testsRootDirFile, "TEST_SCRIPT_NAME"));
-
- String[] desFilePaths = new String[classpathFiles.length];
try {
- if (isVerbose) {
- System.out.println("adb shell -s " + device.getSerialNumber() + " mkdir "
- + testsRootDir);
- }
- device.executeShellCommand("mkdir " + testsRootDir, hostOutput);
+
+ checkDeviceRuntime(device);
if (isVerbose) {
- System.out.println("adb shell -s " + device.getSerialNumber() + " rm "
- + testsRootDir + FileListingService.FILE_SEPARATOR + "*");
+ System.out.println("Running on device: " + device.getName());
}
- device.executeShellCommand("rm " + testsRootDir + FileListingService.FILE_SEPARATOR + "*",
- hostOutput);
- if (isVerbose) {
- System.out.println("adb -s " + device.getSerialNumber() + " push "
- + TEST_SCRIPT_FILE.getAbsolutePath() + " "
- + testScriptPathOnTarget);
- }
- device.pushFile(TEST_SCRIPT_FILE.getAbsolutePath(),
- testScriptPathOnTarget);
+ ensureAdbRoot(device);
- if (isVerbose) {
- System.out.println("adb -s " + device.getSerialNumber() + " shell chmod 777 "
- + testScriptPathOnTarget);
- }
- device.executeShellCommand(
- "chmod 777 " + testScriptPathOnTarget, hostOutput);
+ //Remove trailing '\n' returned by emulator
+ File testsRootDirFile =
+ new File(device.getMountPoint(IDevice.MNT_DATA).replace("\n", ""), "jack-tests");
+ String testsRootDir = convertToTargetPath(testsRootDirFile);
- int i = 0;
- for (File f : classpathFiles) {
- desFilePaths[i] =
- convertToTargetPath(new File(testsRootDirFile, "f" + i + "_" + f.getName()));
+ String testScriptPathOnTarget =
+ convertToTargetPath(new File(testsRootDirFile, "TEST_SCRIPT_NAME"));
+
+ String[] desFilePaths = new String[classpathFiles.length];
+ try {
+ if (isVerbose) {
+ System.out.println("adb shell -s " + device.getSerialNumber() + " mkdir "
+ + testsRootDir);
+ }
+ device.executeShellCommand("mkdir " + testsRootDir, hostOutput);
if (isVerbose) {
- System.out.println("adb -s " + device.getSerialNumber() + " push "
- + f.getAbsolutePath() + " " + desFilePaths[i]);
+ System.out.println("adb shell -s " + device.getSerialNumber() + " rm "
+ + testsRootDir + FileListingService.FILE_SEPARATOR + "*");
}
- device.pushFile(f.getAbsolutePath(), desFilePaths[i]);
- i++;
- }
- } catch (TimeoutException e) {
- throw new RuntimeRunnerException(e);
- } catch (AdbCommandRejectedException e) {
- throw new RuntimeRunnerException(e);
- } catch (ShellCommandUnresponsiveException e) {
- throw new RuntimeRunnerException(e);
- } catch (IOException e) {
- throw new RuntimeRunnerException(e);
- } catch (SyncException e) {
- throw new RuntimeRunnerException(e);
- }
+ device.executeShellCommand("rm " + testsRootDir + FileListingService.FILE_SEPARATOR + "*",
+ hostOutput);
- // Split command line to have at most MAX_NB_CLASSES jUnit classes per invocation
- List<List<String>> splittedMainClasses = new ArrayList<List<String>>();
- int currentChunk = 0;
- for (String classToRun : classes) {
- if (splittedMainClasses.size() == currentChunk) {
- splittedMainClasses.add(new ArrayList<String>(MAX_NB_CLASSES));
- if (jUnitRunnerName != null) {
- splittedMainClasses.get(currentChunk).add(jUnitRunnerName);
- }
- }
-
- splittedMainClasses.get(currentChunk).add(classToRun);
-
- if (splittedMainClasses.get(currentChunk).size() == MAX_NB_CLASSES) {
- currentChunk++;
- }
- }
- List<String> cmdLines = new ArrayList<String>(splittedMainClasses.size());
- File rootDir = new File(device.getMountPoint(IDevice.MNT_ROOT).replace("\n", ""));
- for (List<String> classList : splittedMainClasses) {
- cmdLines.add(Joiner.on(' ').join(buildCommandLine(rootDir, options,
- classList.toArray(new String[classList.size()]), desFilePaths)));
- }
-
- try {
- // Bug : exit code return by adb shell is wrong (always 0)
- // https://code.google.com/p/android/issues/detail?id=3254
- // Use go team hack to work this around
- // https://code.google.com/p/go/source/browse/misc/arm/a
-
- for (String args : cmdLines) {
if (isVerbose) {
- System.out.println("adb -s " + device.getSerialNumber() + " shell "
- + testScriptPathOnTarget + ' ' + args);
+ System.out.println("adb -s " + device.getSerialNumber() + " push "
+ + TEST_SCRIPT_FILE.getAbsolutePath() + " "
+ + testScriptPathOnTarget);
+ }
+ device.pushFile(TEST_SCRIPT_FILE.getAbsolutePath(),
+ testScriptPathOnTarget);
+
+ if (isVerbose) {
+ System.out.println("adb -s " + device.getSerialNumber() + " shell chmod 777 "
+ + testScriptPathOnTarget);
}
device.executeShellCommand(
- testScriptPathOnTarget + ' ' + args,
- new MyShellOuputReceiver(outRedirectStream, errRedirectStream),
- /* maxTimeToOutputResponse = */ 10000);
+ "chmod 777 " + testScriptPathOnTarget, hostOutput);
- File exitStatusFile = AbstractTestTools.createTempFile("exitStatus", "");
- if (isVerbose) {
- System.out.println("adb -s " + device.getSerialNumber() + " pull "
- + testsRootDir + "/exitStatus "
- + exitStatusFile.getAbsolutePath());
- }
- device.pullFile(testsRootDir + "/exitStatus",
- exitStatusFile.getAbsolutePath());
+ int i = 0;
+ for (File f : classpathFiles) {
+ desFilePaths[i] =
+ convertToTargetPath(new File(testsRootDirFile, "f" + i + "_" + f.getName()));
- BufferedReader br = new BufferedReader(new FileReader(exitStatusFile));
- try {
- String readLine = br.readLine();
- if (readLine == null) {
- throw new RuntimeRunnerException("Exit status not found");
- }
- exitStatus = Integer.parseInt(readLine);
- } finally {
- br.close();
- }
-
- if (isVerbose) {
- System.out.println("Exit status: " + exitStatus);
- }
-
- if (exitStatus != 0) {
- System.err.println("Execution failed on device '" + device.getName() + "'");
- break;
- }
- }
- } catch (TimeoutException e) {
- throw new RuntimeRunnerException(e);
- } catch (AdbCommandRejectedException e) {
- throw new RuntimeRunnerException(e);
- } catch (ShellCommandUnresponsiveException e) {
- throw new RuntimeRunnerException(e);
- } catch (CannotChangePermissionException | CannotCreateFileException | IOException e) {
- throw new RuntimeRunnerException(e);
- } catch (SyncException e) {
- throw new RuntimeRunnerException(e);
- } finally {
- try {
- for (String pushedFile : desFilePaths) {
if (isVerbose) {
- System.out.println(
- "adb -s " + device.getSerialNumber() + " rm " + pushedFile);
+ System.out.println("adb -s " + device.getSerialNumber() + " push "
+ + f.getAbsolutePath() + " " + desFilePaths[i]);
}
- device.executeShellCommand("rm " + pushedFile, hostOutput);
+ device.pushFile(f.getAbsolutePath(), desFilePaths[i]);
+ i++;
}
- } catch (IOException e) {
- throw new RuntimeRunnerException(e);
- } catch (TimeoutException e) {
- throw new RuntimeRunnerException(e);
- } catch (AdbCommandRejectedException e) {
- throw new RuntimeRunnerException(e);
- } catch (ShellCommandUnresponsiveException e) {
+ } catch (TimeoutException
+ | AdbCommandRejectedException
+ | ShellCommandUnresponsiveException
+ | IOException
+ | SyncException e) {
throw new RuntimeRunnerException(e);
}
+
+ // Split command line to have at most MAX_NB_CLASSES jUnit classes per invocation
+ List<List<String>> splittedMainClasses = new ArrayList<List<String>>();
+ int currentChunk = 0;
+ for (String classToRun : classes) {
+ if (splittedMainClasses.size() == currentChunk) {
+ splittedMainClasses.add(new ArrayList<String>(MAX_NB_CLASSES));
+ if (jUnitRunnerName != null) {
+ splittedMainClasses.get(currentChunk).add(jUnitRunnerName);
+ }
+ }
+
+ splittedMainClasses.get(currentChunk).add(classToRun);
+
+ if (splittedMainClasses.get(currentChunk).size() == MAX_NB_CLASSES) {
+ currentChunk++;
+ }
+ }
+ List<String> cmdLines = new ArrayList<String>(splittedMainClasses.size());
+ File rootDir = new File(device.getMountPoint(IDevice.MNT_ROOT).replace("\n", ""));
+ for (List<String> classList : splittedMainClasses) {
+ cmdLines.add(Joiner.on(' ').join(buildCommandLine(rootDir, options,
+ classList.toArray(new String[classList.size()]), desFilePaths)));
+ }
+
+ try {
+ // Bug : exit code return by adb shell is wrong (always 0)
+ // https://code.google.com/p/android/issues/detail?id=3254
+ // Use go team hack to work this around
+ // https://code.google.com/p/go/source/browse/misc/arm/a
+
+ for (String args : cmdLines) {
+ if (isVerbose) {
+ System.out.println("adb -s " + device.getSerialNumber() + " shell "
+ + testScriptPathOnTarget + ' ' + args);
+ }
+ device.executeShellCommand(
+ testScriptPathOnTarget + ' ' + args,
+ new MyShellOuputReceiver(outRedirectStream, errRedirectStream),
+ /* maxTimeToOutputResponse = */ 10000);
+
+ File exitStatusFile = AbstractTestTools.createTempFile("exitStatus", "");
+ if (isVerbose) {
+ System.out.println("adb -s " + device.getSerialNumber() + " pull "
+ + testsRootDir + "/exitStatus "
+ + exitStatusFile.getAbsolutePath());
+ }
+ device.pullFile(testsRootDir + "/exitStatus",
+ exitStatusFile.getAbsolutePath());
+
+ BufferedReader br = new BufferedReader(new FileReader(exitStatusFile));
+ try {
+ String readLine = br.readLine();
+ if (readLine == null) {
+ throw new RuntimeRunnerException("Exit status not found");
+ }
+ exitStatus = Integer.parseInt(readLine);
+ } finally {
+ br.close();
+ }
+
+ if (isVerbose) {
+ System.out.println("Exit status: " + exitStatus);
+ }
+
+ if (exitStatus != 0) {
+ System.err.println("Execution failed on device '" + device.getName() + "'");
+ break;
+ }
+ }
+ } catch (TimeoutException
+ | AdbCommandRejectedException
+ | ShellCommandUnresponsiveException
+ | CannotChangePermissionException
+ | CannotCreateFileException
+ | IOException
+ | SyncException e) {
+ throw new RuntimeRunnerException(e);
+ } finally {
+ try {
+ for (String pushedFile : desFilePaths) {
+ if (isVerbose) {
+ System.out.println(
+ "adb -s " + device.getSerialNumber() + " rm " + pushedFile);
+ }
+ device.executeShellCommand("rm " + pushedFile, hostOutput);
+ }
+ } catch (IOException
+ | TimeoutException
+ | AdbCommandRejectedException
+ | ShellCommandUnresponsiveException e) {
+ throw new RuntimeRunnerException(e);
+ }
+ }
+
+ } catch (RuntimeRunnerException e) {
+ System.err.println("Error with device '" + device.getName() + "': " + e.getMessage());
+ failingDevices.add(device.getName());
}
+
+ }
+
+ if (failingDevices.size() > 0) {
+ String device = failingDevices.size() == 1 ? "device" : "devices";
+ throw new RuntimeRunnerException(
+ "Error with "
+ + device
+ + ": "
+ + Joiner.on(',').join(failingDevices)
+ + ". See log for details");
}
return exitStatus;
diff --git a/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java b/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
index b781ece..4a8e7ad 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
@@ -17,6 +17,7 @@
package com.android.jack.test.toolchain;
import com.google.common.base.Splitter;
+import com.google.common.collect.Lists;
import com.android.jack.Sourcelist;
import com.android.jack.library.InputJackLibrary;
@@ -141,8 +142,9 @@
@Override
@Nonnull
public LegacyToolchain build() {
- return new LegacyToolchain(getPrebuilt("legacy-java-compiler"), getPrebuilt("jarjar"),
- getPrebuilt("proguard"));
+ return new LegacyToolchain(getPrebuilt("legacy-java-compiler"),
+ getPrebuiltsAsClasspath("legacy-java-compiler.bootclasspath"), getPrebuilt("jarjar"),
+ getPrebuilt("proguard"), getPrebuilt("dx"));
}
}
@@ -312,6 +314,39 @@
return result;
}
+ @Nonnull
+ public static List<File> getPrebuiltsAsClasspath(@Nonnull String prebuiltClasspathName) {
+ String keyName = TOOLCHAIN_PREBUILT_PREFIX + prebuiltClasspathName;
+ String value = TestsProperties.getProperty(keyName).trim();
+
+ if (value.equals("")) {
+ throw new AssertionError("Property '" + prebuiltClasspathName + "' is not set");
+ }
+
+ List<File> result = new ArrayList<>();
+ for (String prebuiltPath : getClasspathsAsList(value)) {
+
+ File file = new File(prebuiltPath);
+ if (!file.isAbsolute()) {
+ file = new File(TestsProperties.getJackRootDir(), prebuiltPath);
+ }
+
+ if (!file.exists()) {
+ throw new TestConfigurationException(
+ "Can not find prebuilt at '"
+ + file.getPath()
+ + "' for prebuilt classpath '"
+ + prebuiltClasspathName
+ + "'");
+ }
+
+
+ result.add(file);
+ }
+
+ return result;
+ }
+
@Nonnull
private static final File getTestsRootDir() {
@@ -538,6 +573,11 @@
}
@Nonnull
+ public static List<String> getClasspathsAsList(@Nonnull String classpath) {
+ return Lists.newArrayList(Splitter.on(File.pathSeparatorChar).split(classpath));
+ }
+
+ @Nonnull
private static String concatClasspathStrings(
@Nonnull String bootclasspath, @Nonnull String classpath) {
if (bootclasspath.isEmpty()) {
@@ -839,6 +879,12 @@
}
@Nonnull
+ public static List<RuntimeRunner> listRuntimeTestRunners()
+ throws SecurityException, IllegalArgumentException, RuntimeRunnerException {
+ return listRuntimeTestRunners(/*properties = */ null);
+ }
+
+ @Nonnull
public static List<RuntimeRunner> listRuntimeTestRunners(@CheckForNull Properties properties)
throws SecurityException, IllegalArgumentException, RuntimeRunnerException {
@@ -856,8 +902,6 @@
}
}
- assert runtimes != null;
-
if (properties != null) {
String rtAsString = properties.getProperty(RUNTIME_LIST_KEY);
if (rtAsString != null) {
@@ -865,6 +909,7 @@
}
}
+ assert runtimes != null; // Make FindBugs happy
if (runtimes.size() == 0) {
if (Boolean.parseBoolean(System.getProperty(RUNTIME_TOLERANT, "false"))) {
if (!hasRuntimeWarningBeenEmitted) {
@@ -878,6 +923,7 @@
}
}
+ assert runtimes != null; // Make FindBugs happy
return runtimes;
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/AndroidToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/AndroidToolchain.java
index bf7ece7..9ff4f92 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/AndroidToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/AndroidToolchain.java
@@ -40,4 +40,7 @@
@Nonnull
public abstract AndroidToolchain enableDxOptimizations();
+ @Nonnull
+ public abstract AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel)
+ throws Exception;
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
index 27c3135..6b20d35 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/DummyToolchain.java
@@ -77,4 +77,11 @@
public String getLibraryElementsExtension() {
return ".dummy";
}
+
+ @Override
+ @Nonnull
+ public AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel) {
+ // Do nothing
+ return this;
+ }
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/IncrementalToolchainUtils.java b/jack-tests/src/com/android/jack/test/toolchain/IncrementalToolchainUtils.java
new file mode 100644
index 0000000..76aa0db
--- /dev/null
+++ b/jack-tests/src/com/android/jack/test/toolchain/IncrementalToolchainUtils.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.test.toolchain;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.attribute.FileTime;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+
+/**
+ * Utilities methods for incremental toolchains
+ */
+class IncrementalToolchainUtils {
+
+ @CheckForNull
+ private static File getFileToTouch(@Nonnull File... sources) throws Exception {
+ List<File> files = new ArrayList<File>();
+ for (File source : sources) {
+ AbstractTestTools.getJavaFiles(source, files, /* mustExist = */ false);
+ }
+ if (files.size() > 0) {
+ return files.get(files.size() / 2);
+ }
+ return null;
+ }
+
+ public static void touchSourceFile(@Nonnull File... sources) throws Exception {
+
+ File fileToTouch = getFileToTouch(sources);
+
+ if (fileToTouch != null) {
+
+ FileTime fileTime = Files.getLastModifiedTime(fileToTouch.toPath());
+
+ Files.setLastModifiedTime(
+ fileToTouch.toPath(), FileTime.fromMillis(System.currentTimeMillis()));
+
+ if (Files.getLastModifiedTime(fileToTouch.toPath()).equals(fileTime)) {
+ Thread.sleep(1000);
+ Files.setLastModifiedTime(
+ fileToTouch.toPath(), FileTime.fromMillis(System.currentTimeMillis()));
+ }
+
+ assert !fileTime.equals(Files.getLastModifiedTime(fileToTouch.toPath()));
+ }
+ }
+
+}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
index 8b7ccb6..3a4d688 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
@@ -274,4 +274,10 @@
}
}
+ @Override
+ @Nonnull
+ public AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel) throws Exception {
+ apiV01Config.setProperty(Options.ANDROID_MIN_API_LEVEL.getName(), minApiLevel);
+ return this;
+ }
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV02IncrementalToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV02IncrementalToolchain.java
index 044599b..52f4578 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV02IncrementalToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV02IncrementalToolchain.java
@@ -17,8 +17,6 @@
package com.android.jack.test.toolchain;
import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -40,8 +38,7 @@
throws Exception {
setIncrementalFolder(AbstractTestTools.createTempDir());
super.srcToExe(out, zipFile, sources);
- Thread.sleep(1000);
- touchSourceFile(sources);
+ IncrementalToolchainUtils.touchSourceFile(sources);
super.srcToExe(out, zipFile, sources);
}
@@ -50,22 +47,8 @@
throws Exception {
setIncrementalFolder(AbstractTestTools.createTempDir());
super.srcToLib(out, zipFiles, sources);
- Thread.sleep(1000);
- touchSourceFile(sources);
+ IncrementalToolchainUtils.touchSourceFile(sources);
super.srcToLib(out, zipFiles, sources);
}
- private void touchSourceFile(@Nonnull File... sources) throws Exception {
- List<File> files = new ArrayList<File>();
- for (File source : sources) {
- AbstractTestTools.getJavaFiles(source, files, /* mustExist = */ false);
- }
- if (files.size() > 0) {
- File fileToTouch = files.get(files.size() / 2);
- if (!fileToTouch.setLastModified(System.currentTimeMillis())) {
- throw new AssertionError("Could not touch file '" + fileToTouch.getPath() + "'");
- }
- }
- }
-
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java
index 51fab1c..b41a308 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV02Toolchain.java
@@ -287,4 +287,10 @@
}
}
+ @Override
+ @Nonnull
+ public AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel) throws Exception {
+ apiV02Config.setProperty(Options.ANDROID_MIN_API_LEVEL.getName(), minApiLevel);
+ return this;
+ }
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV03IncrementalToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV03IncrementalToolchain.java
index c67499c..58cad90 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV03IncrementalToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV03IncrementalToolchain.java
@@ -17,8 +17,6 @@
package com.android.jack.test.toolchain;
import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -40,8 +38,7 @@
throws Exception {
setIncrementalFolder(AbstractTestTools.createTempDir());
super.srcToExe(out, zipFile, sources);
- Thread.sleep(1000);
- touchSourceFile(sources);
+ IncrementalToolchainUtils.touchSourceFile(sources);
super.srcToExe(out, zipFile, sources);
}
@@ -50,22 +47,9 @@
throws Exception {
setIncrementalFolder(AbstractTestTools.createTempDir());
super.srcToLib(out, zipFiles, sources);
- Thread.sleep(1000);
- touchSourceFile(sources);
+ IncrementalToolchainUtils.touchSourceFile(sources);
super.srcToLib(out, zipFiles, sources);
}
- private void touchSourceFile(@Nonnull File... sources) throws Exception {
- List<File> files = new ArrayList<File>();
- for (File source : sources) {
- AbstractTestTools.getJavaFiles(source, files, /* mustExist = */ false);
- }
- if (files.size() > 0) {
- File fileToTouch = files.get(files.size() / 2);
- if (!fileToTouch.setLastModified(System.currentTimeMillis())) {
- throw new AssertionError("Could not touch file '" + fileToTouch.getPath() + "'");
- }
- }
- }
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV03Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV03Toolchain.java
index 765c108..7a754f1 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV03Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV03Toolchain.java
@@ -308,4 +308,10 @@
return this;
}
+ @Override
+ @Nonnull
+ public AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel) throws Exception {
+ apiV03Config.setProperty(Options.ANDROID_MIN_API_LEVEL.getName(), minApiLevel);
+ return this;
+ }
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV04IncrementalToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV04IncrementalToolchain.java
index 6327293..c74b2f8 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV04IncrementalToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV04IncrementalToolchain.java
@@ -17,8 +17,6 @@
package com.android.jack.test.toolchain;
import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -40,8 +38,7 @@
throws Exception {
setIncrementalFolder(AbstractTestTools.createTempDir());
super.srcToExe(out, zipFile, sources);
- Thread.sleep(1000);
- touchSourceFile(sources);
+ IncrementalToolchainUtils.touchSourceFile(sources);
super.srcToExe(out, zipFile, sources);
}
@@ -50,22 +47,8 @@
throws Exception {
setIncrementalFolder(AbstractTestTools.createTempDir());
super.srcToLib(out, zipFiles, sources);
- Thread.sleep(1000);
- touchSourceFile(sources);
+ IncrementalToolchainUtils.touchSourceFile(sources);
super.srcToLib(out, zipFiles, sources);
}
- private void touchSourceFile(@Nonnull File... sources) throws Exception {
- List<File> files = new ArrayList<File>();
- for (File source : sources) {
- AbstractTestTools.getJavaFiles(source, files, /* mustExist = */ false);
- }
- if (files.size() > 0) {
- File fileToTouch = files.get(files.size() / 2);
- if (!fileToTouch.setLastModified(System.currentTimeMillis())) {
- throw new AssertionError("Could not touch file '" + fileToTouch.getPath() + "'");
- }
- }
- }
-
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV04Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV04Toolchain.java
index ee1cb29..7e6ac02 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV04Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV04Toolchain.java
@@ -318,4 +318,11 @@
}
return this;
}
+
+ @Override
+ @Nonnull
+ public AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel) throws Exception {
+ apiV04Config.setProperty(Options.ANDROID_MIN_API_LEVEL.getName(), minApiLevel);
+ return this;
+ }
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
index 731340d..36e28bb 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
@@ -467,4 +467,11 @@
writer.close();
commandLine.add('@' + sourceList.getAbsolutePath());
}
+
+ @Override
+ @Nonnull
+ public AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel) throws Exception {
+ properties.put(Options.ANDROID_MIN_API_LEVEL.getName(), minApiLevel);
+ return this;
+ }
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
index 5fc1a78..8ccd601 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
@@ -18,10 +18,11 @@
import com.google.common.base.Joiner;
-import com.android.dx.command.dexer.Main.Arguments;
+import com.android.jack.Options;
import com.android.jack.test.TestsProperties;
import com.android.jack.test.util.ExecFileException;
import com.android.jack.test.util.ExecuteFile;
+import com.android.sched.util.codec.CodecContext;
import java.io.BufferedWriter;
import java.io.File;
@@ -41,17 +42,28 @@
@Nonnull
private final File legacyCompilerPrebuilt;
@Nonnull
+ private final List<File> legacyCompilerBootclasspath;
+ @Nonnull
private final File jarjarPrebuilt;
@Nonnull
private final File proguardPrebuilt;
+ @Nonnull
+ private final File dxPrebuilt;
private boolean useDxOptimization = true;
- LegacyToolchain(@Nonnull File legacyCompilerPrebuilt, @Nonnull File jarjarPrebuilt,
- @Nonnull File proguardPrebuilt) {
+ @Nonnull
+ private String minApiLevel = "1";
+
+ LegacyToolchain(@Nonnull File legacyCompilerPrebuilt,
+ @Nonnull List<File> legacyCompilerBootclasspath,
+ @Nonnull File jarjarPrebuilt,
+ @Nonnull File proguardPrebuilt, @Nonnull File dxPrebuilt) {
this.legacyCompilerPrebuilt = legacyCompilerPrebuilt;
+ this.legacyCompilerBootclasspath = legacyCompilerBootclasspath;
this.jarjarPrebuilt = jarjarPrebuilt;
this.proguardPrebuilt = proguardPrebuilt;
+ this.dxPrebuilt = dxPrebuilt;
}
@Override
@@ -123,15 +135,11 @@
@Override
public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
- try {
- if (in.length > 1) {
- throw new AssertionError("Not yet supported");
- }
- for (File lib : in) {
- compileWithDx(in[0], out, zipFile);
- }
- } catch (IOException e) {
- throw new RuntimeException("Legacy toolchain exited with an error", e);
+ if (in.length > 1) {
+ throw new AssertionError("Not yet supported");
+ }
+ for (File lib : in) {
+ compileWithDx(in[0], out, zipFile);
}
}
@@ -143,10 +151,9 @@
@Override
@Nonnull
public File[] getDefaultBootClasspath() {
- return new File[] {
- new File(TestsProperties.getJackRootDir(), "jack-tests/prebuilts/core-stubs-mini.jar"),
- new File(TestsProperties.getJackRootDir(), "jack-tests/libs/junit4.jar")
- };
+ List<File> result = new ArrayList<>(legacyCompilerBootclasspath);
+ result.add(new File(TestsProperties.getJackRootDir(), "jack-tests/libs/junit4.jar"));
+ return result.toArray(new File[result.size()]);
}
@Override
@@ -227,6 +234,74 @@
}
}
+ private void processWithDesugar(@Nonnull File input, @Nonnull File output) throws Exception {
+ boolean assertEnable = false;
+ assert true == (assertEnable = true);
+
+ List<String> commandLine = new ArrayList<String>();
+ commandLine.add("java");
+ commandLine.add(assertEnable ? "-ea" : "-da");
+ commandLine.add("-jar");
+ commandLine.add(AbstractTestTools.getPrebuilt("desugar").getAbsolutePath());
+
+ if (isVerbose) {
+ commandLine.add("--verbose");
+ }
+
+ List<File> tmpClasspath = ensureOnlyFilesOnClasspath(classpath);
+
+ if (tmpClasspath != null) {
+ for (File cpEntry : tmpClasspath) {
+ commandLine.add("--classpath_entry");
+ commandLine.add(cpEntry.getAbsolutePath());
+ }
+ }
+
+ if (Options.ANDROID_MIN_API_LEVEL.getCodec().parseString(new CodecContext(), minApiLevel)
+ .getReleasedLevel() >= 24) {
+ commandLine.add("--min_sdk_version");
+ commandLine.add(minApiLevel);
+ }
+
+ commandLine.add("--input");
+ commandLine.add(input.getAbsolutePath());
+ commandLine.add("--output");
+ commandLine.add(output.getAbsolutePath());
+
+
+ ExecuteFile execFile = new ExecuteFile(commandLine.toArray(new String[commandLine.size()]));
+ execFile.inheritEnvironment();
+ execFile.setOut(outRedirectStream);
+ execFile.setErr(errRedirectStream);
+ execFile.setVerbose(isVerbose);
+
+ try {
+ if (execFile.run() != 0) {
+ throw new RuntimeException("Desugar exited with an error");
+ }
+ } catch (ExecFileException e) {
+ throw new RuntimeException("An error occurred while running Desugar", e);
+ }
+
+ }
+
+
+ @Nonnull
+ private List<File> ensureOnlyFilesOnClasspath(@Nonnull List<File> classpath) throws Exception {
+ List<File> result = new ArrayList<>(classpath.size());
+ for (File item : classpath) {
+ File fileToAdd;
+ if (item.isDirectory()) {
+ fileToAdd = AbstractTestTools.createTempFile("zipped-cp-entry", ".jar");
+ AbstractTestTools.createjar(fileToAdd, item, isVerbose);
+ } else {
+ fileToAdd = item;
+ }
+ result.add(fileToAdd);
+ }
+ return result;
+ }
+
private void compileWithEcj(@Nonnull File[] sources, @CheckForNull String classpath,
@Nonnull File out) throws Exception {
List<String> commandLine = new ArrayList<String>(4 + sources.length);
@@ -245,7 +320,9 @@
if (isVerbose) {
commandLine.add("-verbose");
}
+
addSourceLevel(sourceLevel, commandLine);
+ addTargetLevel(sourceLevel, commandLine);
if (annotationProcessorClasses != null) {
commandLine.add("-processor");
@@ -257,11 +334,30 @@
commandLine.add("-noExit");
commandLine.add("-preserveAllLocals");
+
+ File outputClassesDir = AbstractTestTools.createTempDir();
+
+ if (sourceLevel.compareTo(SourceLevel.JAVA_8) >= 0) {
+ outputClassesDir = AbstractTestTools.createTempDir();
+ } else {
+ outputClassesDir = out;
+ }
+
commandLine.add("-d");
- commandLine.add(out.getAbsolutePath());
+ commandLine.add(outputClassesDir.getAbsolutePath());
+
addSourceList(commandLine, sources);
org.eclipse.jdt.internal.compiler.batch.Main.main(
commandLine.toArray(new String[commandLine.size()]));
+
+ if (sourceLevel.compareTo(SourceLevel.JAVA_8) >= 0) {
+ File tmpOutFile = AbstractTestTools.createTempFile("jack-test", "no-desugar.jar");
+ File tmpOutFileDesugared = AbstractTestTools.createTempFile("jack-test", "desugar.jar");
+ AbstractTestTools.zip(outputClassesDir, tmpOutFile, isVerbose);
+ processWithDesugar(tmpOutFile, tmpOutFileDesugared);
+ AbstractTestTools.unzip(tmpOutFileDesugared, out, isVerbose);
+ }
+
}
@Override
@@ -296,9 +392,26 @@
}
}
+ private static void addTargetLevel(
+ @Nonnull SourceLevel level, @Nonnull List<String> commandLine) {
+ commandLine.add("-target");
+ switch (level) {
+ case JAVA_6:
+ commandLine.add("1.6");
+ break;
+ case JAVA_7:
+ commandLine.add("1.7");
+ break;
+ case JAVA_8:
+ commandLine.add("1.8");
+ break;
+ default:
+ throw new AssertionError("Unkown level: '" + level.toString() + "'");
+ }
+ }
+
private void compileWithExternalRefCompiler(@Nonnull File[] sources,
@CheckForNull String classpath, @Nonnull File out) throws Exception {
-
List<String> commandLine = new ArrayList<String>();
commandLine.add(legacyCompilerPrebuilt.getAbsolutePath());
@@ -308,9 +421,7 @@
}
addSourceLevel(sourceLevel, commandLine);
-
- commandLine.add("-target");
- commandLine.add("1.7");
+ addTargetLevel(sourceLevel, commandLine);
commandLine.add("-encoding");
commandLine.add("utf8");
@@ -330,8 +441,16 @@
addSourceList(commandLine, sources);
+ File outputClassesDir = AbstractTestTools.createTempDir();
+
+ if (sourceLevel.compareTo(SourceLevel.JAVA_8) >= 0) {
+ outputClassesDir = AbstractTestTools.createTempDir();
+ } else {
+ outputClassesDir = out;
+ }
+
commandLine.add("-d");
- commandLine.add(out.getAbsolutePath());
+ commandLine.add(outputClassesDir.getAbsolutePath());
ExecuteFile execFile = new ExecuteFile(commandLine.toArray(new String[commandLine.size()]));
execFile.inheritEnvironment();
@@ -345,36 +464,56 @@
} catch (ExecFileException e) {
throw new RuntimeException("An error occurred while running reference compiler", e);
}
- }
- private void compileWithDx(@Nonnull File in, @Nonnull File out, boolean zipFile)
- throws IOException {
-
- try {
- System.setOut(outRedirectStream);
- System.setErr(errRedirectStream);
-
- Arguments arguments = new Arguments();
-
- arguments.jarOutput = zipFile;
- arguments.outName = new File(out, getBinaryFileName()).getAbsolutePath();
-
- arguments.optimize = useDxOptimization;
- // this only means we deactivate the check that no core classes are included
- arguments.coreLibrary = true;
- arguments.verbose = isVerbose;
- arguments.parse(new String[] {in.getAbsolutePath()});
-
- int retValue = com.android.dx.command.dexer.Main.run(arguments);
- if (retValue != 0) {
- throw new RuntimeException("Dx failed and returned " + retValue);
- }
- } finally {
- System.setOut(stdOut);
- System.setErr(stdErr);
+ if (sourceLevel.compareTo(SourceLevel.JAVA_8) >= 0) {
+ File tmpOutFile = AbstractTestTools.createTempFile("jack-test", "no-desugar.jar");
+ File tmpOutFileDesugared = AbstractTestTools.createTempFile("jack-test", "desugar.jar");
+ AbstractTestTools.zip(outputClassesDir, tmpOutFile, isVerbose);
+ processWithDesugar(tmpOutFile, tmpOutFileDesugared);
+ AbstractTestTools.unzip(tmpOutFileDesugared, out, isVerbose);
}
}
+ private void compileWithDx(@Nonnull File in, @Nonnull File out, boolean zipFile) {
+ List<String> commandLine = new ArrayList<String>();
+
+ if (dxPrebuilt.getAbsolutePath().endsWith(".jar")) {
+ commandLine.add("java");
+ commandLine.add("-jar");
+ }
+
+ commandLine.add(dxPrebuilt.getAbsolutePath());
+
+ commandLine.add("--dex");
+
+ if (!useDxOptimization) {
+ commandLine.add("--no-optimize");
+ }
+
+ // commandLine.add("--core-library");
+
+ if (isVerbose) {
+ commandLine.add("--verbose");
+ }
+
+ commandLine.add("--output=" + out.getAbsolutePath());
+
+ commandLine.add(in.getAbsolutePath());
+
+ ExecuteFile execFile = new ExecuteFile(commandLine.toArray(new String[commandLine.size()]));
+ execFile.inheritEnvironment();
+ execFile.setOut(outRedirectStream);
+ execFile.setErr(errRedirectStream);
+ execFile.setVerbose(isVerbose);
+
+ try {
+ if (execFile.run() != 0) {
+ throw new RuntimeException("Dx exited with an error");
+ }
+ } catch (ExecFileException e) {
+ throw new RuntimeException("An error occurred while running dx", e);
+ }
+ }
protected void addSourceList(@Nonnull List<String> commandLine, @Nonnull File... sources)
throws Exception {
@@ -389,4 +528,11 @@
writer.close();
commandLine.add('@' + sourceList.getAbsolutePath());
}
+
+ @Override
+ @Nonnull
+ public AndroidToolchain setAndroidMinApiLevel(@Nonnull String minApiLevel) throws Exception {
+ this.minApiLevel = minApiLevel;
+ return this;
+ }
}
diff --git a/jack-tests/tests.properties.template b/jack-tests/tests.properties.template
index fbdb1a4..c96d248 100644
--- a/jack-tests/tests.properties.template
+++ b/jack-tests/tests.properties.template
@@ -16,4 +16,5 @@
runtime.location.art-host=
toolchain.prebuilt.legacy-java-compiler=
+toolchain.prebuilt.legacy-java-compiler.bootclasspath=
diff --git a/jack-tests/tests/com/android/jack/RegressionTests.java b/jack-tests/tests/com/android/jack/RegressionTests.java
index 325bfcb..273648c 100644
--- a/jack-tests/tests/com/android/jack/RegressionTests.java
+++ b/jack-tests/tests/com/android/jack/RegressionTests.java
@@ -40,9 +40,11 @@
import com.android.jack.invoke.InvokeTests;
import com.android.jack.newarray.NewarrayTests;
import com.android.jack.opcodes.OpcodesTests;
+import com.android.jack.optimizations.defuse.DefUseTests;
import com.android.jack.optimizations.exprsimplifier.ExprsimplifierTests;
import com.android.jack.optimizations.ifwithconstantsimplifier.IfWithConstantSimplifierTests;
import com.android.jack.optimizations.notsimplifier.NotsimplifierTests;
+import com.android.jack.optimizations.sideeffect.SideEffectTests;
import com.android.jack.optimizations.tailrecursion.TailRecursionTests;
import com.android.jack.optimizations.usedef.UseDefTests;
import com.android.jack.order.OrderTests;
@@ -58,6 +60,7 @@
import com.android.jack.test.runtime.RuntimeTestInfo;
import com.android.jack.threeaddress.ThreeaddressTests;
import com.android.jack.throwstatement.ThrowstatementTests;
+import com.android.jack.transformations.boostlockregionpriority.BoostLockedRegionPriorityTests;
import com.android.jack.trycatch.TrycatchTests;
import com.android.jack.tryfinally.TryfinallyTests;
import com.android.jack.unary.UnaryTests;
@@ -76,6 +79,7 @@
new ArrayTests(),
new AssertionTests(),
new AssignTests(),
+ new BoostLockedRegionPriorityTests(),
new BoxTests(),
new BridgeTests(),
new BridgeAnnotationsTests(),
@@ -83,6 +87,7 @@
new ComparisonTests(),
new ConditionalTests(),
new ConstantTests(),
+ new DefUseTests(),
new DxTests(),
new EnumsTests(),
new ExprsimplifierTests(),
@@ -102,6 +107,7 @@
new ReflectTests(),
new ReturnstatementTests(),
new ShrobRuntimeTests(),
+ new SideEffectTests(),
new StringTests(),
new SwitchstatementTests(),
new SynchronizeTests(),
diff --git a/jack-tests/tests/com/android/jack/annotation/processor/AnnotationProcessorTests.java b/jack-tests/tests/com/android/jack/annotation/processor/AnnotationProcessorTests.java
index 354e2b4..942ed8a 100644
--- a/jack-tests/tests/com/android/jack/annotation/processor/AnnotationProcessorTests.java
+++ b/jack-tests/tests/com/android/jack/annotation/processor/AnnotationProcessorTests.java
@@ -23,8 +23,10 @@
import com.android.jack.library.FileTypeDoesNotExistException;
import com.android.jack.library.InputJackLibrary;
import com.android.jack.test.TestsProperties;
+import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.IToolchain;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
import com.android.jack.test.util.ExecFileException;
@@ -118,6 +120,7 @@
}
@Test
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void compileWithAnnotationProcessorAuto_classpath() throws Exception {
List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
exclude.add(JillBasedToolchain.class);
@@ -137,6 +140,7 @@
}
@Test
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void compileWithAnnotationProcessorAuto_processorPath() throws Exception {
List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
exclude.add(JillBasedToolchain.class);
@@ -157,6 +161,7 @@
}
@Test
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void compileWithAnnotationProcessorNoAuto_processorPath() throws Exception {
List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
exclude.add(JillBasedToolchain.class);
diff --git a/jack-tests/tests/com/android/jack/bridge/BridgeTests.java b/jack-tests/tests/com/android/jack/bridge/BridgeTests.java
index 3db60ab..5d02b23 100644
--- a/jack-tests/tests/com/android/jack/bridge/BridgeTests.java
+++ b/jack-tests/tests/com/android/jack/bridge/BridgeTests.java
@@ -24,6 +24,7 @@
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.IToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -151,6 +152,7 @@
public void test009() throws Exception {
new RuntimeTestHelper(TEST009)
.addIgnoredCandidateToolchain(JillBasedToolchain.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.compileAndRunTest();
}
diff --git a/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java b/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
index e7682ab..55cc123 100644
--- a/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
+++ b/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
@@ -29,6 +29,7 @@
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillApiToolchainBase;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.sched.vfs.VPath;
import junit.framework.Assert;
@@ -64,6 +65,7 @@
public void test002() throws Exception {
List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>(1);
exclude.add(JillApiToolchainBase.class);
+ exclude.add(LegacyToolchain.class);
AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class, exclude);
diff --git a/jack-tests/tests/com/android/jack/clinit/ClinitTests.java b/jack-tests/tests/com/android/jack/clinit/ClinitTests.java
index 01262e1..ed3e6f6 100644
--- a/jack-tests/tests/com/android/jack/clinit/ClinitTests.java
+++ b/jack-tests/tests/com/android/jack/clinit/ClinitTests.java
@@ -24,7 +24,7 @@
public class ClinitTests {
public static final String CLASS_WITH_VARIABLE_INIT_BINARY_NAME
- = "com/android/jack/clinit/jack/ClInitWithVariableInit";
+ = "com/android/jack/clinit/test001/jack/ClInitWithVariableInit";
@Test
public void testCompileWithClinit() throws Exception {
@@ -33,7 +33,17 @@
.srcToExe(
AbstractTestTools.createTempDir(),
/* zipFile = */ false,
- AbstractTestTools.getTestRootDir("com.android.jack.clinit.jack"));
+ AbstractTestTools.getTestRootDir("com.android.jack.clinit.test001.jack"));
+ }
+
+ @Test
+ public void testCompileAnnotationWithClinit() throws Exception {
+ IToolchain toolchain = AbstractTestTools.getCandidateToolchain();
+ toolchain.addToClasspath(toolchain.getDefaultBootClasspath())
+ .srcToExe(
+ AbstractTestTools.createTempDir(),
+ /* zipFile = */ false,
+ AbstractTestTools.getTestRootDir("com.android.jack.clinit.test002.jack"));
}
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/clinit/test001/jack/ClInit.java
similarity index 93%
rename from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
rename to jack-tests/tests/com/android/jack/clinit/test001/jack/ClInit.java
index 680f9cf..d4fbee3 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/clinit/test001/jack/ClInit.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.clinit.test001.jack;
public class ClInit {
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java b/jack-tests/tests/com/android/jack/clinit/test001/jack/ClInitWithVariableInit.java
similarity index 93%
rename from jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java
rename to jack-tests/tests/com/android/jack/clinit/test001/jack/ClInitWithVariableInit.java
index 8c344dd..f39d1c8 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java
+++ b/jack-tests/tests/com/android/jack/clinit/test001/jack/ClInitWithVariableInit.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.clinit.test001.jack;
public class ClInitWithVariableInit {
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/clinit/test002/jack/Application.java
similarity index 78%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/clinit/test002/jack/Application.java
index 680f9cf..0cc416e 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/clinit/test002/jack/Application.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.clinit.test002.jack;
-public class ClInit {
-
+class Application {
+ protected Application() { }
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/clinit/test002/jack/Config.java
similarity index 71%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/clinit/test002/jack/Config.java
index 680f9cf..83ed1e6 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/clinit/test002/jack/Config.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,10 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.clinit.test002.jack;
-public class ClInit {
-
+public @interface Config {
+ String s = "A String";
+ int i = 123;
+ Class<Application> DEFAULT_APPLICATION = Application.class;
}
diff --git a/jack-tests/tests/com/android/jack/dx/DxTests.java b/jack-tests/tests/com/android/jack/dx/DxTests.java
index b9293ac..80e530e 100644
--- a/jack-tests/tests/com/android/jack/dx/DxTests.java
+++ b/jack-tests/tests/com/android/jack/dx/DxTests.java
@@ -22,11 +22,13 @@
import com.android.jack.test.category.RuntimeRegressionTest;
import com.android.jack.test.helper.FileChecker;
import com.android.jack.test.helper.RuntimeTestHelper;
+import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.junit.Runtime;
import com.android.jack.test.runtime.RuntimeTest;
import com.android.jack.test.runtime.RuntimeTestInfo;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.IToolchain;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JackApiToolchainBase;
import com.android.jack.test.toolchain.JackApiV02;
import com.android.jack.test.toolchain.JillBasedToolchain;
@@ -209,6 +211,7 @@
}
@Test
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void testCarnacBinaryOr() throws Exception {
File srcDir = AbstractTestTools.getTestRootDir("com.android.jack.dx.jacklibs");
File carnacLib = new File(srcDir, "carnac-binary-or.jack");
diff --git a/jack-tests/tests/com/android/jack/encoding/CompileEncodingTests.java b/jack-tests/tests/com/android/jack/encoding/CompileEncodingTests.java
index 936f0bb..781cba5 100644
--- a/jack-tests/tests/com/android/jack/encoding/CompileEncodingTests.java
+++ b/jack-tests/tests/com/android/jack/encoding/CompileEncodingTests.java
@@ -210,7 +210,7 @@
private void run(@Nonnull String clazz, @Nonnull File binDirectory,
int expected)
throws SecurityException, IllegalArgumentException, RuntimeRunnerException {
- for (RuntimeRunner runner : AbstractTestTools.listRuntimeTestRunners(null)) {
+ for (RuntimeRunner runner : AbstractTestTools.listRuntimeTestRunners()) {
if (runner.runJUnit(
new String[0],
AbstractTestTools.JUNIT_RUNNER_NAME,
diff --git a/jack-tests/tests/com/android/jack/error/AnnotationProcessorErrorTest.java b/jack-tests/tests/com/android/jack/error/AnnotationProcessorErrorTest.java
index eb0c93f..eafe041 100644
--- a/jack-tests/tests/com/android/jack/error/AnnotationProcessorErrorTest.java
+++ b/jack-tests/tests/com/android/jack/error/AnnotationProcessorErrorTest.java
@@ -30,7 +30,9 @@
import com.android.jack.resource.ResourceReadingException;
import com.android.jack.test.TestsProperties;
import com.android.jack.test.helper.ErrorTestHelper;
+import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JackApiToolchainBase;
import junit.framework.Assert;
@@ -58,6 +60,7 @@
* Checks that compilation succeed when running annotation processor to generate resource file.
*/
@Test
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void testAnnotationProcessorError002() throws Exception {
runAnnotProcBuildingResource(new ErrorTestHelper());
}
@@ -67,6 +70,7 @@
* exist.
*/
@Test
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void testAnnotationProcessorError003() throws Exception {
ErrorTestHelper te = new ErrorTestHelper();
diff --git a/jack-tests/tests/com/android/jack/error/FileAccessErrorTest.java b/jack-tests/tests/com/android/jack/error/FileAccessErrorTest.java
index 0b0aae8..16d45f1 100644
--- a/jack-tests/tests/com/android/jack/error/FileAccessErrorTest.java
+++ b/jack-tests/tests/com/android/jack/error/FileAccessErrorTest.java
@@ -24,7 +24,9 @@
import com.android.jack.library.LibraryIOException;
import com.android.jack.library.LibraryReadingException;
import com.android.jack.test.helper.ErrorTestHelper;
+import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JackApiToolchainBase;
import com.android.sched.util.config.PropertyIdException;
import com.android.sched.util.file.WrongPermissionException;
@@ -79,6 +81,7 @@
/**
* Checks that compilation fails correctly when a jack library folder is not readable.
*/
+ @KnownIssue(candidate=IncrementalToolchain.class)
@Test
public void testFileAccessError002() throws Exception {
ErrorTestHelper helper = new ErrorTestHelper();
diff --git a/jack-tests/tests/com/android/jack/fileconflict/FileConflictTests.java b/jack-tests/tests/com/android/jack/fileconflict/FileConflictTests.java
index 8d7ba4f..45fe0e8 100644
--- a/jack-tests/tests/com/android/jack/fileconflict/FileConflictTests.java
+++ b/jack-tests/tests/com/android/jack/fileconflict/FileConflictTests.java
@@ -205,7 +205,6 @@
* @throws Exception
*/
@Test
- @KnownIssue(candidate=IncrementalToolchain.class)
public void test002a() throws Exception {
File jackOutput;
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
@@ -228,7 +227,6 @@
* @throws Exception
*/
@Test
- @KnownIssue(candidate=IncrementalToolchain.class)
public void test002b() throws Exception {
File jackOutput;
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
@@ -252,7 +250,6 @@
* @throws Exception
*/
@Test
- @KnownIssue(candidate=IncrementalToolchain.class)
public void test002c() throws Exception {
File jackOutput;
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
@@ -278,7 +275,6 @@
* @throws Exception
*/
@Test
- @KnownIssue(candidate=IncrementalToolchain.class)
public void test002d() throws Exception {
File jackOutput;
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
@@ -301,7 +297,6 @@
* @throws Exception
*/
@Test
- @KnownIssue(candidate=IncrementalToolchain.class)
public void test002e() throws Exception {
File jackOutput;
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
diff --git a/jack-tests/tests/com/android/jack/frontend/FrontEndTests.java b/jack-tests/tests/com/android/jack/frontend/FrontEndTests.java
index 0b72964..0a41640 100644
--- a/jack-tests/tests/com/android/jack/frontend/FrontEndTests.java
+++ b/jack-tests/tests/com/android/jack/frontend/FrontEndTests.java
@@ -160,6 +160,7 @@
List<Class<? extends IToolchain>> excludeList = new ArrayList<Class<? extends IToolchain>>(1);
excludeList.add(JillBasedToolchain.class);
+ // because test check exact number of output "WARNING" messages
excludeList.add(IncrementalToolchain.class);
IToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeList);
ByteArrayOutputStream out = new ByteArrayOutputStream();
diff --git a/jack-tests/tests/com/android/jack/imports/ImportTests.java b/jack-tests/tests/com/android/jack/imports/ImportTests.java
index 88134fc..f8fcd28 100644
--- a/jack-tests/tests/com/android/jack/imports/ImportTests.java
+++ b/jack-tests/tests/com/android/jack/imports/ImportTests.java
@@ -27,6 +27,7 @@
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillApiToolchainBase;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import junit.framework.Assert;
@@ -48,6 +49,7 @@
File jackOut = AbstractTestTools.createTempDir();
List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
exclude.add(JillApiToolchainBase.class);
+ exclude.add(LegacyToolchain.class);
IToolchain toolchain = AbstractTestTools.getCandidateToolchain(IToolchain.class, exclude);
toolchain.addToClasspath(toolchain.getDefaultBootClasspath())
.srcToLib(
diff --git a/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java b/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java
index d63c60a..80c321c 100644
--- a/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java
+++ b/jack-tests/tests/com/android/jack/jarjar/JarjarTests.java
@@ -26,9 +26,11 @@
import com.android.jack.test.runner.RuntimeRunner;
import com.android.jack.test.runtime.RuntimeTestInfo;
import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
import com.android.jack.test.toolchain.IToolchain;
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.sched.util.RunnableHooks;
import com.android.sched.util.config.ThreadConfig;
import com.android.sched.util.file.InputZipFile;
@@ -87,7 +89,9 @@
@Test
public void jarjar003_1() throws Exception {
- IToolchain toolchain = AbstractTestTools.getCandidateToolchain();
+ List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
+ exclude.add(LegacyToolchain.class);
+ IToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class, exclude);
toolchain.setJarjarRules(
Collections.singletonList(new File(JARJAR003.directory, "jarjar-rules.txt")));
File lib = AbstractTestTools.createTempFile("jarjarTest003Jack", toolchain.getLibraryExtension());
@@ -108,8 +112,9 @@
@Test
@Runtime
public void jarjar004() throws Exception {
-
- IToolchain toolchain = AbstractTestTools.getCandidateToolchain();
+ List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
+ exclude.add(LegacyToolchain.class);
+ IToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class, exclude);
File libToBeRenamed =
AbstractTestTools.createTempFile("jarjarTest004Lib", toolchain.getLibraryExtension());
toolchain.addToClasspath(toolchain.getDefaultBootClasspath())
@@ -175,7 +180,7 @@
/* zipFiles = */ true,
new File(JARJAR004.directory, "lib"));
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
String[] names = {"com.android.jack.jarjar.test004.dontcompile.TestWithRelocatedReference"};
for (RuntimeRunner runner : runnerList) {
Assert.assertEquals(
@@ -196,6 +201,7 @@
public void jarjar005() throws Exception {
List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
exclude.add(JillBasedToolchain.class);
+ exclude.add(LegacyToolchain.class);
IToolchain toolchain = AbstractTestTools.getCandidateToolchain(IToolchain.class, exclude);
File outLib =
AbstractTestTools.createTempFile("jarjarTest005Lib", toolchain.getLibraryExtension());
diff --git a/jack-tests/tests/com/android/jack/java7/EcjMethodHandleTest.java b/jack-tests/tests/com/android/jack/java7/EcjMethodHandleTest.java
index 6407303..029ab2e 100644
--- a/jack-tests/tests/com/android/jack/java7/EcjMethodHandleTest.java
+++ b/jack-tests/tests/com/android/jack/java7/EcjMethodHandleTest.java
@@ -106,7 +106,7 @@
File dexFile = new File(dexOutDir, "classes.dex");
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
((AbstractRuntimeRunner) runner).setOutputStream(out);
diff --git a/jack-tests/tests/com/android/jack/java7/EcjPolymorphicSignatureTest.java b/jack-tests/tests/com/android/jack/java7/EcjPolymorphicSignatureTest.java
index 58348fc..aee81d0 100644
--- a/jack-tests/tests/com/android/jack/java7/EcjPolymorphicSignatureTest.java
+++ b/jack-tests/tests/com/android/jack/java7/EcjPolymorphicSignatureTest.java
@@ -99,7 +99,7 @@
File dexFile = new File(dexOutDir, "classes.dex");
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
((AbstractRuntimeRunner) runner).setOutputStream(out);
diff --git a/jack-tests/tests/com/android/jack/java7/InvokePolymorphicTests.java b/jack-tests/tests/com/android/jack/java7/InvokePolymorphicTests.java
index 349cddf..a4b3f9b 100644
--- a/jack-tests/tests/com/android/jack/java7/InvokePolymorphicTests.java
+++ b/jack-tests/tests/com/android/jack/java7/InvokePolymorphicTests.java
@@ -30,6 +30,7 @@
import com.android.jack.test.helper.RuntimeTestHelper;
import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.junit.Runtime;
+import com.android.jack.test.junit.RuntimeVersion;
import com.android.jack.test.runtime.RuntimeTestInfo;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.JackApiToolchainBase;
@@ -107,42 +108,42 @@
});
@Test
- @Runtime
+ @Runtime(from=RuntimeVersion.O)
@KnownIssue
public void testInvokePolymorphic001() throws Exception {
run(INVOKE_POLYMORPHIC_001);
}
@Test
- @Runtime
+ @Runtime(from=RuntimeVersion.O)
@KnownIssue
public void testInvokePolymorphic002() throws Exception {
run(INVOKE_POLYMORPHIC_002);
}
@Test
- @Runtime
+ @Runtime(from=RuntimeVersion.O)
@KnownIssue
public void testInvokePolymorphic003() throws Exception {
run(INVOKE_POLYMORPHIC_003);
}
@Test
- @Runtime
+ @Runtime(from=RuntimeVersion.O)
@KnownIssue
public void testInvokePolymorphic004() throws Exception {
run(INVOKE_POLYMORPHIC_004);
}
@Test
- @Runtime
+ @Runtime(from=RuntimeVersion.O)
@KnownIssue
public void testInvokePolymorphic005() throws Exception {
run(INVOKE_POLYMORPHIC_005);
}
@Test
- @Runtime
+ @Runtime(from=RuntimeVersion.O)
@KnownIssue
public void testInvokePolymorphic006() throws Exception {
run(INVOKE_POLYMORPHIC_006);
@@ -198,7 +199,7 @@
}
@Test
- @Runtime
+ @Runtime(from=RuntimeVersion.O)
@KnownIssue
public void testInvokePolymorphic007() throws Exception {
run(INVOKE_POLYMORPHIC_007);
diff --git a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test001/test.properties b/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test001/test.properties
deleted file mode 100644
index f2a3478..0000000
--- a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test001/test.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-rt.args.ArtRunnerHost=-Xexperimental:method-handles
-rt.args.ArtRunnerDevice=-Xexperimental:method-handles
diff --git a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test002/test.properties b/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test002/test.properties
deleted file mode 100644
index f2a3478..0000000
--- a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test002/test.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-rt.args.ArtRunnerHost=-Xexperimental:method-handles
-rt.args.ArtRunnerDevice=-Xexperimental:method-handles
diff --git a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test003/test.properties b/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test003/test.properties
deleted file mode 100644
index f2a3478..0000000
--- a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test003/test.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-rt.args.ArtRunnerHost=-Xexperimental:method-handles
-rt.args.ArtRunnerDevice=-Xexperimental:method-handles
diff --git a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test004/test.properties b/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test004/test.properties
deleted file mode 100644
index f2a3478..0000000
--- a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test004/test.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-rt.args.ArtRunnerHost=-Xexperimental:method-handles
-rt.args.ArtRunnerDevice=-Xexperimental:method-handles
diff --git a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test005/test.properties b/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test005/test.properties
deleted file mode 100644
index f2a3478..0000000
--- a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test005/test.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-rt.args.ArtRunnerHost=-Xexperimental:method-handles
-rt.args.ArtRunnerDevice=-Xexperimental:method-handles
diff --git a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test006/test.properties b/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test006/test.properties
deleted file mode 100644
index f2a3478..0000000
--- a/jack-tests/tests/com/android/jack/java7/invokepolymorphic/test006/test.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-rt.args.ArtRunnerHost=-Xexperimental:method-handles
-rt.args.ArtRunnerDevice=-Xexperimental:method-handles
diff --git a/jack-tests/tests/com/android/jack/java8/AnnotationTest.java b/jack-tests/tests/com/android/jack/java8/AnnotationTest.java
index ee84d6d..f479aae 100644
--- a/jack-tests/tests/com/android/jack/java8/AnnotationTest.java
+++ b/jack-tests/tests/com/android/jack/java8/AnnotationTest.java
@@ -175,7 +175,7 @@
@Nonnull
private void run(@Nonnull String mainClass, @Nonnull File[] dexFiles) throws Exception {
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
Assert.assertEquals(0, runner.runJUnit(new String[0], AbstractTestTools.JUNIT_RUNNER_NAME,
new String[] {mainClass}, dexFiles));
diff --git a/jack-tests/tests/com/android/jack/java8/BridgeTestPostM.java b/jack-tests/tests/com/android/jack/java8/BridgeTestPostM.java
index 085c7ed..2676061 100644
--- a/jack-tests/tests/com/android/jack/java8/BridgeTestPostM.java
+++ b/jack-tests/tests/com/android/jack/java8/BridgeTestPostM.java
@@ -56,8 +56,7 @@
public void testBridge002() throws Exception {
new RuntimeTestHelper(BRIDGE002)
.setSourceLevel(SourceLevel.JAVA_8)
- .addProperty(Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ .setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.addIgnoredCandidateToolchain(JackApiV01.class).compileAndRunTest();
}
@@ -93,12 +92,11 @@
toolchain instanceof JackApiV03Toolchain);
File lib23 =
AbstractTestTools.createTempFile("lib23", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
- .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
- .setSourceLevel(SourceLevel.JAVA_8)
- .addToClasspath(toolchain.getDefaultBootClasspath());
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()));
+ toolchain
+ .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
+ .setSourceLevel(SourceLevel.JAVA_8)
+ .addToClasspath(toolchain.getDefaultBootClasspath());
if (!pre04 && enablePredexing) {
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
@@ -117,9 +115,7 @@
File dex24 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.libToExe(lib23, dex24, /* zipFiles = */ false);
// Run to check everything went as expected
@@ -143,9 +139,7 @@
AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeClazz);
File lib23 =
AbstractTestTools.createTempFile("lib23", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.setSourceLevel(SourceLevel.JAVA_8)
.addToClasspath(toolchain.getDefaultBootClasspath())
.srcToLib(lib23,
@@ -153,9 +147,7 @@
File dex24 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.libToExe(lib23, dex24, /* zipFiles = */ false);
// Run to check everything went as expected
@@ -196,10 +188,9 @@
toolchain instanceof JackApiV03Toolchain);
File lib23 =
AbstractTestTools.createTempFile("lib23", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
- .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()));
+ toolchain
+ .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
.setSourceLevel(SourceLevel.JAVA_8)
.addToClasspath(toolchain.getDefaultBootClasspath());
@@ -221,9 +212,7 @@
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
File dex23 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()))
.setErrorStream(errOut);
try {
toolchain.libToExe(lib23, dex23, /* zipFiles = */ false);
@@ -248,9 +237,7 @@
AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeClazz);
File lib24 =
AbstractTestTools.createTempFile("lib24", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(24))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.setSourceLevel(SourceLevel.JAVA_8)
.addToClasspath(toolchain.getDefaultBootClasspath())
.srcToLib(lib24,
@@ -259,9 +246,7 @@
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
File dex23 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()))
.setErrorStream(errOut);
try {
toolchain.libToExe(lib24, dex23, /* zipFiles = */ false);
diff --git a/jack-tests/tests/com/android/jack/java8/DefaultMethodTest.java b/jack-tests/tests/com/android/jack/java8/DefaultMethodTest.java
index a9866a5..0d87df1 100644
--- a/jack-tests/tests/com/android/jack/java8/DefaultMethodTest.java
+++ b/jack-tests/tests/com/android/jack/java8/DefaultMethodTest.java
@@ -202,9 +202,7 @@
File lib24 =
AbstractTestTools.createTempFile("lib24", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.setSourceLevel(SourceLevel.JAVA_8)
.addToClasspath(toolchain.getDefaultBootClasspath())
.srcToLib(lib24,
@@ -213,9 +211,7 @@
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
File dex23 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()))
.setErrorStream(errOut);
try {
toolchain.libToExe(lib24, dex23, /* zipFiles = */ false);
@@ -258,12 +254,11 @@
toolchain instanceof JackApiV03);
File lib23 =
AbstractTestTools.createTempFile("lib23", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
- .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
- .setSourceLevel(SourceLevel.JAVA_8)
- .addToClasspath(toolchain.getDefaultBootClasspath());
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()));
+ toolchain
+ .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
+ .setSourceLevel(SourceLevel.JAVA_8)
+ .addToClasspath(toolchain.getDefaultBootClasspath());
if (enablePredexing) {
// When enabling predexing, we should have run the checker and fail due to the presence
@@ -293,9 +288,7 @@
ByteArrayOutputStream errOut = new ByteArrayOutputStream();
File dex23 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()))
.setErrorStream(errOut);
try {
toolchain.libToExe(lib23, dex23, /* zipFiles = */ false);
@@ -334,12 +327,11 @@
AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeClazz);
File lib23 =
AbstractTestTools.createTempFile("lib23", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(23))
- .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
- .setSourceLevel(SourceLevel.JAVA_8)
- .addToClasspath(toolchain.getDefaultBootClasspath());
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.M.getLevel()));
+ toolchain
+ .addProperty(Options.GENERATE_DEX_IN_LIBRARY.getName(), Boolean.toString(enablePredexing))
+ .setSourceLevel(SourceLevel.JAVA_8)
+ .addToClasspath(toolchain.getDefaultBootClasspath());
if (enablePredexing) {
boolean pre04 = (toolchain instanceof JackApiV01 ||
@@ -368,9 +360,7 @@
File dex24 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.libToExe(lib23, dex24, /* zipFiles = */ false);
// Run to check everything went as expected
@@ -395,9 +385,7 @@
AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeClazz);
File lib24 =
AbstractTestTools.createTempFile("lib24", toolchain.getLibraryExtension());
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.setSourceLevel(SourceLevel.JAVA_8)
.addToClasspath(toolchain.getDefaultBootClasspath())
.srcToLib(lib24,
@@ -405,9 +393,7 @@
File dex24 = AbstractTestTools.createTempDir();
toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeClazz);
- toolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.libToExe(lib24, dex24, /* zipFiles = */ false);
// Run to check everything went as expected
@@ -527,11 +513,9 @@
private void run(@Nonnull RuntimeTestInfo rti) throws Exception {
new RuntimeTestHelper(rti)
- .addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.setSourceLevel(SourceLevel.JAVA_8)
.addIgnoredCandidateToolchain(JackApiV01.class)
+ .setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.compileAndRunTest();
}
}
diff --git a/jack-tests/tests/com/android/jack/java8/EcjInterfaceMethodsTest.java b/jack-tests/tests/com/android/jack/java8/EcjInterfaceMethodsTest.java
index d0727e0..e788f52 100644
--- a/jack-tests/tests/com/android/jack/java8/EcjInterfaceMethodsTest.java
+++ b/jack-tests/tests/com/android/jack/java8/EcjInterfaceMethodsTest.java
@@ -16,7 +16,6 @@
package com.android.jack.java8;
-import com.android.jack.Options;
import com.android.jack.test.eclipse.jdt.core.tests.compiler.regression.InterfaceMethodsTest;
import com.android.jack.test.runner.AbstractRuntimeRunner;
import com.android.jack.test.runner.RuntimeRunner;
@@ -156,9 +155,8 @@
// Build dex file
jackToolchain.addToClasspath(jackToolchain.getDefaultBootClasspath());
jackToolchain.setSourceLevel(SourceLevel.JAVA_8);
- jackToolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
+ jackToolchain
+ .setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
jackToolchain.srcToExe(dexOutDir, /* zipFile = */ false, sourceFolder);
} catch (Exception e) {
e.printStackTrace();
@@ -170,27 +168,27 @@
@Override
public void runConformTest(String[] srcDescription, String expectedResult) {
- // Build dex file
- List<Class<? extends IToolchain>> excludeList = new ArrayList<Class<? extends IToolchain>>(1);
- excludeList.add(JackApiV01.class);
+ // Build dex file
+ List<Class<? extends IToolchain>> excludeList = new ArrayList<Class<? extends IToolchain>>(1);
+ excludeList.add(JackApiV01.class);
- JackBasedToolchain jackToolchain = null;
- try {
- jackToolchain =
- AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeList);
- } catch (AssumptionViolatedException e) {
- // Handle JUnit4 feature in JUnit3 tests.
- return;
- }
+ JackBasedToolchain jackToolchain = null;
+ try {
+ jackToolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeList);
+ } catch (AssumptionViolatedException e) {
+ // Handle JUnit4 feature in JUnit3 tests.
+ return;
+ }
- jackToolchain.addToClasspath(jackToolchain.getDefaultBootClasspath());
- jackToolchain.setSourceLevel(SourceLevel.JAVA_8);
- jackToolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
+ jackToolchain.addToClasspath(jackToolchain.getDefaultBootClasspath());
+ jackToolchain.setSourceLevel(SourceLevel.JAVA_8);
try {
+ jackToolchain
+ .setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
+
File dexOutDir = AbstractTestTools.createTempDir();
File sourceFolder = buildSourceFolder(srcDescription);
@@ -199,7 +197,7 @@
File dexFile = new File(dexOutDir, "classes.dex");
List<RuntimeRunner> runnerList =
- AbstractTestTools.listRuntimeTestRunners(/* properties = */ null);
+ AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
((AbstractRuntimeRunner) runner).setOutputStream(out);
diff --git a/jack-tests/tests/com/android/jack/java8/EcjLambdaTest.java b/jack-tests/tests/com/android/jack/java8/EcjLambdaTest.java
index c9ee4b8..e262210 100644
--- a/jack-tests/tests/com/android/jack/java8/EcjLambdaTest.java
+++ b/jack-tests/tests/com/android/jack/java8/EcjLambdaTest.java
@@ -20,10 +20,11 @@
import com.android.jack.test.runner.AbstractRuntimeRunner;
import com.android.jack.test.runner.RuntimeRunner;
import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
import com.android.jack.test.toolchain.IToolchain;
import com.android.jack.test.toolchain.JackApiV01;
-import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import com.android.sched.util.file.CannotChangePermissionException;
import com.android.sched.util.file.CannotCreateFileException;
@@ -82,8 +83,11 @@
}
@Nonnull
- private static final List<String> testBugECJ =
- Arrays.asList("test055");
+ private static final List<String> testBugJavac = Arrays.asList("test430035d",
+ "test430035e", "test428261a", "test044", "test051", "testReferenceExpressionInference3a");
+
+ @Nonnull
+ private static final List<String> testBugECJ = Arrays.asList("test055");
@Nonnull
private static final List<String> testWithOtherErrorMsg =
@@ -134,6 +138,7 @@
// These tests must be exclude from the Jill tool-chain because they do not compile with it
if (getName().equals("testReferenceExpressionInference3a")) {
excludeList.add(JillBasedToolchain.class);
+ excludeList.add(LegacyToolchain.class);
}
excludeList.add(JackApiV01.class);
@@ -142,7 +147,7 @@
File dexOutDir = AbstractTestTools.createTempDir();
// Build dex file
- JackBasedToolchain jackToolchain = createToolchain(excludeList);
+ AndroidToolchain jackToolchain = createToolchain(excludeList);
jackToolchain.srcToExe(dexOutDir, /* zipFile = */ false, sourceFolder);
} catch (AssumptionViolatedException e) {
// Handle JUnit4 feature in JUnit3 tests.
@@ -169,6 +174,10 @@
if (getName().equals("test051")) {
excludeList.add(JillBasedToolchain.class);
}
+ if (testBugJavac.contains(getName())) {
+ // This tests does not compile with Javac exclude them
+ excludeList.add(LegacyToolchain.class);
+ }
excludeList.add(JackApiV01.class);
try {
@@ -176,12 +185,12 @@
File sourceFolder = buildSourceFolder(srcDescription);
// Build dex file
- JackBasedToolchain jackToolchain = createToolchain(excludeList);
+ AndroidToolchain jackToolchain = createToolchain(excludeList);
jackToolchain.srcToExe(dexOutDir, /* zipFile = */ false, sourceFolder);
File dexFile = new File(dexOutDir, "classes.dex");
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
((AbstractRuntimeRunner) runner).setOutputStream(out);
@@ -226,12 +235,12 @@
return sourceFolder;
}
- protected JackBasedToolchain createToolchain(
- @Nonnull List<Class<? extends IToolchain>> excludeList) throws AssumptionViolatedException {
+ protected AndroidToolchain createToolchain(
+ @Nonnull List<Class<? extends IToolchain>> excludeList) throws Exception {
- JackBasedToolchain jackToolchain = null;
+ AndroidToolchain jackToolchain = null;
jackToolchain =
- AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeList);
+ AbstractTestTools.getCandidateToolchain(AndroidToolchain.class, excludeList);
File[] bootclasspath = jackToolchain.getDefaultBootClasspath();
jackToolchain.addToClasspath(bootclasspath);
diff --git a/jack-tests/tests/com/android/jack/java8/EcjLambdaTestPostM.java b/jack-tests/tests/com/android/jack/java8/EcjLambdaTestPostM.java
index 519f072..efa50df 100644
--- a/jack-tests/tests/com/android/jack/java8/EcjLambdaTestPostM.java
+++ b/jack-tests/tests/com/android/jack/java8/EcjLambdaTestPostM.java
@@ -16,16 +16,14 @@
package com.android.jack.java8;
-import com.android.jack.Options;
+import com.android.jack.test.toolchain.AndroidToolchain;
import com.android.jack.test.toolchain.IToolchain;
-import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.util.AndroidApiLevel;
import junit.framework.Assert;
import junit.framework.JUnit4TestAdapter;
import junit.framework.Test;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.runner.Description;
import org.junit.runner.manipulation.Filter;
import org.junit.runner.manipulation.NoTestsRemainException;
@@ -80,13 +78,11 @@
}
@Override
- protected JackBasedToolchain createToolchain(
- @Nonnull List<Class<? extends IToolchain>> excludeList) throws AssumptionViolatedException {
- JackBasedToolchain jackToolchain = super.createToolchain(excludeList);
- jackToolchain.addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
- return jackToolchain;
+ protected AndroidToolchain createToolchain(
+ @Nonnull List<Class<? extends IToolchain>> excludeList) throws Exception {
+ AndroidToolchain toolchain = super.createToolchain(excludeList);
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
+ return toolchain;
}
}
diff --git a/jack-tests/tests/com/android/jack/java8/ExplicitReceiverTest.java b/jack-tests/tests/com/android/jack/java8/ExplicitReceiverTest.java
new file mode 100644
index 0000000..8f0f162
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/ExplicitReceiverTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.java8;
+
+import com.android.jack.test.helper.RuntimeTestHelper;
+import com.android.jack.test.junit.Runtime;
+import com.android.jack.test.runtime.RuntimeTestInfo;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.JackApiV01;
+import com.android.jack.test.toolchain.Toolchain.SourceLevel;
+
+import org.junit.Test;
+
+import javax.annotation.Nonnull;
+
+
+/**
+ * JUnit test for compilation of explicit receiver usage.
+ */
+public class ExplicitReceiverTest {
+
+ private final RuntimeTestInfo EXPLICIT_RECEIVER_001 = new RuntimeTestInfo(
+ AbstractTestTools.getTestRootDir("com.android.jack.java8.explicitreceiver.test001"),
+ "com.android.jack.java8.explicitreceiver.test001.Tests").setSrcDirName("");
+
+ private final RuntimeTestInfo EXPLICIT_RECEIVER_002 = new RuntimeTestInfo(
+ AbstractTestTools.getTestRootDir("com.android.jack.java8.explicitreceiver.test002"),
+ "com.android.jack.java8.explicitreceiver.test002.Tests").setSrcDirName("");
+
+ @Test
+ @Runtime
+ public void testExplicitReceiver001() throws Exception {
+ run(EXPLICIT_RECEIVER_001);
+ }
+
+ @Test
+ @Runtime
+ public void testExplicitReceiver002() throws Exception {
+ run(EXPLICIT_RECEIVER_002);
+ }
+
+
+ private void run(@Nonnull RuntimeTestInfo rti) throws Exception {
+ new RuntimeTestHelper(rti)
+ .setSourceLevel(SourceLevel.JAVA_8)
+ .addIgnoredCandidateToolchain(JackApiV01.class)
+ .compileAndRunTest();
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/java8/GwtTest.java b/jack-tests/tests/com/android/jack/java8/GwtTest.java
index 1bc2b9c..4a0209c 100644
--- a/jack-tests/tests/com/android/jack/java8/GwtTest.java
+++ b/jack-tests/tests/com/android/jack/java8/GwtTest.java
@@ -26,6 +26,7 @@
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.JackApiV01;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.jack.test.toolchain.Toolchain.SourceLevel;
@@ -279,6 +280,7 @@
.addIgnoredCandidateToolchain(JackApiV01.class)
// This test must be exclude from the Jill tool-chain because it does not compile with it
.addIgnoredCandidateToolchain(JillBasedToolchain.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.compileAndRunTest();
}
diff --git a/jack-tests/tests/com/android/jack/java8/GwtTestPostM.java b/jack-tests/tests/com/android/jack/java8/GwtTestPostM.java
index 6d5ca0e..339c05c 100644
--- a/jack-tests/tests/com/android/jack/java8/GwtTestPostM.java
+++ b/jack-tests/tests/com/android/jack/java8/GwtTestPostM.java
@@ -16,7 +16,6 @@
package com.android.jack.java8;
-import com.android.jack.Options;
import com.android.jack.test.helper.RuntimeTestHelper;
import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.junit.Runtime;
@@ -230,8 +229,7 @@
private void run(@Nonnull RuntimeTestInfo rti) throws Exception {
new RuntimeTestHelper(rti).setSourceLevel(SourceLevel.JAVA_8)
- .addProperty(Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ .setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.compileAndRunTest();
}
diff --git a/jack-tests/tests/com/android/jack/java8/IntersectionTypeTest.java b/jack-tests/tests/com/android/jack/java8/IntersectionTypeTest.java
index 48c087d..449c2a7 100644
--- a/jack-tests/tests/com/android/jack/java8/IntersectionTypeTest.java
+++ b/jack-tests/tests/com/android/jack/java8/IntersectionTypeTest.java
@@ -27,6 +27,8 @@
import com.android.jack.test.toolchain.JackApiV01;
import com.android.jack.test.toolchain.JackCliToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyJillToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import junit.framework.Assert;
@@ -100,6 +102,7 @@
.addProperty(Options.LAMBDA_TO_ANONYMOUS_CONVERTER.getName(), Boolean.TRUE.toString())
.addIgnoredCandidateToolchain(JackCliToolchain.class)
.addIgnoredCandidateToolchain(JackApiV01.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.compileAndRunTest();
Assert.fail();
} catch (FrontendCompilationException e) {
@@ -115,6 +118,7 @@
.addProperty(Options.LAMBDA_TO_ANONYMOUS_CONVERTER.getName(), Boolean.TRUE.toString())
.addIgnoredCandidateToolchain(JackCliToolchain.class)
.addIgnoredCandidateToolchain(JackApiV01.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.compileAndRunTest();
Assert.fail();
} catch (FrontendCompilationException e) {
diff --git a/jack-tests/tests/com/android/jack/java8/Java8AllTest.java b/jack-tests/tests/com/android/jack/java8/Java8AllTest.java
index dcf4ca7..c4756b3 100644
--- a/jack-tests/tests/com/android/jack/java8/Java8AllTest.java
+++ b/jack-tests/tests/com/android/jack/java8/Java8AllTest.java
@@ -41,8 +41,12 @@
AnnotationTest.class,
BridgeTestPreN.class,
EcjLambdaTest.class,
+ ExplicitReceiverTest.class,
GwtTest.class,
IntersectionTypeTest.class,
+ LambdaGroupByPackageShrinkTests.class,
+ LambdaGroupByTypeShrinkTests.class,
+ LambdaNoGroupingShrinkTests.class,
LambdaTest.class,
MethodRefTest.class,
TypeInferenceTest.class,
diff --git a/jack-tests/tests/com/android/jack/java8/LambdaGroupByPackageShrinkTests.java b/jack-tests/tests/com/android/jack/java8/LambdaGroupByPackageShrinkTests.java
new file mode 100644
index 0000000..81ae6af
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/LambdaGroupByPackageShrinkTests.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.java8;
+
+import com.android.jack.Options;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+
+import javax.annotation.Nonnull;
+
+public class LambdaGroupByPackageShrinkTests extends LambdaNoGroupingShrinkTests {
+
+
+ @Override
+ @Nonnull
+ protected JackBasedToolchain getToolchain() {
+ return super.getToolchain().addProperty(Options.LAMBDA_GROUPING_SCOPE.getName(), "package");
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/java8/LambdaGroupByTypeShrinkTests.java b/jack-tests/tests/com/android/jack/java8/LambdaGroupByTypeShrinkTests.java
new file mode 100644
index 0000000..747f049
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/LambdaGroupByTypeShrinkTests.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.java8;
+
+import com.android.jack.Options;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+
+import javax.annotation.Nonnull;
+
+public class LambdaGroupByTypeShrinkTests extends LambdaNoGroupingShrinkTests {
+
+
+ @Override
+ @Nonnull
+ protected JackBasedToolchain getToolchain() {
+ return super.getToolchain().addProperty(Options.LAMBDA_GROUPING_SCOPE.getName(), "type");
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/java8/LambdaNoGroupingShrinkTests.java b/jack-tests/tests/com/android/jack/java8/LambdaNoGroupingShrinkTests.java
new file mode 100644
index 0000000..8ce06b5
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/LambdaNoGroupingShrinkTests.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.java8;
+
+import com.android.jack.Options;
+import com.android.jack.test.helper.RuntimeTestHelper;
+import com.android.jack.test.junit.Runtime;
+import com.android.jack.test.runtime.RuntimeTestInfo;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.IToolchain;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.Toolchain.SourceLevel;
+
+import org.junit.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Nonnull;
+
+public class LambdaNoGroupingShrinkTests {
+
+ @Nonnull
+ private File PROGUARD_SHRINK_NOTHING = new File(
+ AbstractTestTools.getTestRootDir("com.android.jack.java8.lambda.test044"),
+ "shrink-nothing.flags");
+
+ @Nonnull
+ private RuntimeTestInfo TEST001 = new RuntimeTestInfo(
+ AbstractTestTools.getTestRootDir("com.android.jack.java8.lambda.test044"),
+ "com.android.jack.java8.lambda.test044.jack.Tests");
+
+ @Test
+ @Runtime
+ public void testLamba044_whole() throws Exception {
+
+ File lib = makeLibrary(new File[]{}, TEST001.directory);
+
+ test(TEST001.jUnit, lib);
+ }
+
+ @Test
+ @Runtime
+ public void testLamba044_ByLib() throws Exception {
+
+ File lib2 = makeLibrary(new File[]{}, new File(TEST001.directory, "lib2"));
+ File lib1 = makeLibrary(new File[]{lib2}, new File(TEST001.directory, "lib1"));
+ File libJack = makeLibrary(new File[]{lib2, lib1}, new File(TEST001.directory, "jack"));
+
+ test(TEST001.jUnit, lib2, lib1, libJack);
+
+ }
+
+ @Test
+ @Runtime
+ public void testLamba044_ByTestClass() throws Exception {
+
+ File libs = makeLibrary(new File[]{},
+ new File(TEST001.directory, "lib1"), new File(TEST001.directory, "lib2"));
+ File b2 = makeLibrary(new File[]{libs}, new File(TEST001.directory, "jack/B2.java"));
+ File b3 = makeLibrary(new File[]{libs}, new File(TEST001.directory, "jack/B3.java"));
+ File test = makeLibrary(new File[]{libs, b2, b3},
+ new File(TEST001.directory, "jack/Tests.java"));
+
+ test(TEST001.jUnit, libs, b2, b3, test);
+
+ }
+
+ @Test
+ @Runtime
+ public void testLamba044_ClassConflict() throws Exception {
+
+ File libs = makeLibrary(new File[]{},
+ new File(TEST001.directory, "lib1"), new File(TEST001.directory, "lib2"));
+ File lib2A3 = makeLibrary(new File[]{libs}, new File(TEST001.directory, "lib2/A3.java"));
+ File b2 = makeLibrary(new File[]{libs}, new File(TEST001.directory, "jack/B2.java"));
+ File b3 = makeLibrary(new File[]{libs}, new File(TEST001.directory, "jack/B3.java"));
+ File test = makeLibrary(new File[]{libs, lib2A3, b2, b3},
+ new File(TEST001.directory, "jack/Tests.java"));
+
+ test(TEST001.jUnit, libs, b2, b3, test);
+
+ }
+
+ @Test
+ @Runtime
+ public void testLamba044_PackageConflict() throws Exception {
+
+ File libs = makeLibrary(new File[]{},
+ new File(TEST001.directory, "lib1"), new File(TEST001.directory, "lib2"));
+ File lib2 = makeLibrary(new File[]{}, new File(TEST001.directory, "lib2/"));
+ File b2 = makeLibrary(new File[]{libs}, new File(TEST001.directory, "jack/B2.java"));
+ File b3 = makeLibrary(new File[]{libs}, new File(TEST001.directory, "jack/B3.java"));
+ File test = makeLibrary(new File[]{libs, lib2, b2, b3},
+ new File(TEST001.directory, "jack/Tests.java"));
+
+ test(TEST001.jUnit, libs, b2, b3, test);
+
+ }
+
+ @Nonnull
+ protected File makeLibrary(@Nonnull File[] classpath, @Nonnull File... src) throws Exception {
+ JackBasedToolchain toolchain = getToolchain();
+
+ File lib = AbstractTestTools.createTempFile("lib", ".jack");
+ toolchain
+ .addToClasspath(toolchain.getDefaultBootClasspath())
+ .addToClasspath(classpath)
+ .setSourceLevel(SourceLevel.JAVA_8)
+ .addProguardFlags(PROGUARD_SHRINK_NOTHING)
+ .srcToLib(lib, /* zipFiles = */ true, src);
+
+ return lib;
+ }
+
+ @Nonnull
+ protected void test(@Nonnull String test, @Nonnull File... libs) throws Exception {
+ JackBasedToolchain toolchain = getToolchain();
+
+ File dex = AbstractTestTools.createTempFile("dex", ".jar");
+ toolchain
+ .setSourceLevel(SourceLevel.JAVA_8)
+ .addProguardFlags(PROGUARD_SHRINK_NOTHING)
+ .libToExe(libs, dex, /* zipFiles = */ true);
+
+ RuntimeTestHelper.runOnRuntimeEnvironments(
+ Collections.singletonList(test),
+ RuntimeTestHelper.getJunitDex(), dex);
+
+ }
+
+ @Nonnull
+ protected JackBasedToolchain getToolchain() {
+ List<Class<? extends IToolchain>> excludedToolchains =
+ new ArrayList<Class<? extends IToolchain>>();
+ excludedToolchains.add(JillBasedToolchain.class);
+ JackBasedToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludedToolchains);
+ return toolchain.addProperty(Options.LAMBDA_GROUPING_SCOPE.getName(), "none");
+ }
+
+}
diff --git a/jack-tests/tests/com/android/jack/java8/LambdaTest.java b/jack-tests/tests/com/android/jack/java8/LambdaTest.java
index 1a38df4..f380328 100644
--- a/jack-tests/tests/com/android/jack/java8/LambdaTest.java
+++ b/jack-tests/tests/com/android/jack/java8/LambdaTest.java
@@ -34,6 +34,7 @@
import com.android.jack.test.toolchain.JackApiV03;
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import junit.framework.Assert;
@@ -335,6 +336,7 @@
.setSourceLevel(SourceLevel.JAVA_8)
// This test must be exclude from the Jill tool-chain because it does not compile with it
.addIgnoredCandidateToolchain(JillBasedToolchain.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.addIgnoredCandidateToolchain(JackApiV01.class)
.setWithDebugInfos(true)
.compileAndRunTest();
@@ -866,7 +868,7 @@
}
private void run(@Nonnull String mainClass, @Nonnull File[] dexFiles) throws Exception {
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
Assert.assertEquals(0, runner.runJUnit(new String[0], AbstractTestTools.JUNIT_RUNNER_NAME,
new String[] {mainClass}, dexFiles));
diff --git a/jack-tests/tests/com/android/jack/java8/LambdaTestPostM.java b/jack-tests/tests/com/android/jack/java8/LambdaTestPostM.java
index 5095ac6..a58b1da 100644
--- a/jack-tests/tests/com/android/jack/java8/LambdaTestPostM.java
+++ b/jack-tests/tests/com/android/jack/java8/LambdaTestPostM.java
@@ -16,7 +16,6 @@
package com.android.jack.java8;
-import com.android.jack.Options;
import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.test.TestsProperties;
import com.android.jack.test.junit.KnownIssue;
@@ -76,8 +75,7 @@
toolchain =
AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludedToolchains);
File libDexFolder = AbstractTestTools.createTempDir();
- toolchain.addProperty(Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
+ toolchain.setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()));
toolchain.addToClasspath(defaultClasspath).setSourceLevel(SourceLevel.JAVA_8).libToExe(lib,
libDexFolder, /* zipFiles = */ false);
@@ -97,7 +95,7 @@
}
private void run(@Nonnull String mainClass, @Nonnull File[] dexFiles) throws Exception {
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
for (RuntimeRunner runner : runnerList) {
Assert.assertEquals(0, runner.runJUnit(new String[0], AbstractTestTools.JUNIT_RUNNER_NAME,
new String[] {mainClass}, dexFiles));
diff --git a/jack-tests/tests/com/android/jack/java8/MethodRefTest.java b/jack-tests/tests/com/android/jack/java8/MethodRefTest.java
index 81cbddf..14be799 100644
--- a/jack-tests/tests/com/android/jack/java8/MethodRefTest.java
+++ b/jack-tests/tests/com/android/jack/java8/MethodRefTest.java
@@ -22,6 +22,7 @@
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.JackApiV01;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import org.junit.Test;
@@ -180,6 +181,7 @@
// This test must be exclude from the Jill tool-chain because it does not compile with it
.addIgnoredCandidateToolchain(JillBasedToolchain.class)
.addIgnoredCandidateToolchain(JackApiV01.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.compileAndRunTest();
}
diff --git a/jack-tests/tests/com/android/jack/java8/ParameterNameTest.java b/jack-tests/tests/com/android/jack/java8/ParameterNameTest.java
index be751f7..af45caa 100644
--- a/jack-tests/tests/com/android/jack/java8/ParameterNameTest.java
+++ b/jack-tests/tests/com/android/jack/java8/ParameterNameTest.java
@@ -26,13 +26,14 @@
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.JackApiV01;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import junit.framework.Assert;
+import org.jf.dexlib.ClassDataItem.EncodedMethod;
import org.jf.dexlib.DexFile;
import org.jf.dexlib.StringIdItem;
-import org.jf.dexlib.ClassDataItem.EncodedMethod;
import org.junit.Test;
import java.io.File;
@@ -45,45 +46,59 @@
*/
public class ParameterNameTest {
+ private File extraJavaFile =
+ new File(AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.common"),
+ "ParameterTestModifier.java");
+
private RuntimeTestInfo PARAMETER001 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test001"),
- "com.android.jack.java8.parameter.test001.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test001.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER002 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test002"),
- "com.android.jack.java8.parameter.test002.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test002.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER003 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test003"),
- "com.android.jack.java8.parameter.test003.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test003.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER004 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test004"),
- "com.android.jack.java8.parameter.test004.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test004.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER005 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test005"),
- "com.android.jack.java8.parameter.test005.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test005.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER006 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test006"),
- "com.android.jack.java8.parameter.test006.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test006.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER007 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test007"),
- "com.android.jack.java8.parameter.test007.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test007.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER008 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test008"),
- "com.android.jack.java8.parameter.test008.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test008.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER009 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test009"),
- "com.android.jack.java8.parameter.test009.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test009.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
private RuntimeTestInfo PARAMETER010 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.java8.parameter.test010"),
- "com.android.jack.java8.parameter.test010.Tests").setSrcDirName("");
+ "com.android.jack.java8.parameter.test010.Tests").setSrcDirName("")
+ .addCandidateExtraSources(extraJavaFile);
@Test
@Runtime(from=RuntimeVersion.O)
@@ -98,6 +113,7 @@
.setSourceLevel(SourceLevel.JAVA_8)
.addIgnoredCandidateToolchain(JackApiV01.class)
.addIgnoredCandidateToolchain(JillBasedToolchain.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.addProperty(ParameterMetadataAnnotationsAdder.PARAMETER_ANNOTATION.getName(), "true")
.setWithDebugInfos(true).compileAndRunTest();
}
@@ -115,6 +131,7 @@
.setSourceLevel(SourceLevel.JAVA_8)
.addIgnoredCandidateToolchain(JackApiV01.class)
.addIgnoredCandidateToolchain(JillBasedToolchain.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.addProperty(ParameterMetadataAnnotationsAdder.PARAMETER_ANNOTATION.getName(), "true")
.setWithDebugInfos(true).compileAndRunTest();
}
@@ -136,6 +153,7 @@
}
})).setSourceLevel(SourceLevel.JAVA_8)
.addIgnoredCandidateToolchain(JackApiV01.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.addProperty(ParameterMetadataAnnotationsAdder.PARAMETER_ANNOTATION.getName(), "true")
.setWithDebugInfos(true)
.compileAndRunTest();
@@ -158,6 +176,7 @@
}
})).setSourceLevel(SourceLevel.JAVA_8)
.addIgnoredCandidateToolchain(JackApiV01.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.addProperty(ParameterMetadataAnnotationsAdder.PARAMETER_ANNOTATION.getName(), "true")
.setWithDebugInfos(false)
.compileAndRunTest();
@@ -212,6 +231,7 @@
new RuntimeTestHelper(rti)
.setSourceLevel(SourceLevel.JAVA_8)
.addIgnoredCandidateToolchain(JackApiV01.class)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
.addProperty(ParameterMetadataAnnotationsAdder.PARAMETER_ANNOTATION.getName(), "true")
.setWithDebugInfos(true)
.compileAndRunTest();
diff --git a/jack-tests/tests/com/android/jack/java8/RetroLambdaTests.java b/jack-tests/tests/com/android/jack/java8/RetroLambdaTests.java
index b53a741..62e41bb 100644
--- a/jack-tests/tests/com/android/jack/java8/RetroLambdaTests.java
+++ b/jack-tests/tests/com/android/jack/java8/RetroLambdaTests.java
@@ -16,7 +16,6 @@
package com.android.jack.java8;
-import com.android.jack.Options;
import com.android.jack.test.helper.RuntimeTestHelper;
import com.android.jack.test.junit.Runtime;
import com.android.jack.test.junit.RuntimeVersion;
@@ -409,9 +408,7 @@
private void run(@Nonnull RuntimeTestInfo rti) throws Exception {
new RuntimeTestHelper(rti)
.setSourceLevel(SourceLevel.JAVA_8)
- .addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ .setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.addIgnoredCandidateToolchain(JackApiV01.class)
.compileAndRunTest();
}
diff --git a/jack-tests/tests/com/android/jack/java8/StaticMethodTest.java b/jack-tests/tests/com/android/jack/java8/StaticMethodTest.java
index 9458556..d3b98dd 100644
--- a/jack-tests/tests/com/android/jack/java8/StaticMethodTest.java
+++ b/jack-tests/tests/com/android/jack/java8/StaticMethodTest.java
@@ -16,7 +16,6 @@
package com.android.jack.java8;
-import com.android.jack.Options;
import com.android.jack.test.helper.RuntimeTestHelper;
import com.android.jack.test.junit.Runtime;
import com.android.jack.test.junit.RuntimeVersion;
@@ -70,9 +69,7 @@
private void run(@Nonnull RuntimeTestInfo rti) throws Exception {
new RuntimeTestHelper(rti)
.setSourceLevel(SourceLevel.JAVA_8)
- .addProperty(
- Options.ANDROID_MIN_API_LEVEL.getName(),
- String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
+ .setAndroidMinApiLevel(String.valueOf(AndroidApiLevel.ReleasedLevel.N.getLevel()))
.addIgnoredCandidateToolchain(JackApiV01.class)
.compileAndRunTest();
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java b/jack-tests/tests/com/android/jack/java8/explicitreceiver/test001/Tests.java
similarity index 61%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java
copy to jack-tests/tests/com/android/jack/java8/explicitreceiver/test001/Tests.java
index 8c344dd..b282fce 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java
+++ b/jack-tests/tests/com/android/jack/java8/explicitreceiver/test001/Tests.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,11 +14,21 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.explicitreceiver.test001;
-public class ClInitWithVariableInit {
+import junit.framework.Assert;
- static {
- int lv = 5;
+import org.junit.Test;
+
+public class Tests {
+
+ public int add(Tests this,int i1, int i2) {
+ return i1 + i2;
+ }
+
+ @Test
+ public void test() {
+ Tests t = new Tests();
+ Assert.assertEquals(5, t.add(2, 3));
}
}
diff --git a/jack-tests/tests/com/android/jack/java8/explicitreceiver/test002/Tests.java b/jack-tests/tests/com/android/jack/java8/explicitreceiver/test002/Tests.java
new file mode 100644
index 0000000..c76f85e
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/explicitreceiver/test002/Tests.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.java8.explicitreceiver.test002;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+public class Tests {
+
+ class Add {
+ int result;
+
+ Add(Tests Tests.this,int i1, int i2) {
+ result = i1 + i2;
+ }
+ }
+
+ @Test
+ public void test() {
+ Add t = new Add(2, 3);
+ Assert.assertEquals(5, t.result);
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/java8/lambda/test010/proguard.flags b/jack-tests/tests/com/android/jack/java8/lambda/test010/proguard.flags
index 1a40ce3..514e99a 100644
--- a/jack-tests/tests/com/android/jack/java8/lambda/test010/proguard.flags
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test010/proguard.flags
@@ -1,6 +1,6 @@
--applymapping mapping.flags
-
+-dontshrink
-keepattributes
--keep class * {
+-applymapping mapping.flags
+-keep public class com.android.jack.java8.lambda.test010.jack.Tests {
*;
-}
\ No newline at end of file
+}
diff --git a/jack-tests/tests/com/android/jack/java8/lambda/test025/proguard.flags b/jack-tests/tests/com/android/jack/java8/lambda/test025/proguard.flags
index 14f66c3..6b2d2bf 100644
--- a/jack-tests/tests/com/android/jack/java8/lambda/test025/proguard.flags
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test025/proguard.flags
@@ -1,4 +1,5 @@
-dontobfuscate
+-dontoptimize
-keep public class com.android.jack.java8.lambda.test025.jack.Tests {
public void test001();
}
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/java8/lambda/test033/proguard.flags b/jack-tests/tests/com/android/jack/java8/lambda/test033/proguard.flags
index 1a40ce3..64dc490 100644
--- a/jack-tests/tests/com/android/jack/java8/lambda/test033/proguard.flags
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test033/proguard.flags
@@ -1,6 +1,6 @@
-applymapping mapping.flags
-keepattributes
--keep class * {
+-keep class com.android.jack.java8.lambda.test033.jack.Tests {
*;
}
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/java8/lambda/test035/jack/Tests.java b/jack-tests/tests/com/android/jack/java8/lambda/test035/jack/Tests.java
index af2bb3d..7f8a826 100644
--- a/jack-tests/tests/com/android/jack/java8/lambda/test035/jack/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test035/jack/Tests.java
@@ -196,7 +196,6 @@
Assert.assertNull(lambdaClass.getDeclaringClass());
Assert.assertNull(lambdaClass.getEnclosingClass());
Assert.assertFalse(lambdaClass.isMemberClass());
- Assert.assertEquals(1, lambdaClass.getConstructors().length);
Assert.assertNotNull(lambdaClass.getSimpleName());
Assert.assertNotNull(lambdaClass.getCanonicalName());
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/jack/B2.java
similarity index 62%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/jack/B2.java
index 680f9cf..4bc004a 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/jack/B2.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,16 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.jack;
-public class ClInit {
+import com.android.jack.java8.lambda.test044.lib1.I2;
+import com.android.jack.java8.lambda.test044.lib1.subpkg.A2;
-}
+class B2 extends A2 {
+ class C {
+ int test() {
+ I2 i = () -> field;
+ return i.getCst() + field;
+ }
+ }
+}
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/jack/B3.java
similarity index 62%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/jack/B3.java
index 680f9cf..664ac01 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/jack/B3.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,16 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.jack;
-public class ClInit {
+import com.android.jack.java8.lambda.test044.lib1.I2;
+import com.android.jack.java8.lambda.test044.lib1.subpkg.A2;
-}
+class B3 extends A2 {
+ class C {
+ int test() {
+ I2 i = () -> 2 * field;
+ return i.getCst() + field;
+ }
+ }
+}
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/java8/lambda/test044/jack/Tests.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/jack/Tests.java
new file mode 100644
index 0000000..4eae343
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/jack/Tests.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.java8.lambda.test044.jack;
+
+import com.android.jack.java8.lambda.test044.lib1.B1;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+
+public class Tests {
+
+ @Test
+ public void test001() {
+ Assert.assertEquals(1, new B1().m1().getCst());
+ }
+
+ @Test
+ public void test002() {
+ Assert.assertEquals(20, new B2().new C().test());
+ }
+
+ @Test
+ public void test003() {
+ Assert.assertEquals(3, new B1().m3().getCst());
+ }
+
+ @Test
+ public void test004() {
+ Assert.assertEquals(30, new B3().new C().test());
+ }
+
+ @Test
+ public void test005() {
+ Assert.assertEquals(4, new B1().m4().getCst());
+ }
+
+ @Test
+ public void test006() {
+ Assert.assertEquals(5, new B1().m5().getCst());
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/A4.java
similarity index 75%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/A4.java
index 680f9cf..02ab933 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/A4.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,13 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.lib1;
-public class ClInit {
+public class A4 {
+
+ public I2 m() {
+ I2 i = () -> 4;
+ return i;
+ }
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/A5.java
similarity index 75%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/A5.java
index 680f9cf..37c6334 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/A5.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,13 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.lib1;
-public class ClInit {
+public class A5 {
+
+ public I2 m() {
+ I2 i = () -> 5;
+ return i;
+ }
}
diff --git a/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/B1.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/B1.java
new file mode 100644
index 0000000..ab2c110
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/B1.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.java8.lambda.test044.lib1;
+
+import com.android.jack.java8.lambda.test044.lib2.A1;
+import com.android.jack.java8.lambda.test044.lib2.A3;
+import com.android.jack.java8.lambda.test044.lib2.I1;
+
+public class B1 {
+
+ public I1 m1() {
+ return new A1().m();
+ }
+
+ public I1 m3() {
+ return new A3().m();
+ }
+
+ public I2 m4() {
+ return new A4().m();
+ }
+
+ public I2 m5() {
+ return new A5().m();
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/I2.java
similarity index 79%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/I2.java
index 680f9cf..ca4ed7b 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/I2.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.lib1;
-public class ClInit {
-
+public interface I2 {
+ int getCst();
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/subpkg/A2.java
similarity index 77%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/subpkg/A2.java
index 680f9cf..3a801e3 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib1/subpkg/A2.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.lib1.subpkg;
-public class ClInit {
-
+public class A2 {
+ protected int field = 10;
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/A1.java
similarity index 75%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/A1.java
index 680f9cf..d7ac151 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/A1.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,13 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.lib2;
-public class ClInit {
+public class A1 {
+
+ public I1 m() {
+ I1 i = () -> 1;
+ return i;
+ }
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/A3.java
similarity index 75%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/A3.java
index 680f9cf..2bff856 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/A3.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,13 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.lib2;
-public class ClInit {
+public class A3 {
+
+ public I1 m() {
+ I1 i = () -> 3;
+ return i;
+ }
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/I1.java
similarity index 79%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/I1.java
index 680f9cf..7c82dbc 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/lib2/I1.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.lambda.test044.lib2;
-public class ClInit {
-
+public interface I1 {
+ int getCst();
}
diff --git a/jack-tests/tests/com/android/jack/java8/lambda/test044/shrink-nothing.flags b/jack-tests/tests/com/android/jack/java8/lambda/test044/shrink-nothing.flags
new file mode 100644
index 0000000..40047b9
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/java8/lambda/test044/shrink-nothing.flags
@@ -0,0 +1,4 @@
+-dontobfuscate
+-keep class * {
+ *;
+}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/java8/parameter/common/ParameterTestModifier.java
similarity index 62%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/java8/parameter/common/ParameterTestModifier.java
index 680f9cf..89763b4 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/common/ParameterTestModifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.java8.parameter.common;
-public class ClInit {
-
+public class ParameterTestModifier {
+ public static final int MODIFIER_NONE = 0;
+ public static final int MODIFIER_FINAL = 0X10;
+ public static final int MODIFIER_SYNTHETIC = 0X1000;
+ public static final int MODIFIER_IMPLICIT = 0X8000;
}
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test001/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test001/Tests.java
index 4e93558..ab5b7ed 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test001/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test001/Tests.java
@@ -16,8 +16,8 @@
package com.android.jack.java8.parameter.test001;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
import com.android.jack.java8.parameter.test001.Tests.Context.InnerWithParam;
-
import junit.framework.Assert;
import org.junit.Test;
@@ -28,11 +28,6 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
public static void m1(final int p1, int b2, Object... a) {}
public class InnerClass {
@@ -48,13 +43,13 @@
Assert.assertEquals(3, method.getParameters().length);
check(method.getParameters()[0], "p1", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_FINAL);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_FINAL);
check(method.getParameters()[1], "b2", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
check(method.getParameters()[2], "a", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
@Test
@@ -62,8 +57,9 @@
Constructor<?> constructor = InnerClass.class.getDeclaredConstructor(Tests.class);
Assert.assertEquals(1, constructor.getParameters().length);
- check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true,
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
}
@Test
@@ -72,11 +68,12 @@
InnerClass.InnerInnerClass.class.getDeclaredConstructor(InnerClass.class, float.class);
Assert.assertEquals(2, constructor.getParameters().length);
- check(constructor.getParameters()[0], "this$1", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ check(constructor.getParameters()[0], "this$1", /* isNamePresent= */ true,
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
check(constructor.getParameters()[1], "f", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
@Test
@@ -86,8 +83,9 @@
Constructor<?> constructor = Local.class.getDeclaredConstructor(Tests.class);
Assert.assertEquals(1, constructor.getParameters().length);
- check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true,
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
}
@Test
@@ -104,14 +102,16 @@
Constructor<?> constructor = Local.class.getDeclaredConstructor(Tests.class, int.class, Object.class);
Assert.assertEquals(3, constructor.getParameters().length);
- check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true,
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
check(constructor.getParameters()[1], "i", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
- check(constructor.getParameters()[2], "val$o", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ true, MODIFIER_FINAL | MODIFIER_SYNTHETIC);
+ check(constructor.getParameters()[2], "val$o", /* isNamePresent= */ true,
+ /* isImplicit= */ false, /* isSynthetic= */ true,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_SYNTHETIC);
}
abstract static class StaticAnonymous {
@@ -122,8 +122,9 @@
StaticAnonymous a = new StaticAnonymous() {};
Constructor<?> constructor = a.getClass().getDeclaredConstructor(Tests.class);
Assert.assertEquals(1, constructor.getParameters().length);
- check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true,
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
}
@@ -142,10 +143,11 @@
Assert.assertEquals(2, constructor.getParameters().length);
check(constructor.getParameters()[0], "this$1", /* isNamePresent= */ true,
- /* isImplicit= */ true, /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
check(constructor.getParameters()[1], "i1", /* isNamePresent= */ true,
- /* isImplicit= */ false, /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isImplicit= */ false, /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
private void check(Parameter parameter, String name, boolean isNamePresent, boolean isImplicit,
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test002/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test002/Tests.java
index a78de84..7a5f253 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test002/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test002/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test002;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -26,11 +28,6 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
enum Number {
ONE, TWO;
}
@@ -41,7 +38,7 @@
Assert.assertEquals(1, method.getParameters().length);
check(method.getParameters()[0], "name", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_IMPLICIT);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_IMPLICIT);
}
@Test
@@ -50,10 +47,10 @@
Assert.assertEquals(2, constructor.getParameters().length);
check(constructor.getParameters()[0], "enum$name", /* isNamePresent= */ true,
- /* isImplicit= */ false, /* isSynthetic= */ true, MODIFIER_SYNTHETIC);
+ /* isImplicit= */ false, /* isSynthetic= */ true, ParameterTestModifier.MODIFIER_SYNTHETIC);
check(constructor.getParameters()[1], "enum$ordinal", /* isNamePresent= */ true,
- /* isImplicit= */ false, /* isSynthetic= */ true, MODIFIER_SYNTHETIC);
+ /* isImplicit= */ false, /* isSynthetic= */ true, ParameterTestModifier.MODIFIER_SYNTHETIC);
}
private void check(Parameter parameter, String name, boolean isNamePresent, boolean isImplicit,
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test003/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test003/Tests.java
index ecbff01..57749ed 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test003/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test003/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test003;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -35,17 +37,12 @@
}
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
@Test
public void testBridge() throws NoSuchMethodException, SecurityException {
Method method = A.class.getDeclaredMethod("get", Object.class);
check(method.getParameters()[0], "t", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ true, MODIFIER_SYNTHETIC);
+ /* isSynthetic= */ true, ParameterTestModifier.MODIFIER_SYNTHETIC);
}
@Test
@@ -53,7 +50,7 @@
Method method = A.class.getDeclaredMethod("get", Integer.class);
check(method.getParameters()[0], "t", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
private void check(Parameter parameter, String name, boolean isNamePresent, boolean isImplicit,
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test004/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test004/Tests.java
index 1e52d84..0b528bf 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test004/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test004/Tests.java
@@ -16,6 +16,7 @@
package com.android.jack.java8.parameter.test004;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
import junit.framework.Assert;
@@ -26,12 +27,6 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
-
abstract class InstanceAnonymous {
public InstanceAnonymous(int value) {
}
@@ -43,19 +38,22 @@
};
// Could be a constructor with Test.class, int.class
- Constructor<?> constructor = ia.getClass().getDeclaredConstructor(Tests.class, Tests.class, int.class);
+ Constructor<?> constructor =
+ ia.getClass().getDeclaredConstructor(Tests.class, Tests.class, int.class);
Assert.assertEquals(3, constructor.getParameters().length);
- check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true,
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
// Could be this$1 rather than this$0_1
- check(constructor.getParameters()[1], "this$0_1", /* isNamePresent= */ true, /* isImplicit= */ true,
- /* isSynthetic= */ false, MODIFIER_FINAL | MODIFIER_IMPLICIT);
+ check(constructor.getParameters()[1], "this$0_1", /* isNamePresent= */ true,
+ /* isImplicit= */ true, /* isSynthetic= */ false,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_IMPLICIT);
// Could be value rather than $anonymous0
- check(constructor.getParameters()[2], "$anonymous0", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ check(constructor.getParameters()[2], "$anonymous0", /* isNamePresent= */ true,
+ /* isImplicit= */ false, /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
@Test
@@ -69,19 +67,22 @@
};
// Could be a constructor with Test.class, int.class
- Constructor<?> constructor = ia.getClass().getDeclaredConstructor(Tests.class, Tests.class, int.class);
+ Constructor<?> constructor =
+ ia.getClass().getDeclaredConstructor(Tests.class, Tests.class, int.class);
Assert.assertEquals(3, constructor.getParameters().length);
- check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ true, MODIFIER_FINAL | MODIFIER_SYNTHETIC);
+ check(constructor.getParameters()[0], "this$0", /* isNamePresent= */ true,
+ /* isImplicit= */ false, /* isSynthetic= */ true,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_SYNTHETIC);
// Could be this$1 rather than this$0_1
- check(constructor.getParameters()[1], "this$0_1", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ true, MODIFIER_FINAL | MODIFIER_SYNTHETIC);
+ check(constructor.getParameters()[1], "this$0_1", /* isNamePresent= */ true,
+ /* isImplicit= */ false, /* isSynthetic= */ true,
+ ParameterTestModifier.MODIFIER_FINAL | ParameterTestModifier.MODIFIER_SYNTHETIC);
// Could be value rather than $anonymous0
- check(constructor.getParameters()[2], "$anonymous0", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ check(constructor.getParameters()[2], "$anonymous0", /* isNamePresent= */ true,
+ /* isImplicit= */ false, /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
private void check(Parameter parameter, String name, boolean isNamePresent, boolean isImplicit,
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test005/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test005/Tests.java
index 9044e52..48d38d3 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test005/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test005/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test005;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -26,11 +28,6 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
public static int m1(int p1, int p2, int p3) {
return p1 + p2 + p3;
}
@@ -42,13 +39,13 @@
Assert.assertEquals(3, method.getParameters().length);
check(method.getParameters()[0], "p1", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
check(method.getParameters()[1], "p2", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
check(method.getParameters()[2], "p3", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
private void check(Parameter parameter, String name, boolean isNamePresent, boolean isImplicit,
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test006/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test006/Tests.java
index f73fc8b..7e4b5dc 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test006/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test006/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test006;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -26,14 +28,9 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
private int field = 10;
- public class InnerClass {
+ public class InnerClass {
public int getValue() {
return field;
}
@@ -47,7 +44,7 @@
Parameter[] parameters = method.getParameters();
Assert.assertEquals(1, parameters.length);
check(parameters[0], "arg0", /* isNamePresent= */ false, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
}
}
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test007/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test007/Tests.java
index d302efc..0f7de69 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test007/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test007/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test007;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -26,14 +28,9 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
private int field = 0;
- public class InnerClass {
+ public class InnerClass {
public void setValue() {
field = 10;
}
@@ -43,14 +40,14 @@
public void testStaticMethod() throws NoSuchMethodException, SecurityException {
Method[] methods = Tests.class.getDeclaredMethods();
for (Method method : methods) {
- if (method.isSynthetic()) {
- Parameter[] parameters = method.getParameters();
- Assert.assertEquals(2, parameters.length);
- check(parameters[0], "arg0", /* isNamePresent= */ false, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
- check(parameters[1], "arg1", /* isNamePresent= */ false, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
- }
+ if (method.isSynthetic()) {
+ Parameter[] parameters = method.getParameters();
+ Assert.assertEquals(2, parameters.length);
+ check(parameters[0], "arg0", /* isNamePresent= */ false, /* isImplicit= */ false,
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
+ check(parameters[1], "arg1", /* isNamePresent= */ false, /* isImplicit= */ false,
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
+ }
}
}
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test008/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test008/Tests.java
index 1e2a630..c60d42a 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test008/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test008/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test008;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -26,11 +28,6 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
private int addValue(int i) {
return 10 + i;
};
@@ -45,14 +42,14 @@
public void testStaticMethod() throws NoSuchMethodException, SecurityException {
Method[] methods = Tests.class.getDeclaredMethods();
for (Method method : methods) {
- if (method.isSynthetic()) {
- Parameter[] parameters = method.getParameters();
- Assert.assertEquals(2, parameters.length);
- check(parameters[0], "arg0", /* isNamePresent= */ false, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
- check(parameters[1], "arg1", /* isNamePresent= */ false, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
- }
+ if (method.isSynthetic()) {
+ Parameter[] parameters = method.getParameters();
+ Assert.assertEquals(2, parameters.length);
+ check(parameters[0], "arg0", /* isNamePresent= */ false, /* isImplicit= */ false,
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
+ check(parameters[1], "arg1", /* isNamePresent= */ false, /* isImplicit= */ false,
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
+ }
}
}
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test009/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test009/Tests.java
index ad00e63..4327c00 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test009/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test009/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test009;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -32,21 +34,16 @@
}
public class Tests extends MyBaseClass {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
@Test
public void testStaticMethod() throws NoSuchMethodException, SecurityException {
Method[] methods = Tests.class.getDeclaredMethods();
for (Method method : methods) {
- if (method.isSynthetic()) {
- Parameter[] parameters = method.getParameters();
- Assert.assertEquals(1, parameters.length);
- check(parameters[0], "param1", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ true, MODIFIER_SYNTHETIC);
- }
+ if (method.isSynthetic()) {
+ Parameter[] parameters = method.getParameters();
+ Assert.assertEquals(1, parameters.length);
+ check(parameters[0], "param1", /* isNamePresent= */ true, /* isImplicit= */ false,
+ /* isSynthetic= */ true, ParameterTestModifier.MODIFIER_SYNTHETIC);
+ }
}
}
diff --git a/jack-tests/tests/com/android/jack/java8/parameter/test010/Tests.java b/jack-tests/tests/com/android/jack/java8/parameter/test010/Tests.java
index 21636f2..050e157 100644
--- a/jack-tests/tests/com/android/jack/java8/parameter/test010/Tests.java
+++ b/jack-tests/tests/com/android/jack/java8/parameter/test010/Tests.java
@@ -16,6 +16,8 @@
package com.android.jack.java8.parameter.test010;
+import com.android.jack.java8.parameter.common.ParameterTestModifier;
+
import junit.framework.Assert;
import org.junit.Test;
@@ -27,11 +29,6 @@
public class Tests {
- public static final int MODIFIER_NONE = 0;
- public static final int MODIFIER_FINAL = 16;
- public static final int MODIFIER_SYNTHETIC = 4096;
- public static final int MODIFIER_IMPLICIT = 32768;
-
public static void m1(int a, double d, final float f, final long l) {
}
@@ -47,16 +44,16 @@
Assert.assertEquals(4, parameters.length);
check(parameters[0], "a", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
check(parameters[1], "d", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
check(parameters[2], "f", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_FINAL);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_FINAL);
check(parameters[3], "l", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_FINAL);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_FINAL);
}
@Test
@@ -68,16 +65,16 @@
Assert.assertEquals(4, parameters.length);
check(parameters[0], "a", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_FINAL);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_FINAL);
check(parameters[1], "d", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
check(parameters[2], "f", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_FINAL);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_FINAL);
check(parameters[3], "l", /* isNamePresent= */ true, /* isImplicit= */ false,
- /* isSynthetic= */ false, MODIFIER_NONE);
+ /* isSynthetic= */ false, ParameterTestModifier.MODIFIER_NONE);
}
private void check(Parameter parameter, String name, boolean isNamePresent, boolean isImplicit,
diff --git a/jack-tests/tests/com/android/jack/jill/JillTests.java b/jack-tests/tests/com/android/jack/jill/JillTests.java
index edbda2b..4bf05ff 100644
--- a/jack-tests/tests/com/android/jack/jill/JillTests.java
+++ b/jack-tests/tests/com/android/jack/jill/JillTests.java
@@ -17,9 +17,11 @@
package com.android.jack.jill;
import com.android.jack.test.TestsProperties;
+import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.junit.Runtime;
import com.android.jack.test.runner.RuntimeRunner;
import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JackBasedToolchain;
import junit.framework.Assert;
@@ -35,28 +37,39 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test001() throws Exception {
runJillTest("001");
}
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test002() throws Exception {
runJillTest("002");
}
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test003() throws Exception {
runJillTest("003");
}
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test004() throws Exception {
runJillTest("004");
}
+ @Test
+ @Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
+ public void test005() throws Exception {
+ runJillTest("005");
+ }
+
private static void runJillTest(@Nonnull String testNumber) throws Exception {
String jackFolder = getJackFolder(testNumber);
String jasminFolder = getJasminFolder(testNumber);
@@ -77,7 +90,7 @@
jackToolchain.addStaticLibs(jarInput);
jackToolchain.srcToExe(dex, /* zipFile = */ true, testSourceDir);
- List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners(null);
+ List<RuntimeRunner> runnerList = AbstractTestTools.listRuntimeTestRunners();
String[] names = { testClassName };
for (RuntimeRunner runner : runnerList) {
Assert.assertEquals(0,
diff --git a/jack-tests/tests/com/android/jack/jill/test005/jack/Test005.java b/jack-tests/tests/com/android/jack/jill/test005/jack/Test005.java
new file mode 100644
index 0000000..7dcd72a
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/jill/test005/jack/Test005.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.jill.test005.jack;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+public class Test005 {
+
+ @Test
+ public void test001() {
+ Assert.assertEquals(1, new External1().getValueInt1());
+ Assert.assertEquals(2, new External1().getValueInt2());
+ Assert.assertEquals(3, new External1().getValueInt3());
+ Assert.assertEquals(4, new External1().getValueInt4());
+ Assert.assertEquals(5, new External1().getValueInt5());
+ Assert.assertEquals(6, new External1().getValueInt6());
+ Assert.assertEquals(-2, new External1().getValueIntMinus2());
+ Assert.assertEquals(2L, new External1().getValueLong2());
+ Assert.assertEquals(1L, new External1().getValueLong1());
+ Assert.assertEquals(1L, new External1().getValueLong1Bis());
+ Assert.assertEquals(2L, new External1().getValueLong2());
+ }
+}
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/jill/test005/jasmin/External1.j b/jack-tests/tests/com/android/jack/jill/test005/jasmin/External1.j
new file mode 100644
index 0000000..40ffdf1
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/jill/test005/jasmin/External1.j
@@ -0,0 +1,142 @@
+; Copyright (C) 2017 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+; http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.class public com/android/jack/jill/test005/jack/External1
+.super java/lang/Object
+
+.method public <init>()V
+ aload_0
+ invokespecial java/lang/Object/<init>()V
+ return
+.end method
+
+.method public getValueInt1()I
+ .limit locals 1
+ .limit stack 2
+ iconst_1
+ dup
+ pop
+ ireturn
+.end method
+
+.method public getValueInt2()I
+ .limit locals 1
+ .limit stack 2
+ iconst_1
+ dup
+ iadd
+ ireturn
+.end method
+
+.method public getValueInt3()I
+ .limit locals 1
+ .limit stack 2
+ iconst_2
+ iconst_3
+ swap
+ pop
+ ireturn
+.end method
+
+.method public getValueIntMinus2()I
+ .limit locals 1
+ .limit stack 4
+ iconst_1
+ iconst_2
+ dup2
+ isub
+ isub
+ isub
+ ireturn
+.end method
+
+.method public getValueInt4()I
+ .limit locals 1
+ .limit stack 4
+ iconst_1
+ iconst_2
+ iconst_3
+ dup_x1
+ pop2
+ iadd
+ ireturn
+.end method
+
+.method public getValueInt5()I
+ .limit locals 1
+ .limit stack 5
+ iconst_1
+ iconst_2
+ iconst_3
+ dup2_x1
+ pop2
+ pop
+ iadd
+ ireturn
+.end method
+
+.method public getValueInt6()I
+ .limit locals 1
+ .limit stack 5
+ lconst_0
+ iconst_4
+ dup_x2
+ pop
+ pop2
+ iconst_2
+ iadd
+ ireturn
+.end method
+
+.method public getValueLong2()J
+ .limit locals 1
+ .limit stack 4
+ lconst_1
+ dup2
+ ladd
+ lreturn
+.end method
+
+.method public getValueLong1()J
+ .limit locals 1
+ .limit stack 4
+ lconst_1
+ dup2
+ pop2
+ lreturn
+.end method
+
+.method public getValueLong1Bis()J
+ .limit locals 1
+ .limit stack 5
+ iconst_2
+ lconst_1
+ dup2_x1
+ pop2
+ pop
+ lreturn
+.end method
+
+.method public getValueLong2()J
+ .limit locals 1
+ .limit stack 4
+ lconst_0
+ lconst_1
+ dup2_x2
+ pop2
+ pop2
+ lconst_1
+ ladd
+ lreturn
+.end method
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/jill/test005/jasmin/jarInput.jar b/jack-tests/tests/com/android/jack/jill/test005/jasmin/jarInput.jar
new file mode 100644
index 0000000..7916c73
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/jill/test005/jasmin/jarInput.jar
Binary files differ
diff --git a/jack-tests/tests/com/android/jack/library/LibraryTests.java b/jack-tests/tests/com/android/jack/library/LibraryTests.java
index 330c051..b16c21e 100644
--- a/jack-tests/tests/com/android/jack/library/LibraryTests.java
+++ b/jack-tests/tests/com/android/jack/library/LibraryTests.java
@@ -21,6 +21,7 @@
import com.android.jack.test.toolchain.IToolchain;
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.sched.util.file.InputZipFile;
import com.android.sched.vfs.ReadZipFS;
import com.android.sched.vfs.VFS;
@@ -96,7 +97,10 @@
@Nonnull
private File createEmptyLibrary() throws IOException, Exception {
- AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ List<Class<? extends IToolchain>> excludeList = new ArrayList<Class<? extends IToolchain>>(1);
+ excludeList.add(LegacyToolchain.class);
+ AndroidToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(AndroidToolchain.class, excludeList);
File emptyLib = AbstractTestTools.createTempFile("empty", toolchain.getLibraryExtension());
toolchain.srcToLib(emptyLib, /* zipFiles = */ true);
diff --git a/jack-tests/tests/com/android/jack/lookup/LookupTests.java b/jack-tests/tests/com/android/jack/lookup/LookupTests.java
index adbc25a..ec49e7d 100644
--- a/jack-tests/tests/com/android/jack/lookup/LookupTests.java
+++ b/jack-tests/tests/com/android/jack/lookup/LookupTests.java
@@ -19,6 +19,7 @@
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.IToolchain;
import com.android.jack.test.toolchain.JillApiToolchainBase;
+import com.android.jack.test.toolchain.LegacyToolchain;
import org.junit.Test;
@@ -32,6 +33,7 @@
public void test001() throws Exception {
List<Class<? extends IToolchain>> exclude = new ArrayList<Class<? extends IToolchain>>();
exclude.add(JillApiToolchainBase.class);
+ exclude.add(LegacyToolchain.class);
IToolchain toolchain = AbstractTestTools.getCandidateToolchain(IToolchain.class, exclude);
File lib = AbstractTestTools.createTempDir();
toolchain.addToClasspath(toolchain.getDefaultBootClasspath())
diff --git a/jack-tests/tests/com/android/jack/optimizations/lambdas/LambdaTests.java b/jack-tests/tests/com/android/jack/optimizations/lambdas/LambdaTests.java
index 53b0461..19b2ec7 100644
--- a/jack-tests/tests/com/android/jack/optimizations/lambdas/LambdaTests.java
+++ b/jack-tests/tests/com/android/jack/optimizations/lambdas/LambdaTests.java
@@ -34,6 +34,7 @@
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Collections;
+import java.util.TreeMap;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
@@ -60,7 +61,7 @@
@Nonnull
private static String lambda(@Nonnull String pkg, @Nonnull String sha, @Nonnegative int i) {
- return type(pkg, "-$Lambda$" + i + "$" + sha);
+ return type(pkg, "-$Lambda$" + sha + (i == 0 ? "" : ("$" + i)));
}
@Nonnull
@@ -71,11 +72,27 @@
return names;
}
+ @Nonnull
+ private static String orderedByTypeName(@Nonnull Class... classes) {
+ TreeMap<String, String> name2type = new TreeMap<>();
+ for (Class cls : classes) {
+ name2type.put(cls.name, cls.toString());
+ }
+ StringBuilder builder = new StringBuilder();
+ for (String str : name2type.values()) {
+ builder.append(str);
+ }
+ return builder.toString();
+ }
+
private static class Class {
@Nonnull
+ public final String name;
+ @Nonnull
private final StringBuilder builder = new StringBuilder();
Class(@Nonnull String name, @Nonnull String... interfaces) {
+ this.name = name;
builder.append(name).append("\n");
printImpl(interfaces, " - implements:\n", false);
}
@@ -119,110 +136,109 @@
private static final String SHA_001 = "IKUiHr1YvEGLPsKj1XVCnvkJpxY";
@Nonnull
- private static final String TEST001_NONE = "" +
+ private static final String TEST001_NONE = orderedByTypeName(
new Class(lambda(PKG_001, SHA_001, 0), types(PKG_001, "I0"))
- .methods("<init>()V", "foo()V", "$m$0()V") +
+ .methods("<init>()V", "foo()V", "$m$0()V"),
new Class(lambda(PKG_001, SHA_001, 1), types(PKG_001, "I0"))
- .methods("<init>()V", "foo()V", "$m$0()V") +
+ .methods("<init>()V", "foo()V", "$m$0()V"),
new Class(lambda(PKG_001, SHA_001, 10), types(PKG_001, "TestB"))
.fields("-$f0:Ljava/lang/Object;", "-$f1:Ljava/lang/Object;")
.methods("<init>(Ljava/lang/Object;Ljava/lang/Object;)V",
"foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 11), types(PKG_001, "TestB"))
.fields("-$f0:Ljava/lang/Object;", "-$f1:Ljava/lang/Object;")
.methods("<init>(Ljava/lang/Object;Ljava/lang/Object;)V",
"foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 12), types(PKG_001, "TestB"))
.fields("-$f0:I", "-$f1:Ljava/lang/Object;")
.methods("<init>(ILjava/lang/Object;)V",
"foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 13), types(PKG_001, "TestB"))
.fields("-$f0:I", "-$f1:Ljava/lang/Object;")
.methods("<init>(ILjava/lang/Object;)V",
"foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 14), types(PKG_001, "TestB"))
.fields("-$f0:Z", "-$f1:B", "-$f2:C", "-$f3:D", "-$f4:F", "-$f5:I", "-$f6:J", "-$f7:S",
"-$f8:Ljava/lang/Object;")
.methods("<init>(ZBCDFIJSLjava/lang/Object;)V",
"foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 15), types(PKG_001, "TestB"))
.fields("-$f0:Z", "-$f1:B", "-$f2:C", "-$f3:D", "-$f4:F", "-$f5:I", "-$f6:J", "-$f7:S",
"-$f8:Ljava/lang/Object;")
.methods("<init>(ZBCDFIJSLjava/lang/Object;)V",
"foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 16), types(PKG_001, "TestB"))
.fields("-$f0:Z", "-$f1:B", "-$f2:C", "-$f3:D", "-$f4:F", "-$f5:I", "-$f6:J", "-$f7:S",
"-$f8:Ljava/lang/Object;")
.methods("<init>(ZBCDFIJSLjava/lang/Object;)V",
"foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 2), types(PKG_001, "I0"))
- .methods("<init>()V", "foo()V", "$m$0()V") +
+ .methods("<init>()V", "foo()V", "$m$0()V"),
new Class(lambda(PKG_001, SHA_001, 3), types(PKG_001, "I1"))
- .methods("<init>()V", "bar(I)I", "$m$0(I)I") +
+ .methods("<init>()V", "bar(I)I", "$m$0(I)I"),
new Class(lambda(PKG_001, SHA_001, 4), types(PKG_001, "IA"))
- .methods("<init>()V", "foo()Ljava/lang/Object;", "$m$0()Ljava/lang/Object;") +
+ .methods("<init>()V", "foo()Ljava/lang/Object;", "$m$0()Ljava/lang/Object;"),
new Class(lambda(PKG_001, SHA_001, 5), types(PKG_001, "IA"))
- .methods("<init>()V", "foo()Ljava/lang/Object;", "$m$0()Ljava/lang/Object;") +
+ .methods("<init>()V", "foo()Ljava/lang/Object;", "$m$0()Ljava/lang/Object;"),
new Class(lambda(PKG_001, SHA_001, 6), types(PKG_001, "IA"))
- .methods("<init>()V", "foo()Ljava/lang/Object;", "$m$0()Ljava/lang/Object;") +
+ .methods("<init>()V", "foo()Ljava/lang/Object;", "$m$0()Ljava/lang/Object;"),
new Class(lambda(PKG_001, SHA_001, 7), types(PKG_001, "IB"))
.methods("<init>()V", "foo()Ljava/lang/Object;", "foo()Ljava/lang/Integer;",
- "$m$0()Ljava/lang/Integer;", "$m$1()Ljava/lang/Object;") +
+ "$m$0()Ljava/lang/Integer;", "$m$1()Ljava/lang/Object;"),
new Class(lambda(PKG_001, SHA_001, 8), types(PKG_001, "TestB"))
.fields("-$f0:Ljava/lang/Object;")
.methods("<init>(Ljava/lang/Object;)V", "foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 9), types(PKG_001, "TestB"))
.fields("-$f0:Ljava/lang/Object;")
.methods("<init>(Ljava/lang/Object;)V", "foo(Ljava/lang/String;)Ljava/lang/String;",
- "$m$0(Ljava/lang/String;)Ljava/lang/String;") +
- "";
+ "$m$0(Ljava/lang/String;)Ljava/lang/String;"));
@Nonnull
- private static final String TEST001_PACKAGE = "" +
+ private static final String TEST001_PACKAGE = orderedByTypeName(
new Class(lambda(PKG_001, SHA_001, 0), types(PKG_001, "I0"))
.fields("$id:B")
- .methods("<init>(B)V", "$m$0()V", "$m$1()V", "$m$2()V", "foo()V") +
+ .methods("<init>(B)V", "$m$0()V", "$m$1()V", "$m$2()V", "foo()V"),
new Class(lambda(PKG_001, SHA_001, 1), types(PKG_001, "I1"))
- .methods("<init>()V", "$m$0(I)I", "bar(I)I") +
+ .methods("<init>()V", "$m$0(I)I", "bar(I)I"),
new Class(lambda(PKG_001, SHA_001, 2), types(PKG_001, "IA"))
.fields("$id:B")
.methods("<init>(B)V",
"$m$0()Ljava/lang/Object;",
"$m$1()Ljava/lang/Object;",
"$m$2()Ljava/lang/Object;",
- "foo()Ljava/lang/Object;") +
+ "foo()Ljava/lang/Object;"),
new Class(lambda(PKG_001, SHA_001, 3), types(PKG_001, "IB"))
.methods("<init>()V",
"$m$0()Ljava/lang/Integer;",
"$m$1()Ljava/lang/Object;",
"foo()Ljava/lang/Integer;",
- "foo()Ljava/lang/Object;") +
+ "foo()Ljava/lang/Object;"),
new Class(lambda(PKG_001, SHA_001, 4), types(PKG_001, "TestB"))
.fields("-$f0:Ljava/lang/Object;", "$id:B")
.methods("<init>(BLjava/lang/Object;)V",
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;") +
+ "foo(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 5), types(PKG_001, "TestB"))
.fields("-$f0:Ljava/lang/Object;", "-$f1:Ljava/lang/Object;", "$id:B")
.methods("<init>(BLjava/lang/Object;Ljava/lang/Object;)V",
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;") +
+ "foo(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 6), types(PKG_001, "TestB"))
.fields("-$f0:I", "-$f1:Ljava/lang/Object;", "$id:B")
.methods("<init>(BILjava/lang/Object;)V",
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;") +
+ "foo(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 7), types(PKG_001, "TestB"))
.fields("-$f0:Z", "-$f1:B", "-$f2:C", "-$f3:D", "-$f4:F",
"-$f5:I", "-$f6:J", "-$f7:S", "-$f8:Ljava/lang/Object;", "$id:B")
@@ -230,10 +246,10 @@
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
"$m$2(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;");
+ "foo(Ljava/lang/String;)Ljava/lang/String;"));
@Nonnull
- private static final String TEST001_PACKAGE_INTERFACE = "" +
+ private static final String TEST001_PACKAGE_INTERFACE = orderedByTypeName(
new Class(lambda(PKG_001, SHA_001, 0), types(PKG_001, "I0", "I1", "IA", "IB"))
.fields("$id:B")
.methods("<init>(B)V",
@@ -249,25 +265,25 @@
"bar(I)I",
"foo()Ljava/lang/Integer;",
"foo()Ljava/lang/Object;",
- "foo()V") +
+ "foo()V"),
new Class(lambda(PKG_001, SHA_001, 1), types(PKG_001, "TestB"))
.fields("$id:B", "-$f0:Ljava/lang/Object;")
.methods("<init>(BLjava/lang/Object;)V",
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;") +
+ "foo(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 2), types(PKG_001, "TestB"))
.fields("$id:B", "-$f0:Ljava/lang/Object;", "-$f1:Ljava/lang/Object;")
.methods("<init>(BLjava/lang/Object;Ljava/lang/Object;)V",
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;") +
+ "foo(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 3), types(PKG_001, "TestB"))
.fields("$id:B", "-$f0:I", "-$f1:Ljava/lang/Object;")
.methods("<init>(BILjava/lang/Object;)V",
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;") +
+ "foo(Ljava/lang/String;)Ljava/lang/String;"),
new Class(lambda(PKG_001, SHA_001, 4), types(PKG_001, "TestB"))
.fields("$id:B", "-$f0:Z", "-$f1:B", "-$f2:C", "-$f3:D",
"-$f4:F", "-$f5:I", "-$f6:J", "-$f7:S", "-$f8:Ljava/lang/Object;")
@@ -275,7 +291,7 @@
"$m$0(Ljava/lang/String;)Ljava/lang/String;",
"$m$1(Ljava/lang/String;)Ljava/lang/String;",
"$m$2(Ljava/lang/String;)Ljava/lang/String;",
- "foo(Ljava/lang/String;)Ljava/lang/String;");
+ "foo(Ljava/lang/String;)Ljava/lang/String;"));
@Test
@Runtime
@@ -301,25 +317,24 @@
private static final String SHA_002 = "rK0qQUOvfPrsTJWpyc2f5mlYYJ8";
@Nonnull
- private static final String TEST002_NONE = "" +
+ private static final String TEST002_NONE = orderedByTypeName(
new Class(lambda(PKG_002, SHA_002, 0), types(PKG_002, "I0"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_002, SHA_002, 1), types(PKG_002, "I1"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_002, SHA_002, 2), types(PKG_002, "I2"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_002, SHA_002, 3), types(PKG_002, "I3"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_002, SHA_002, 4), types(PKG_002, "I4"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_002, SHA_002, 5), types(PKG_002, "I5"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_002, SHA_002, 6), types(PKG_002, "I6"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
- "";
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"));
@Nonnull
- private static final String TEST002_PACKAGE_INTERFACE = "" +
+ private static final String TEST002_PACKAGE_INTERFACE = orderedByTypeName(
new Class(lambda(PKG_002, SHA_002, 0),
types(PKG_002, "I0", "I1", "I2", "I3", "I4", "I5", "I6"))
.fields("$id:B")
@@ -331,7 +346,7 @@
"$m$4()Ljava/lang/String;",
"$m$5()Ljava/lang/String;",
"$m$6()Ljava/lang/String;",
- "foo()Ljava/lang/String;");
+ "foo()Ljava/lang/String;"));
@Test
@Runtime
@@ -363,24 +378,23 @@
private static final String SHA_003 = "ONjwHPCPJTN6WB4tZ9kgaFMFflk";
@Nonnull
- private static final String TEST003_NONE = "" +
+ private static final String TEST003_NONE = orderedByTypeName(
new Class(lambda(PKG_003, SHA_003, 0), types(PKG_003, "I0"))
- .methods("<init>()V", "$m$0()Ljava/lang/Object;", "foo()Ljava/lang/Object;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/Object;", "foo()Ljava/lang/Object;"),
new Class(lambda(PKG_003, SHA_003, 1), types(PKG_003, "I1"))
- .methods("<init>()V", "$m$0()Ljava/lang/Object;", "foo()Ljava/lang/Object;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/Object;", "foo()Ljava/lang/Object;"),
new Class(lambda(PKG_003, SHA_003, 2), types(PKG_003, "I3"))
- .methods("<init>()V", "$m$0()Ljava/lang/Object;", "foo()Ljava/lang/Object;") +
- "";
+ .methods("<init>()V", "$m$0()Ljava/lang/Object;", "foo()Ljava/lang/Object;"));
@Nonnull
private static final String TEST003_PACKAGE = TEST003_NONE;
@Nonnull
- private static final String TEST003_PACKAGE_INTERFACE = "" +
+ private static final String TEST003_PACKAGE_INTERFACE = orderedByTypeName(
new Class(lambda(PKG_003, SHA_003, 0), types(PKG_003, "I0", "I1", "I3"))
.fields("$id:B")
.methods("<init>(B)V", "$m$0()Ljava/lang/Object;",
- "$m$1()Ljava/lang/Object;", "$m$2()Ljava/lang/Object;", "foo()Ljava/lang/Object;");
+ "$m$1()Ljava/lang/Object;", "$m$2()Ljava/lang/Object;", "foo()Ljava/lang/Object;"));
@Test
@Runtime
@@ -406,20 +420,20 @@
private static final String SHA_004 = "kE8tIAUzNtiGWJ6ulIU0a1IEtL4";
@Nonnull
- private static final String TEST004_PACKAGE = "" +
+ private static final String TEST004_PACKAGE = orderedByTypeName(
new Class(lambda(PKG_004, SHA_004, 0), types(PKG_004, "I0"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 1), types(PKG_004, "I0", "MarkerA"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 2), types(PKG_004, "I0", "MarkerA", "MarkerB"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 3), types(PKG_004, "I0", "MarkerB"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 4), types(PKG_004, "I1", "MarkerA", "MarkerB"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;");
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "foo()Ljava/lang/String;"));
@Nonnull
- private static final String TEST004_LAMBDA_MERGE = "" +
+ private static final String TEST004_LAMBDA_MERGE = orderedByTypeName(
new Class(lambda(PKG_004, SHA_004, 0), types(PKG_004, "I0", "I1", "MarkerA", "MarkerB"))
.fields("$id:B")
.methods("<init>(B)V",
@@ -428,10 +442,10 @@
"$m$2()Ljava/lang/String;",
"$m$3()Ljava/lang/String;",
"$m$4()Ljava/lang/String;",
- "foo()Ljava/lang/String;");
+ "foo()Ljava/lang/String;"));
@Nonnull
- private static final String TEST004_PACKAGE_INTERFACE_STATELESS = "" +
+ private static final String TEST004_PACKAGE_INTERFACE_STATELESS = orderedByTypeName(
new Class(lambda(PKG_004, SHA_004, 0), types(PKG_004, "I0", "I1", "MarkerA", "MarkerB"))
.fields("$id:B",
"$INST$0:" + lambda(PKG_004, SHA_004, 0),
@@ -445,35 +459,35 @@
"$m$2()Ljava/lang/String;",
"$m$3()Ljava/lang/String;",
"$m$4()Ljava/lang/String;",
- "foo()Ljava/lang/String;");
+ "foo()Ljava/lang/String;"));
@Nonnull
- private static final String TEST004_PACKAGE_STATELESS = "" +
+ private static final String TEST004_PACKAGE_STATELESS = orderedByTypeName(
new Class(lambda(PKG_004, SHA_004, 0), types(PKG_004, "I0"))
.fields("$INST$0:" + lambda(PKG_004, SHA_004, 0))
.methods("<clinit>()V", "<init>()V",
"$m$0()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 1), types(PKG_004, "I0", "MarkerA"))
.fields("$INST$0:" + lambda(PKG_004, SHA_004, 1))
.methods("<clinit>()V", "<init>()V",
"$m$0()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 2), types(PKG_004, "I0", "MarkerA", "MarkerB"))
.fields("$INST$0:" + lambda(PKG_004, SHA_004, 2))
.methods("<clinit>()V", "<init>()V",
"$m$0()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 3), types(PKG_004, "I0", "MarkerB"))
.fields("$INST$0:" + lambda(PKG_004, SHA_004, 3))
.methods("<clinit>()V", "<init>()V",
"$m$0()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_004, SHA_004, 4), types(PKG_004, "I1", "MarkerA", "MarkerB"))
.fields("$INST$0:" + lambda(PKG_004, SHA_004, 4))
.methods("<clinit>()V", "<init>()V",
"$m$0()Ljava/lang/String;",
- "foo()Ljava/lang/String;");
+ "foo()Ljava/lang/String;"));
@Test
@Runtime
@@ -503,17 +517,17 @@
private static final String SHA_005 = "mEUip-rZCi8VUKLKTaQF6NNk0aM";
@Nonnull
- private static final String TEST005_PACKAGE = "" +
+ private static final String TEST005_PACKAGE = orderedByTypeName(
new Class(lambda(PKG_005, SHA_005, 0), types(PKG_005, "I0"))
.fields("$id:B")
.methods("<init>(B)V",
"$m$0()Ljava/lang/String;",
"$m$1()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_005, SHA_005, 1), types(PKG_005, "I1"))
.methods("<init>()V",
"$m$0()Ljava/lang/String;",
- "bar()Ljava/lang/String;") +
+ "bar()Ljava/lang/String;"),
new Class(lambda(PKG_005, SHA_005, 2), types(PKG_005, "I0"))
.fields("$id:B", "-$f0:Ljava/lang/Object;")
.methods("<init>(BLjava/lang/Object;)V",
@@ -522,16 +536,16 @@
"$m$2()Ljava/lang/String;",
"$m$3()Ljava/lang/String;",
"$m$4()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_005, SHA_005, 3), types(PKG_005, "I1"))
.fields("$id:B", "-$f0:Ljava/lang/Object;")
.methods("<init>(BLjava/lang/Object;)V",
"$m$0()Ljava/lang/String;",
"$m$1()Ljava/lang/String;",
- "bar()Ljava/lang/String;");
+ "bar()Ljava/lang/String;"));
@Nonnull
- private static final String TEST005_PACKAGE_INTERFACE = "" +
+ private static final String TEST005_PACKAGE_INTERFACE = orderedByTypeName(
new Class(lambda(PKG_005, SHA_005, 0), types(PKG_005, "I0", "I1"))
.fields("$id:B")
.methods("<init>(B)V",
@@ -539,7 +553,7 @@
"$m$1()Ljava/lang/String;",
"$m$2()Ljava/lang/String;",
"bar()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_005, SHA_005, 1), types(PKG_005, "I0", "I1"))
.fields("$id:B", "-$f0:Ljava/lang/Object;")
.methods("<init>(BLjava/lang/Object;)V",
@@ -551,10 +565,10 @@
"$m$5()Ljava/lang/String;",
"$m$6()Ljava/lang/String;",
"bar()Ljava/lang/String;",
- "foo()Ljava/lang/String;");
+ "foo()Ljava/lang/String;"));
@Nonnull
- private static final String TEST005_PACKAGE_INTERFACE_STATELESS = "" +
+ private static final String TEST005_PACKAGE_INTERFACE_STATELESS = orderedByTypeName(
new Class(lambda(PKG_005, SHA_005, 0), types(PKG_005, "I0", "I1"))
.fields("$id:B",
"$INST$0:" + lambda(PKG_005, SHA_005, 0),
@@ -565,7 +579,7 @@
"$m$1()Ljava/lang/String;",
"$m$2()Ljava/lang/String;",
"bar()Ljava/lang/String;",
- "foo()Ljava/lang/String;") +
+ "foo()Ljava/lang/String;"),
new Class(lambda(PKG_005, SHA_005, 1), types(PKG_005, "I0", "I1"))
.fields("$id:B", "-$f0:Ljava/lang/Object;")
.methods("<init>(BLjava/lang/Object;)V",
@@ -577,7 +591,7 @@
"$m$5()Ljava/lang/String;",
"$m$6()Ljava/lang/String;",
"bar()Ljava/lang/String;",
- "foo()Ljava/lang/String;");
+ "foo()Ljava/lang/String;"));
@Test
@Runtime
@@ -605,47 +619,44 @@
private static final String SHA_006_B = "N-kUn0qIgGhcb5JJeaFqgDggm3E";
@Nonnull
- private static final String TEST006_NONE = "" +
+ private static final String TEST006_NONE = orderedByTypeName(
new Class(lambda(PKG_006, SHA_006_A, 0), types(PKG_006, "Producer"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;"),
new Class(lambda(PKG_006, SHA_006_A, 1), types(PKG_006, "Producer"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;"),
new Class(lambda(PKG_006, SHA_006_A, 2), types(PKG_006, "Producer"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;"),
new Class(lambda(PKG_006, SHA_006_A, 3), types(PKG_006, "Producer"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;") +
- new Class(lambda(PKG_006, SHA_006_B, 4), types(PKG_006, "Producer"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;") +
- new Class(lambda(PKG_006, SHA_006_B, 5), types(PKG_006, "Producer"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;") +
- new Class(lambda(PKG_006, SHA_006_B, 6), types(PKG_006, "Producer"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;") +
- "";
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;"),
+ new Class(lambda(PKG_006, SHA_006_B, 0), types(PKG_006, "Producer"))
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;"),
+ new Class(lambda(PKG_006, SHA_006_B, 1), types(PKG_006, "Producer"))
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;"),
+ new Class(lambda(PKG_006, SHA_006_B, 2), types(PKG_006, "Producer"))
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "run()Ljava/lang/String;"));
@Nonnull
- private static final String TEST006_TYPE = "" +
+ private static final String TEST006_TYPE = orderedByTypeName(
new Class(lambda(PKG_006, SHA_006_A, 0), types(PKG_006, "Producer"))
.fields("$id:B")
.methods("<init>(B)V", "$m$0()Ljava/lang/String;", "$m$1()Ljava/lang/String;",
- "$m$2()Ljava/lang/String;", "$m$3()Ljava/lang/String;", "run()Ljava/lang/String;") +
- new Class(lambda(PKG_006, SHA_006_B, 1), types(PKG_006, "Producer"))
+ "$m$2()Ljava/lang/String;", "$m$3()Ljava/lang/String;", "run()Ljava/lang/String;"),
+ new Class(lambda(PKG_006, SHA_006_B, 0), types(PKG_006, "Producer"))
.fields("$id:B")
.methods("<init>(B)V", "$m$0()Ljava/lang/String;", "$m$1()Ljava/lang/String;",
- "$m$2()Ljava/lang/String;", "run()Ljava/lang/String;") +
- "";
+ "$m$2()Ljava/lang/String;", "run()Ljava/lang/String;"));
@Nonnull
private static final String SHA_006_ALL = "aRztprv3kbtT1k5EHkFo2yXbFfg";
@Nonnull
- private static final String TEST006_PACKAGE = "" +
+ private static final String TEST006_PACKAGE = orderedByTypeName(
new Class(lambda(PKG_006, SHA_006_ALL, 0), types(PKG_006, "Producer"))
.fields("$id:B")
.methods("<init>(B)V", "$m$0()Ljava/lang/String;", "$m$1()Ljava/lang/String;",
"$m$2()Ljava/lang/String;", "$m$3()Ljava/lang/String;",
"$m$4()Ljava/lang/String;", "$m$5()Ljava/lang/String;",
- "$m$6()Ljava/lang/String;", "run()Ljava/lang/String;") +
- "";
+ "$m$6()Ljava/lang/String;", "run()Ljava/lang/String;"));
@Test
@Runtime
@@ -671,25 +682,23 @@
private static final String SHA_007 = "VIf7bh4a9R2eWK07TARcQzoADH4";
@Nonnull
- private static final String TEST007_DEFAULT = "" +
+ private static final String TEST007_DEFAULT = orderedByTypeName(
new Class(lambda(PKG_007, SHA_007, 0), types(PKG_007, "Ic", "Ia", "Ib"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;"),
new Class(lambda(PKG_007, SHA_007, 1), types(PKG_007, "Ic", "Iaa"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;"),
new Class(lambda(PKG_007, SHA_007, 2), types(PKG_007, "Ic", "Ib"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;") +
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;"),
new Class(lambda(PKG_007, SHA_007, 3), types(PKG_007, "Ic", "Ib", "Ia"))
- .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;") +
- "";
+ .methods("<init>()V", "$m$0()Ljava/lang/String;", "m()Ljava/lang/String;"));
@Nonnull
- private static final String TEST007_MERGE_INTERFACES = "" +
+ private static final String TEST007_MERGE_INTERFACES = orderedByTypeName(
new Class(lambda(PKG_007, SHA_007, 0), types(PKG_007, "Ia", "Iaa", "Ib", "Ic"))
.fields("$id:B")
.methods("<init>(B)V", "m()Ljava/lang/String;",
"$m$0()Ljava/lang/String;", "$m$1()Ljava/lang/String;",
- "$m$2()Ljava/lang/String;", "$m$3()Ljava/lang/String;") +
- "";
+ "$m$2()Ljava/lang/String;", "$m$3()Ljava/lang/String;"));
@Test
diff --git a/jack-tests/tests/com/android/jack/optimizations/modifiers/ModifiersTighteningTests.java b/jack-tests/tests/com/android/jack/optimizations/modifiers/ModifiersTighteningTests.java
index a8aa298..bbe4531 100644
--- a/jack-tests/tests/com/android/jack/optimizations/modifiers/ModifiersTighteningTests.java
+++ b/jack-tests/tests/com/android/jack/optimizations/modifiers/ModifiersTighteningTests.java
@@ -26,6 +26,7 @@
import com.android.jack.test.dex.DexTypeMethodsValidator;
import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.junit.Runtime;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JillBasedToolchain;
import org.junit.Test;
@@ -153,7 +154,7 @@
@Test
@Runtime
- @KnownIssue(candidate = JillBasedToolchain.class)
+ @KnownIssue(candidate = {JillBasedToolchain.class, IncrementalToolchain.class})
public void test003() throws Exception {
String testPackage = "com.android.jack.optimizations.modifiers.test003";
diff --git a/jack-tests/tests/com/android/jack/optimizations/valuepropagation/ValuePropagationTests.java b/jack-tests/tests/com/android/jack/optimizations/valuepropagation/ValuePropagationTests.java
index 847c139..2ea4490 100644
--- a/jack-tests/tests/com/android/jack/optimizations/valuepropagation/ValuePropagationTests.java
+++ b/jack-tests/tests/com/android/jack/optimizations/valuepropagation/ValuePropagationTests.java
@@ -22,7 +22,9 @@
import com.android.jack.test.dex.DexOutputBasedTest;
import com.android.jack.test.dex.DexTypeMethodsValidator;
import com.android.jack.test.dex.DexTypeMissingMethodValidator;
+import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.junit.Runtime;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import org.junit.Test;
@@ -59,6 +61,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test001() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test001";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test001/jack/A;";
@@ -80,6 +83,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test002() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test002";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test002/jack/A;";
@@ -108,6 +112,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test003() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test003";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test003/jack/A;";
@@ -146,6 +151,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test004() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test004";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test004/jack/A;";
@@ -171,6 +177,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test005() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test005";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test005/jack/A;";
@@ -192,6 +199,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test101() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test101";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test101/jack/A;";
@@ -216,6 +224,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test102() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test102";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test102/jack/A;";
@@ -263,6 +272,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test103() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test103";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test103/jack/A;";
@@ -290,6 +300,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test104() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test104";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test104/jack/A;";
@@ -320,6 +331,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test105() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test105";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test105/jack/A;";
@@ -361,6 +373,7 @@
@Test
@Runtime
+ @KnownIssue(candidate=IncrementalToolchain.class)
public void test106() throws Exception {
String test = "com.android.jack.optimizations.valuepropagation.test106";
String aType = "Lcom/android/jack/optimizations/valuepropagation/test106/jack/A;";
diff --git a/jack-tests/tests/com/android/jack/reflect/ReflectTests.java b/jack-tests/tests/com/android/jack/reflect/ReflectTests.java
index ca29e0d..6ebab40 100644
--- a/jack-tests/tests/com/android/jack/reflect/ReflectTests.java
+++ b/jack-tests/tests/com/android/jack/reflect/ReflectTests.java
@@ -22,6 +22,7 @@
import com.android.jack.test.runtime.RuntimeTest;
import com.android.jack.test.runtime.RuntimeTestInfo;
import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.LegacyToolchain;
import com.android.jack.unary.UnaryTests;
import org.junit.BeforeClass;
@@ -55,7 +56,8 @@
@Test
@Runtime
public void simpleName002() throws Exception {
- new RuntimeTestHelper(TEST001_WITH_SHRINK_SCHEDULABLE).compileAndRunTest();
+ new RuntimeTestHelper(TEST001_WITH_SHRINK_SCHEDULABLE)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class).compileAndRunTest();
}
@Override
diff --git a/jack-tests/tests/com/android/jack/resource/ResourceTests.java b/jack-tests/tests/com/android/jack/resource/ResourceTests.java
index e61ab6e..e740159 100644
--- a/jack-tests/tests/com/android/jack/resource/ResourceTests.java
+++ b/jack-tests/tests/com/android/jack/resource/ResourceTests.java
@@ -20,10 +20,8 @@
import com.android.jack.library.FileTypeDoesNotExistException;
import com.android.jack.library.InputJackLibrary;
import com.android.jack.shrob.obfuscation.NameProviderFactory;
-import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.IToolchain;
-import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JackApiToolchainBase;
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.JillApiToolchainBase;
@@ -206,7 +204,6 @@
}
@Test
- @KnownIssue(candidate=IncrementalToolchain.class)
public void testJackArchiveToJackDir() throws Exception {
// compile source file to a Jack archive and add resources
File jackAr = createJackArchiveWithResources();
@@ -234,7 +231,6 @@
}
@Test
- @KnownIssue(candidate=IncrementalToolchain.class)
public void testJackDirToJackDir() throws Exception {
// compile source file to a Jack dir
File jackFolder = AbstractTestTools.createTempDir();
diff --git a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java
index a5dab7b..7f6d639 100644
--- a/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/ObfuscationWithoutMappingTests.java
@@ -130,6 +130,38 @@
super.test15_001();
}
+ @Test
+ @Runtime
+ public void test49_001() throws Exception {
+ runTest("049", "001", "");
+ }
+
+ @Test
+ @Runtime
+ public void test51() throws Exception {
+ String testPackageName = "com.android.jack.shrob.test051";
+ File testFolder = AbstractTestTools.getTestRootDir(testPackageName);
+ File proguardFlagsFile = new File(testFolder, "proguard.flags001");
+ ByteArrayOutputStream errOut = new ByteArrayOutputStream();
+
+ try {
+ List<Class<? extends IToolchain>> excludeList = new ArrayList<Class<? extends IToolchain>>(1);
+ excludeList.add(JackCliToolchain.class);
+ IToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, excludeList);
+ toolchain.setErrorStream(errOut);
+ toolchain.addToClasspath(toolchain.getDefaultBootClasspath())
+ .addProguardFlags(proguardFlagsFile).srcToExe(AbstractTestTools.createTempDir(),
+ /* zipFile = */false, AbstractTestTools.getTestRootDir(testPackageName + ".jack"));
+ Assert.fail();
+ } catch (JackAbortException jae) {
+ Assert.assertTrue(jae.getCause() instanceof MappingContextException);
+ String errString = errOut.toString();
+ Assert.assertTrue(errString.contains("could not be renamed to " +
+ "'com.android.jack.shrob.test051.jack.C' since the name was already used"));
+ }
+ }
+
/**
* Test Obfuscation when a whole package is missing from the classpath.
*/
@@ -235,6 +267,11 @@
runTest("056", "001", "");
}
+ @Test
+ public void test58_001() throws Exception {
+ runTest("058", "001", "");
+ }
+
@Nonnull
private static File shrobTestsDir =
AbstractTestTools.getTestRootDir("com.android.jack.shrob");
diff --git a/jack-tests/tests/com/android/jack/shrob/ShrinkMultiDexTests.java b/jack-tests/tests/com/android/jack/shrob/ShrinkMultiDexTests.java
index 6936e92..8ea98c4 100644
--- a/jack-tests/tests/com/android/jack/shrob/ShrinkMultiDexTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/ShrinkMultiDexTests.java
@@ -25,9 +25,11 @@
import com.android.jack.test.category.SlowTests;
import com.android.jack.test.comparator.ComparatorMapping;
import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
+import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.DummyToolchain;
import com.android.jack.test.toolchain.IToolchain;
+import com.android.jack.test.toolchain.IncrementalToolchain;
import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.jack.test.toolchain.TwoStepsToolchain;
@@ -151,6 +153,12 @@
super.test1_016();
}
+ @Override
+ @KnownIssue(candidate=IncrementalToolchain.class)
+ public void test5_005() throws Exception {
+ super.test5_005();
+ }
+
@Test
@Override
public void test8_001() throws Exception {
@@ -166,6 +174,12 @@
super.test11_002();
}
+ @Override
+ @KnownIssue(candidate=IncrementalToolchain.class)
+ public void test16_001() throws Exception {
+ super.test16_001();
+ }
+
@Test
@Override
public void test17_001() throws Exception {
diff --git a/jack-tests/tests/com/android/jack/shrob/ShrobRuntimeTests.java b/jack-tests/tests/com/android/jack/shrob/ShrobRuntimeTests.java
index 874ca17..dec6a2f 100644
--- a/jack-tests/tests/com/android/jack/shrob/ShrobRuntimeTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/ShrobRuntimeTests.java
@@ -16,6 +16,7 @@
package com.android.jack.shrob;
+import com.android.jack.shrob.shrink.MappingCollisionException;
import com.android.jack.test.helper.RuntimeTestHelper;
import com.android.jack.test.junit.KnownIssue;
import com.android.jack.test.junit.Runtime;
@@ -23,6 +24,9 @@
import com.android.jack.test.runtime.RuntimeTestInfo;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.JillBasedToolchain;
+import com.android.jack.test.toolchain.LegacyToolchain;
+
+import junit.framework.Assert;
import org.junit.Test;
@@ -42,6 +46,16 @@
"com.android.jack.shrob.test016.dx.Tests").addProguardFlagsFileName("proguard.flags001")
.addProguardFlagsFileName("applyMapping.flags");
+ private RuntimeTestInfo TEST016_003 = new RuntimeTestInfo(
+ AbstractTestTools.getTestRootDir("com.android.jack.shrob.test016"),
+ "com.android.jack.shrob.test016.dx.Tests").addProguardFlagsFileName("proguard.flags003")
+ .addProguardFlagsFileName("applyMapping.flags");
+
+ private RuntimeTestInfo TEST016_004 = new RuntimeTestInfo(
+ AbstractTestTools.getTestRootDir("com.android.jack.shrob.test016"),
+ "com.android.jack.shrob.test016.dx.Tests2").addProguardFlagsFileName("proguard.flags004")
+ .addProguardFlagsFileName("applyMapping.flags");
+
private RuntimeTestInfo TEST025 = new RuntimeTestInfo(
AbstractTestTools.getTestRootDir("com.android.jack.shrob.test025"),
"com.android.jack.shrob.test025.dx.Tests").addProguardFlagsFileName("proguard.flags001");
@@ -87,6 +101,22 @@
@Runtime
public void test016() throws Exception {
new RuntimeTestHelper(TEST016)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
+ .compileAndRunTest();
+ }
+
+ @Test
+ @Runtime
+ public void test016_003() throws Exception {
+ new RuntimeTestHelper(TEST016_003)
+ .addIgnoredCandidateToolchain(LegacyToolchain.class)
+ .compileAndRunTest();
+ }
+
+ @Test
+ @Runtime
+ public void test016_004() throws Exception {
+ new RuntimeTestHelper(TEST016_004)
.compileAndRunTest();
}
diff --git a/jack-tests/tests/com/android/jack/shrob/test009/proguard.flags003 b/jack-tests/tests/com/android/jack/shrob/test009/proguard.flags003
index fc2359a..e6ff9df 100644
--- a/jack-tests/tests/com/android/jack/shrob/test009/proguard.flags003
+++ b/jack-tests/tests/com/android/jack/shrob/test009/proguard.flags003
@@ -1,3 +1,3 @@
-keep class ** {
- void m(int,...,long,...);
+ void m(int,...,long);
}
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/shrob/test011/jack/A.java b/jack-tests/tests/com/android/jack/shrob/test011/jack/A.java
index c424112..f4d2521 100644
--- a/jack-tests/tests/com/android/jack/shrob/test011/jack/A.java
+++ b/jack-tests/tests/com/android/jack/shrob/test011/jack/A.java
@@ -26,7 +26,7 @@
Object o = bClass.newInstance();
try {
- String cName = "com.android.jack.shrob.test011.jack.C";
+ final String cName = "com.android.jack.shrob.test011.jack.C";
Class<?> cClass = Class.forName(cName);
throw new RuntimeException();
} catch (ClassNotFoundException e) {
diff --git a/jack-tests/tests/com/android/jack/shrob/test016/dx/Tests2.java b/jack-tests/tests/com/android/jack/shrob/test016/dx/Tests2.java
new file mode 100644
index 0000000..a705327
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test016/dx/Tests2.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.shrob.test016.dx;
+
+import com.android.jack.shrob.test016.jack.KeepClass;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+public class Tests2 {
+
+ @Test
+ public void test() {
+ Assert.assertEquals("com.android.jack.shrob.test016.jack.A", KeepClass.value());
+ Assert.assertEquals("Lcom.android.jack.shrob.test016.jack.A;", KeepClass.value2());
+ Assert.assertEquals("com/android/jack/shrob/test016/jack/A", KeepClass.value3());
+ Assert.assertEquals("Lcom/android/jack/shrob/test016/jack/A;", KeepClass.value4());
+ Assert.assertEquals("A", KeepClass.value5());
+ Assert.assertEquals("[com.android.jack.shrob.test016.jack.A", KeepClass.value6());
+ Assert.assertEquals("com.android.jack.shrob.test016.jack.A[]", KeepClass.value7());
+ Assert.assertEquals("dfgdgcom.android.jack.shrob.test016.jack.A", KeepClass.value8());
+ Assert.assertEquals("com.android.jack.shrob.test016.jack.Afgdg", KeepClass.value9());
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/shrob/test016/proguard.flags003 b/jack-tests/tests/com/android/jack/shrob/test016/proguard.flags003
new file mode 100644
index 0000000..c5b4503
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test016/proguard.flags003
@@ -0,0 +1,8 @@
+-dontshrink
+-keepclassmembernames class ** {
+ <methods>;
+}
+-adaptclassstrings com.android.jack.shrob.test016.jack.KeepClass
+-keepattributes RuntimeVisibleAnnotations
+
+-keepnames class com.android.jack.shrob.test016.jack.KeepClass,**.KeepClass2,**.KeepClass3
diff --git a/jack-tests/tests/com/android/jack/shrob/test016/proguard.flags004 b/jack-tests/tests/com/android/jack/shrob/test016/proguard.flags004
new file mode 100644
index 0000000..e27433b
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test016/proguard.flags004
@@ -0,0 +1,8 @@
+-dontshrink
+-keepclassmembernames class ** {
+ <methods>;
+}
+-adaptclassstrings !**.KeepClass
+-keepattributes RuntimeVisibleAnnotations
+
+-keepnames class com.android.jack.shrob.test016.jack.KeepClass,**.KeepClass2,**.KeepClass3
diff --git a/jack-tests/tests/com/android/jack/shrob/test048/proguard.flags001 b/jack-tests/tests/com/android/jack/shrob/test048/proguard.flags001
index 24f0192..507dc64 100644
--- a/jack-tests/tests/com/android/jack/shrob/test048/proguard.flags001
+++ b/jack-tests/tests/com/android/jack/shrob/test048/proguard.flags001
@@ -1,5 +1,6 @@
-dontshrink
-applymapping mapping.txt
+-adaptclassstrings
-keepclasseswithmembers public class * {
public static java.lang.String testMethod();
diff --git a/jack-tests/tests/com/android/jack/shrob/test049/info.txt b/jack-tests/tests/com/android/jack/shrob/test049/info.txt
new file mode 100644
index 0000000..3591acd
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test049/info.txt
@@ -0,0 +1,2 @@
+This test contains a class which contains an inner class and members using this
+inner class.
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java b/jack-tests/tests/com/android/jack/shrob/test049/jack/MyClass.java
similarity index 72%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java
copy to jack-tests/tests/com/android/jack/shrob/test049/jack/MyClass.java
index 8c344dd..69a3cff 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInitWithVariableInit.java
+++ b/jack-tests/tests/com/android/jack/shrob/test049/jack/MyClass.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.shrob.test049.jack;
-public class ClInitWithVariableInit {
+public class MyClass implements MyInterface {
+ public static Inner<Object> field;
- static {
- int lv = 5;
+ public static class Inner <T> {
+
}
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/shrob/test049/jack/MyInterface.java
similarity index 80%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/shrob/test049/jack/MyInterface.java
index 680f9cf..98bd095 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/shrob/test049/jack/MyInterface.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.shrob.test049.jack;
-public class ClInit {
-
+public interface MyInterface {
}
diff --git a/jack-tests/tests/com/android/jack/shrob/test049/proguard.flags001 b/jack-tests/tests/com/android/jack/shrob/test049/proguard.flags001
new file mode 100644
index 0000000..8d0683b
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test049/proguard.flags001
@@ -0,0 +1,4 @@
+-dontshrink
+-keepclassmembernames class * implements **.MyInterface {
+ public static com.android.jack.shrob.test049.jack.MyClass$Inner field;
+}
diff --git a/jack-tests/tests/com/android/jack/shrob/test049/refsObfuscationWithoutMapping/expected-001.txt b/jack-tests/tests/com/android/jack/shrob/test049/refsObfuscationWithoutMapping/expected-001.txt
new file mode 100644
index 0000000..4e4ee9e
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test049/refsObfuscationWithoutMapping/expected-001.txt
@@ -0,0 +1,6 @@
+com.android.jack.shrob.test049.jack.MyInterface -> pbz.naqebvq.wnpx.fuebo.grfg049.wnpx.ZlVagresnpr:
+com.android.jack.shrob.test049.jack.MyClass -> pbz.naqebvq.wnpx.fuebo.grfg049.wnpx.ZlPynff:
+ com.android.jack.shrob.test049.jack.MyClass$Inner field -> field
+ void <init>() -> <init>
+com.android.jack.shrob.test049.jack.MyClass$Inner -> pbz.naqebvq.wnpx.fuebo.grfg049.wnpx.ZlPynff$Vaare:
+ void <init>() -> <init>
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/shrob/test051/info.txt b/jack-tests/tests/com/android/jack/shrob/test051/info.txt
new file mode 100644
index 0000000..1069f85
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test051/info.txt
@@ -0,0 +1 @@
+This test contains two classes obfuscated with the same name
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/shrob/test051/jack/A.java
similarity index 82%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/shrob/test051/jack/A.java
index 680f9cf..e059035 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/shrob/test051/jack/A.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.shrob.test051.jack;
-public class ClInit {
-
+public class A {
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/shrob/test051/jack/B.java
similarity index 82%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/shrob/test051/jack/B.java
index 680f9cf..a9c3f3b 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/shrob/test051/jack/B.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.shrob.test051.jack;
-public class ClInit {
-
+public class B {
}
diff --git a/jack-tests/tests/com/android/jack/shrob/test051/mapping.flags b/jack-tests/tests/com/android/jack/shrob/test051/mapping.flags
new file mode 100644
index 0000000..9c6ffe6
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test051/mapping.flags
@@ -0,0 +1,2 @@
+com.android.jack.shrob.test051.jack.A -> com.android.jack.shrob.test051.jack.C:
+com.android.jack.shrob.test051.jack.B -> com.android.jack.shrob.test051.jack.C:
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/shrob/test051/proguard.flags001 b/jack-tests/tests/com/android/jack/shrob/test051/proguard.flags001
new file mode 100644
index 0000000..3ffecb5
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test051/proguard.flags001
@@ -0,0 +1,2 @@
+-dontshrink
+-applymapping mapping.flags
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/shrob/test058/info.txt b/jack-tests/tests/com/android/jack/shrob/test058/info.txt
new file mode 100644
index 0000000..3591acd
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test058/info.txt
@@ -0,0 +1,2 @@
+This test contains a class which contains an inner class and members using this
+inner class.
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/shrob/test058/jack/MyClass.java
similarity index 66%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/shrob/test058/jack/MyClass.java
index 680f9cf..d6d7ddc 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/shrob/test058/jack/MyClass.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,16 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.shrob.test058.jack;
-public class ClInit {
+public class MyClass implements MyInterface {
+ public static final Inner<Object> field = null;
+ public Inner m(Inner t) {
+ return null;
+ }
+
+ public static class Inner <T> {
+
+ }
}
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/jack-tests/tests/com/android/jack/shrob/test058/jack/MyInterface.java
similarity index 80%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to jack-tests/tests/com/android/jack/shrob/test058/jack/MyInterface.java
index 680f9cf..38bc8d9 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/jack-tests/tests/com/android/jack/shrob/test058/jack/MyInterface.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.jack.shrob.test058.jack;
-public class ClInit {
-
+public interface MyInterface {
}
diff --git a/jack-tests/tests/com/android/jack/shrob/test058/proguard.flags001 b/jack-tests/tests/com/android/jack/shrob/test058/proguard.flags001
new file mode 100644
index 0000000..d3092c4
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test058/proguard.flags001
@@ -0,0 +1,6 @@
+-keep, allowobfuscation class **.MyClass
+-keepclassmembers class * implements **.MyInterface {
+ public static final *.* field;
+ public *.* m(...);
+ public *** m(*.*);
+}
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/shrob/test058/refsObfuscationWithoutMapping/expected-001.txt b/jack-tests/tests/com/android/jack/shrob/test058/refsObfuscationWithoutMapping/expected-001.txt
new file mode 100644
index 0000000..8b4b00c
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/shrob/test058/refsObfuscationWithoutMapping/expected-001.txt
@@ -0,0 +1,2 @@
+com.android.jack.shrob.test058.jack.MyClass -> pbz.naqebvq.wnpx.fuebo.grfg058.wnpx.ZlPynff:
+ void <init>() -> <init>
\ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/string/StringTests.java b/jack-tests/tests/com/android/jack/string/StringTests.java
index 93ce8ed..b459542 100644
--- a/jack-tests/tests/com/android/jack/string/StringTests.java
+++ b/jack-tests/tests/com/android/jack/string/StringTests.java
@@ -41,7 +41,9 @@
AbstractTestTools.getTestRootDir("com.android.jack.string.concat003"),
"com.android.jack.string.concat003.dx.Tests");
-
+ private RuntimeTestInfo CONCAT004 = new RuntimeTestInfo(
+ AbstractTestTools.getTestRootDir("com.android.jack.string.concat004"),
+ "com.android.jack.string.concat004.jack.Tests").setSrcDirName("");
@Test
public void testCompileNewString() throws Exception {
@@ -74,10 +76,18 @@
new RuntimeTestHelper(CONCAT003).compileAndRunTest();
}
+ @Test
+ @Runtime
+ @Category(RuntimeRegressionTest.class)
+ public void concat004() throws Exception {
+ new RuntimeTestHelper(CONCAT004).compileAndRunTest();
+ }
+
@Override
protected void fillRtTestInfos() {
rtTestInfos.add(CONCAT001);
rtTestInfos.add(CONCAT002);
rtTestInfos.add(CONCAT003);
+ rtTestInfos.add(CONCAT004);
}
}
diff --git a/jack-tests/tests/com/android/jack/string/concat004/jack/Tests.java b/jack-tests/tests/com/android/jack/string/concat004/jack/Tests.java
new file mode 100644
index 0000000..08d0113
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/string/concat004/jack/Tests.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.string.concat004.jack;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+public class Tests {
+
+ public String field = "a" + "b";
+
+ @Test
+ public void test1() {
+ String str = "a" + "b";
+ Assert.assertTrue(str == "ab");
+ }
+
+ @Test
+ public void test2() {
+ String str = "ab";
+ Assert.assertTrue(str == field);
+ }
+
+
+ @Test
+ public void test3() {
+ String str = "a" + null;
+ Assert.assertFalse(str == "anull");
+ }
+
+ @Test
+ public void test4() {
+ String str = (String) null + null;
+ Assert.assertFalse(str == "nullnull");
+ }
+}
diff --git a/jack/build.gradle b/jack/build.gradle
index 937a75c..0751ff9 100644
--- a/jack/build.gradle
+++ b/jack/build.gradle
@@ -160,13 +160,22 @@
commandLine 'java', '-jar', configurations.jarjar.singleFile, 'process', "jarjar-rules.txt", fullJackJar.archivePath, file("${buildDir}/libs/jack.jar")
}
+task jackDevJar (type: Jar, dependsOn: jarjar){
+ baseName 'jack'
+ classifier 'dev'
+ from (zipTree("${buildDir}/libs/jack.jar")) {
+ // Manage exclusion of packages to be hidden from plugin developers
+ }
+}
+
compileJava.dependsOn preprocessorParserTask
compileJava.dependsOn proguardParserTask
jar.dependsOn createJackVersionFile
-assemble.dependsOn jarjar
+assemble.dependsOn jarjar, jackDevJar
task dist (type: Copy, dependsOn: assemble) {
from file("${buildDir}/libs/jack.jar")
+ from jackDevJar.archivePath
into file("${rootDir}/gradle-dist/")
}
diff --git a/jack/src/com/android/jack/Jack.java b/jack/src/com/android/jack/Jack.java
index 3ee7a0e..ba06388 100644
--- a/jack/src/com/android/jack/Jack.java
+++ b/jack/src/com/android/jack/Jack.java
@@ -182,27 +182,29 @@
import com.android.jack.shrob.obfuscation.annotation.AnnotationDefaultValueRemover;
import com.android.jack.shrob.obfuscation.annotation.FieldAnnotationRemover;
import com.android.jack.shrob.obfuscation.annotation.FieldGenericSignatureRemover;
-import com.android.jack.shrob.obfuscation.annotation.LineNumberRemover;
+import com.android.jack.shrob.obfuscation.annotation.LocalVariableAndThisLineNumberRemover;
import com.android.jack.shrob.obfuscation.annotation.LocalVariableAndThisNameRemover;
-import com.android.jack.shrob.obfuscation.annotation.LocalVariableGenericSignatureRemover;
import com.android.jack.shrob.obfuscation.annotation.MethodAnnotationRemover;
import com.android.jack.shrob.obfuscation.annotation.MethodGenericSignatureRemover;
import com.android.jack.shrob.obfuscation.annotation.ParameterAnnotationRemover;
+import com.android.jack.shrob.obfuscation.annotation.ParameterLineNumberRemover;
import com.android.jack.shrob.obfuscation.annotation.ParameterNameRemover;
import com.android.jack.shrob.obfuscation.annotation.RemoveAnnotationDefaultValue;
import com.android.jack.shrob.obfuscation.annotation.RemoveEnclosingMethodFeature;
import com.android.jack.shrob.obfuscation.annotation.RemoveEnclosingType;
import com.android.jack.shrob.obfuscation.annotation.RemoveGenericSignature;
-import com.android.jack.shrob.obfuscation.annotation.RemoveLineNumber;
-import com.android.jack.shrob.obfuscation.annotation.RemoveLocalVariableGenericSignature;
+import com.android.jack.shrob.obfuscation.annotation.RemoveLocalLineNumber;
import com.android.jack.shrob.obfuscation.annotation.RemoveLocalVariableName;
+import com.android.jack.shrob.obfuscation.annotation.RemoveParameterLineNumber;
import com.android.jack.shrob.obfuscation.annotation.RemoveParameterName;
import com.android.jack.shrob.obfuscation.annotation.RemoveThrownException;
+import com.android.jack.shrob.obfuscation.annotation.RemoveVariableGenericSignature;
import com.android.jack.shrob.obfuscation.annotation.ThrownExceptionRemover;
import com.android.jack.shrob.obfuscation.annotation.TypeAnnotationRemover;
import com.android.jack.shrob.obfuscation.annotation.TypeEnclosingMethodRemover;
import com.android.jack.shrob.obfuscation.annotation.TypeEnclosingTypeRemover;
import com.android.jack.shrob.obfuscation.annotation.TypeGenericSignatureRemover;
+import com.android.jack.shrob.obfuscation.annotation.VariableGenericSignatureRemover;
import com.android.jack.shrob.obfuscation.resource.AdaptResourceFileContent;
import com.android.jack.shrob.obfuscation.resource.ResourceContentRefiner;
import com.android.jack.shrob.obfuscation.resource.ResourceRefiner;
@@ -608,7 +610,7 @@
request.addFeature(RemoveAnnotationDefaultValue.class);
}
if (!options.flags.keepAttribute("LocalVariableTypeTable")) {
- request.addFeature(RemoveLocalVariableGenericSignature.class);
+ request.addFeature(RemoveVariableGenericSignature.class);
}
if (!options.flags.keepAttribute("Exceptions")) {
request.addFeature(RemoveThrownException.class);
@@ -616,14 +618,18 @@
if (!options.flags.keepAttribute("SourceFile")) {
request.addFeature(RemoveSourceFile.class);
}
- if (!options.flags.keepAttribute("LineNumberTable")) {
- request.addFeature(RemoveLineNumber.class);
+ if (!config.get(RemoveLocalLineNumber.KEEP_LOCAL_LINE_NUMBER).booleanValue()) {
+ request.addFeature(RemoveLocalLineNumber.class);
}
- if (!options.flags.keepAttribute("LocalVariableTable")) {
+ if (!config.get(RemoveParameterLineNumber.KEEP_PARAMETER_LINE_NUMBER)
+ .booleanValue()) {
+ request.addFeature(RemoveParameterLineNumber.class);
+ }
+ if (!config.get(RemoveLocalVariableName.KEEP_LOCAL_NAME).booleanValue()) {
request.addFeature(RemoveLocalVariableName.class);
- if (!options.flags.getKeepParameterNames()) {
- request.addFeature(RemoveParameterName.class);
- }
+ }
+ if (!config.get(RemoveParameterName.KEEP_PARAMETER_NAME).booleanValue()) {
+ request.addFeature(RemoveParameterName.class);
}
}
if (options.flags.printSeeds()) {
@@ -834,7 +840,8 @@
}
} catch (UnsupportedOperationException e) {
// ... but use a manual one if not supported
- if (pluginManager.hasPlugins()) {
+ if (pluginManager.hasPlugins() ||
+ config.get(Options.FORCE_PLAN_AMENDER).booleanValue()) {
// If there are some plugins, amend the handcrafted plan
// Add features and productions according to plugins
@@ -1708,7 +1715,6 @@
}
methodPlan4.append(UselessIfRemover.class);
methodPlan4.append(CfgMarkerRemover.class);
- methodPlan4.append(CfgBuilder.class);
methodPlan4.append(ContainerAnnotationAdder.MethodContainerAnnotationAdder.class);
}
}
@@ -1723,6 +1729,7 @@
SubPlanBuilder<JDefinedClassOrInterface> typePlan =
planBuilder.appendSubPlan(JDefinedClassOrInterfaceAdapter.class);
SubPlanBuilder<JMethod> methodPlan = typePlan.appendSubPlan(JMethodAdapter.class);
+ methodPlan.append(CfgBuilder.class);
if (enableFieldValuePropagation) {
methodPlan.append(FvpPropagateFieldValues.class);
}
@@ -1733,7 +1740,6 @@
methodPlan.append(WofrRemoveFieldWrites.class);
}
methodPlan.append(CfgMarkerRemover.class);
- methodPlan.append(CfgBuilder.class);
}
SubPlanBuilder<JDefinedClassOrInterface> typePlan1 =
@@ -1753,6 +1759,7 @@
{
SubPlanBuilder<JMethod> methodPlan5 = typePlan6.appendSubPlan(JMethodAdapter.class);
+ methodPlan5.append(CfgBuilder.class);
methodPlan5.append(CodeItemBuilder.class);
methodPlan5.append(CfgMarkerRemover.class);
methodPlan5.append(EncodedMethodBuilder.class);
@@ -1827,9 +1834,6 @@
if (features.contains(RemoveGenericSignature.class)) {
typePlan.append(TypeGenericSignatureRemover.class);
}
- if (features.contains(RemoveLineNumber.class)) {
- typePlan.append(LineNumberRemover.class);
- }
{
SubPlanBuilder<JField> fieldPlan = typePlan.appendSubPlan(JFieldAdapter.class);
fieldPlan.append(FieldAnnotationRemover.class);
@@ -1844,8 +1848,8 @@
if (features.contains(RemoveGenericSignature.class)) {
methodPlan.append(MethodGenericSignatureRemover.class);
}
- if (features.contains(RemoveLocalVariableGenericSignature.class)) {
- methodPlan.append(LocalVariableGenericSignatureRemover.class);
+ if (features.contains(RemoveVariableGenericSignature.class)) {
+ methodPlan.append(VariableGenericSignatureRemover.class);
}
if (features.contains(RemoveAnnotationDefaultValue.class)) {
methodPlan.append(AnnotationDefaultValueRemover.class);
@@ -1856,9 +1860,15 @@
if (features.contains(RemoveParameterName.class)) {
methodPlan.append(ParameterNameRemover.class);
}
+ if (features.contains(RemoveParameterLineNumber.class)) {
+ methodPlan.append(ParameterLineNumberRemover.class);
+ }
if (features.contains(RemoveLocalVariableName.class)) {
methodPlan.append(LocalVariableAndThisNameRemover.class);
}
+ if (features.contains(RemoveLocalLineNumber.class)) {
+ methodPlan.append(LocalVariableAndThisLineNumberRemover.class);
+ }
}
}
}
diff --git a/jack/src/com/android/jack/Options.java b/jack/src/com/android/jack/Options.java
index b13ead8..274d745 100644
--- a/jack/src/com/android/jack/Options.java
+++ b/jack/src/com/android/jack/Options.java
@@ -45,6 +45,10 @@
import com.android.jack.shrob.obfuscation.SourceFileRenamer;
import com.android.jack.shrob.obfuscation.annotation.AnnotationRemover;
import com.android.jack.shrob.obfuscation.annotation.ParameterAnnotationRemover;
+import com.android.jack.shrob.obfuscation.annotation.RemoveLocalLineNumber;
+import com.android.jack.shrob.obfuscation.annotation.RemoveLocalVariableName;
+import com.android.jack.shrob.obfuscation.annotation.RemoveParameterLineNumber;
+import com.android.jack.shrob.obfuscation.annotation.RemoveParameterName;
import com.android.jack.shrob.seed.SeedPrinter;
import com.android.jack.shrob.spec.Flags;
import com.android.jack.transformations.enums.opt.OptimizedSwitchEnumSupport;
@@ -783,6 +787,12 @@
.setSeparator(",")
.ensureUnicity();
+ @Nonnull
+ public static final BooleanPropertyId FORCE_PLAN_AMENDER = BooleanPropertyId
+ .create("jack.plan-amender.force", "Force plan amender")
+ .addDefaultValue(false)
+ .addCategory(Private.class);
+
public void ensurePluginManager()
throws IllegalOptionsException {
if (pluginManager == null) {
@@ -1038,8 +1048,22 @@
ParameterAnnotationRemover.EMIT_RUNTIME_RETENTION_PARAMETER_ANNOTATION,
flags.keepAttribute("RuntimeVisibleParameterAnnotations"));
- configBuilder.set(EMIT_LINE_NUMBER_DEBUG_INFO, flags.keepAttribute("LineNumberTable"));
- configBuilder.set(EMIT_LOCAL_DEBUG_INFO, flags.keepAttribute("LocalVariableTable"));
+ boolean keepLineNumbers = flags.keepAttribute("LineNumberTable");
+ configBuilder.set(RemoveLocalLineNumber.KEEP_LOCAL_LINE_NUMBER,
+ keepLineNumbers);
+ if (!keepLineNumbers) {
+ configBuilder.set(RemoveParameterLineNumber.KEEP_PARAMETER_LINE_NUMBER,
+ flags.getKeepParameterNames());
+ } else {
+ configBuilder.set(RemoveParameterLineNumber.KEEP_PARAMETER_LINE_NUMBER, true);
+ }
+ boolean keepNames = flags.keepAttribute("LocalVariableTable");
+ configBuilder.set(RemoveLocalVariableName.KEEP_LOCAL_NAME, keepNames);
+ if (!keepNames) {
+ configBuilder.set(RemoveParameterName.KEEP_PARAMETER_NAME, flags.getKeepParameterNames());
+ } else {
+ configBuilder.set(RemoveParameterName.KEEP_PARAMETER_NAME, true);
+ }
}
configBuilder.set(Options.FLAGS, flags);
diff --git a/jack/src/com/android/jack/analysis/tracer/Tracer.java b/jack/src/com/android/jack/analysis/tracer/Tracer.java
index 220a535..1f2edab 100644
--- a/jack/src/com/android/jack/analysis/tracer/Tracer.java
+++ b/jack/src/com/android/jack/analysis/tracer/Tracer.java
@@ -566,8 +566,11 @@
@Override
public void endVisit(@Nonnull JVariableRef x) {
DebugVariableInfoMarker debugInfo = x.getMarker(DebugVariableInfoMarker.class);
- if (debugInfo != null && debugInfo.getType() != null) {
- trace(debugInfo.getType());
+ if (debugInfo != null) {
+ JType debugInfoType = debugInfo.getType();
+ if (debugInfoType != null) {
+ trace(debugInfoType);
+ }
}
}
diff --git a/jack/src/com/android/jack/backend/dex/ClassAnnotationBuilder.java b/jack/src/com/android/jack/backend/dex/ClassAnnotationBuilder.java
index 83c9629..8c3b6c7 100644
--- a/jack/src/com/android/jack/backend/dex/ClassAnnotationBuilder.java
+++ b/jack/src/com/android/jack/backend/dex/ClassAnnotationBuilder.java
@@ -38,7 +38,7 @@
import javax.annotation.Nonnull;
/**
- * Builds the {@link com.android.dx.rop.annotation.Annotations Annotations} of a class or interface.
+ * Builds the {@link Annotations} of a class or interface.
*/
@Description("Builds the rop annotations of a JDeclaredType.")
@Constraint(need = ClassDefItemMarker.class, no = AnnotationMethodDefaultValue.class)
diff --git a/jack/src/com/android/jack/backend/dex/DexWritingTool.java b/jack/src/com/android/jack/backend/dex/DexWritingTool.java
index d98bcba..408e512 100644
--- a/jack/src/com/android/jack/backend/dex/DexWritingTool.java
+++ b/jack/src/com/android/jack/backend/dex/DexWritingTool.java
@@ -38,8 +38,10 @@
import com.android.jack.util.AndroidApiLevel;
import com.android.sched.util.codec.VariableName;
import com.android.sched.util.config.ThreadConfig;
+import com.android.sched.util.file.CannotCloseException;
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.CannotReadException;
+import com.android.sched.util.file.CannotWriteException;
import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.Location;
import com.android.sched.util.log.Event;
@@ -63,7 +65,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.CheckForNull;
@@ -136,17 +137,13 @@
protected void finishMerge(@Nonnull JackMerger merger, @Nonnull OutputVFile out)
throws DexWritingException {
try (Event event = tracer.open(JackEventType.DEX_MERGER_FINISH)) {
- OutputStream os = null;
try {
- try {
- os = new BufferedOutputStream(out.getOutputStream());
- merger.finish(os);
- } finally {
- if (os != null) {
- os.close();
- }
+ try (OutputStream os = new BufferedOutputStream(out.getOutputStream())) {
+ merger.finish(os, out);
+ } catch (IOException e) {
+ throw new CannotCloseException(out, e);
}
- } catch (IOException | WrongPermissionException e) {
+ } catch (CannotWriteException | CannotCloseException | WrongPermissionException e) {
throw new DexWritingException(e);
}
}
@@ -154,21 +151,15 @@
protected void mergeDex(@Nonnull JackMerger merger, InputVFile inputDex)
throws MergingOverflowException, DexWritingException {
- InputStream inputStream = null;
+
try {
- inputStream = inputDex.getInputStream();
- merger.addDexFile(new DexBuffer(inputStream, inputDex.getLocation()));
- } catch (CannotReadException | WrongPermissionException e) {
- throw new DexWritingException(e);
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException e) {
- logger.log(
- Level.WARNING, "Failed to close ''{0}''", inputDex.getLocation().getDescription());
- }
+ try (InputStream inputStream = inputDex.getInputStream()) {
+ merger.addDexFile(new DexBuffer(inputStream, inputDex.getLocation()));
+ } catch (IOException e) {
+ throw new CannotCloseException(inputDex, e);
}
+ } catch (CannotCloseException | CannotReadException | WrongPermissionException e) {
+ throw new DexWritingException(e);
}
}
diff --git a/jack/src/com/android/jack/backend/dex/FieldAnnotationBuilder.java b/jack/src/com/android/jack/backend/dex/FieldAnnotationBuilder.java
index f5be1e9..20923ef 100644
--- a/jack/src/com/android/jack/backend/dex/FieldAnnotationBuilder.java
+++ b/jack/src/com/android/jack/backend/dex/FieldAnnotationBuilder.java
@@ -40,7 +40,7 @@
import javax.annotation.Nonnull;
/**
- * Builds the {@link com.android.dx.rop.annotation.Annotations Annotations} of a field.
+ * Builds the {@link Annotations} of a field.
*/
@Description("Builds the rop annotations of a field")
@Synchronized
diff --git a/jack/src/com/android/jack/backend/dex/FieldInitializerRemover.java b/jack/src/com/android/jack/backend/dex/FieldInitializerRemover.java
index aa05ab9..db05111 100644
--- a/jack/src/com/android/jack/backend/dex/FieldInitializerRemover.java
+++ b/jack/src/com/android/jack/backend/dex/FieldInitializerRemover.java
@@ -29,6 +29,7 @@
import com.android.jack.ir.ast.JFieldInitializer;
import com.android.jack.ir.ast.JIntLiteral;
import com.android.jack.ir.ast.JLiteral;
+import com.android.jack.ir.ast.JNode;
import com.android.jack.ir.ast.JPrimitiveType;
import com.android.jack.ir.ast.JPrimitiveType.JPrimitiveTypeEnum;
import com.android.jack.ir.ast.JReferenceType;
@@ -97,7 +98,9 @@
JFieldInitializer declaration = field.getFieldInitializer();
if (declaration != null) {
JExpression initialValue = declaration.getInitializer();
- TransformationRequest tr = new TransformationRequest(declaration.getParent());
+ final JNode declarationParent = declaration.getParent();
+ assert declarationParent != null;
+ TransformationRequest tr = new TransformationRequest(declarationParent);
if (/* Field is static final and initialized by a literal */
field.isStatic() && field.isFinal() && initialValue instanceof JLiteral
/* Object field initialized by a String literal: don't remove unless allowed */
diff --git a/jack/src/com/android/jack/backend/dex/MethodAnnotationBuilder.java b/jack/src/com/android/jack/backend/dex/MethodAnnotationBuilder.java
index 5bb806b..765558e 100644
--- a/jack/src/com/android/jack/backend/dex/MethodAnnotationBuilder.java
+++ b/jack/src/com/android/jack/backend/dex/MethodAnnotationBuilder.java
@@ -46,7 +46,7 @@
import javax.annotation.Nonnull;
/**
- * Builds the {@link com.android.dx.rop.annotation.Annotations Annotations} of a method.
+ * Builds the {@link Annotations} of a method.
*/
@Description("Builds the rop annotations of a method")
@Synchronized
diff --git a/jack/src/com/android/jack/backend/dex/rop/RopBuilderVisitor.java b/jack/src/com/android/jack/backend/dex/rop/RopBuilderVisitor.java
index ef831b9..c7572e8 100644
--- a/jack/src/com/android/jack/backend/dex/rop/RopBuilderVisitor.java
+++ b/jack/src/com/android/jack/backend/dex/rop/RopBuilderVisitor.java
@@ -714,8 +714,10 @@
throws AssertionError {
if (value instanceof JExceptionRuntimeValue) {
assert dest instanceof JVariableRef;
- assert declaration.getParent() instanceof JCatchBlock
- && ((JCatchBlock) declaration.getParent()).getStatements().get(0) == declaration;
+ final JNode declarationParent = declaration.getParent();
+ assert declarationParent != null;
+ assert declarationParent instanceof JCatchBlock
+ && ((JCatchBlock) declarationParent).getStatements().get(0) == declaration;
RegisterSpec exceptionReg = ropReg.getOrCreateRegisterSpec((JVariableRef) dest);
addInstruction(new PlainInsn(
Rops.opMoveException(exceptionReg.getTypeBearer()), RopHelper.getSourcePosition(dest),
diff --git a/jack/src/com/android/jack/backend/jayce/JayceInLibraryWriter.java b/jack/src/com/android/jack/backend/jayce/JayceInLibraryWriter.java
index 5644d59..44d5d14 100644
--- a/jack/src/com/android/jack/backend/jayce/JayceInLibraryWriter.java
+++ b/jack/src/com/android/jack/backend/jayce/JayceInLibraryWriter.java
@@ -20,6 +20,7 @@
import com.android.jack.JackAbortException;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
import com.android.jack.ir.formatter.BinaryQualifiedNameFormatter;
+import com.android.jack.jayce.JayceInternalWriter;
import com.android.jack.jayce.JayceWriterFactory;
import com.android.jack.library.FileType;
import com.android.jack.library.InputLibrary;
@@ -33,15 +34,13 @@
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.util.file.CannotCloseException;
import com.android.sched.util.file.CannotCreateFileException;
-import com.android.sched.util.file.CannotReadException;
+import com.android.sched.util.file.CannotWriteException;
import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.Location;
import com.android.sched.vfs.OutputVFile;
import com.android.sched.vfs.VPath;
import java.io.BufferedOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
import javax.annotation.Nonnull;
@@ -81,16 +80,12 @@
try {
OutputVFile vFile = outputJackLibrary.createFile(FileType.JAYCE,
new VPath(BinaryQualifiedNameFormatter.getFormatter().getName(type), '/'));
- try (OutputStream out = new BufferedOutputStream(vFile.getOutputStream())) {
- try {
- JayceWriterFactory.get(outputJackLibrary, out).write(type);
- } catch (IOException e) {
- throw new CannotReadException(vFile, e);
- }
- } catch (IOException e) {
- throw new CannotCloseException(vFile, e);
+ try (JayceInternalWriter jayceWriter =
+ JayceWriterFactory.get(
+ outputJackLibrary, new BufferedOutputStream(vFile.getOutputStream()), vFile)) {
+ jayceWriter.write(type);
}
- } catch (CannotReadException | CannotCloseException | CannotCreateFileException
+ } catch (CannotWriteException | CannotCloseException | CannotCreateFileException
| WrongPermissionException e) {
LibraryWritingException reportable =
new LibraryWritingException(new LibraryIOException(outputJackLibrary.getLocation(), e));
diff --git a/jack/src/com/android/jack/debug/DebugVariableInfoMarker.java b/jack/src/com/android/jack/debug/DebugVariableInfoMarker.java
index 5687bf0..3101a37 100644
--- a/jack/src/com/android/jack/debug/DebugVariableInfoMarker.java
+++ b/jack/src/com/android/jack/debug/DebugVariableInfoMarker.java
@@ -39,7 +39,7 @@
new DebugVariableInfoMarker(null, null, null);
@CheckForNull
- private final String name;
+ private String name;
@CheckForNull
private final JType type;
@@ -59,6 +59,10 @@
return name;
}
+ public void setName(@CheckForNull String name) {
+ this.name = name;
+ }
+
@CheckForNull
public JType getType() {
return type;
diff --git a/jack/src/com/android/jack/dx/rop/code/LocalItem.java b/jack/src/com/android/jack/dx/rop/code/LocalItem.java
index 3c68b65..bd9b83b 100644
--- a/jack/src/com/android/jack/dx/rop/code/LocalItem.java
+++ b/jack/src/com/android/jack/dx/rop/code/LocalItem.java
@@ -16,6 +16,7 @@
package com.android.jack.dx.rop.code;
+import com.android.jack.dx.rop.cst.Constant;
import com.android.jack.dx.rop.cst.CstString;
import com.android.jack.dx.rop.type.Type;
diff --git a/jack/src/com/android/jack/incremental/CommonFilter.java b/jack/src/com/android/jack/incremental/CommonFilter.java
index d810517..3c12400 100644
--- a/jack/src/com/android/jack/incremental/CommonFilter.java
+++ b/jack/src/com/android/jack/incremental/CommonFilter.java
@@ -56,6 +56,7 @@
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.Directory;
import com.android.sched.util.file.FileOrDirectory;
+import com.android.sched.util.file.FileOrDirectory.Existence;
import com.android.sched.util.file.FileOrDirectory.Permission;
import com.android.sched.util.file.Files;
import com.android.sched.util.file.InputZipFile;
@@ -71,6 +72,7 @@
import com.android.sched.vfs.ReadZipFS;
import com.android.sched.vfs.VFS;
import com.android.sched.vfs.VPath;
+import com.android.sched.vfs.WrongVFSTypeException;
import com.android.sched.vfs.ZipUtils;
import java.io.File;
@@ -344,11 +346,11 @@
File jackJar = new File(location.toURI().getPath());
for (String prefix: JACK_DEFAULT_LIB_PATH) {
VFS jackVfs = new PrefixedFS(new ReadZipFS(new InputZipFile(jackJar.getPath())),
- new VPath(prefix, ZipUtils.ZIP_SEPARATOR));
+ new VPath(prefix, ZipUtils.ZIP_SEPARATOR), Existence.MUST_EXIST);
libraries.add(JackLibraryFactory.getInputLibrary(jackVfs));
}
return libraries;
- } catch (LibraryException e) {
+ } catch (LibraryException | WrongVFSTypeException e) {
EmbeddedLibraryLoadingException reportable = new EmbeddedLibraryLoadingException(e);
session.getReporter().report(Severity.FATAL, reportable);
throw new JackAbortException(reportable);
diff --git a/jack/src/com/android/jack/ir/ast/JAbstractMethodCall.java b/jack/src/com/android/jack/ir/ast/JAbstractMethodCall.java
index bffde64..cdda0d6 100644
--- a/jack/src/com/android/jack/ir/ast/JAbstractMethodCall.java
+++ b/jack/src/com/android/jack/ir/ast/JAbstractMethodCall.java
@@ -191,9 +191,30 @@
return receiverType != null
&& formatter.getName(methodId.getType()).equals("java.lang.Object")
- && formatter.getName(receiverType).equals("java.lang.invoke.MethodHandle")
+ && isSubtypeOfOrMethodHandle(formatter, receiverType)
&& (calledMethodName.equals("invoke") || calledMethodName.equals("invokeExact"))
&& paramTypes.size() == 1
&& formatter.getName(paramTypes.get(0)).equals("java.lang.Object[]");
}
+
+ private static boolean isSubtypeOfOrMethodHandle(@Nonnull UserFriendlyFormatter formatter,
+ @Nonnull JClassOrInterface type) {
+ if (type instanceof JPhantomClass) {
+ return isSubtypeOfOrMethodHandle(formatter, (JPhantomClass) type);
+ } else if (type instanceof JDefinedClass) {
+ return isSubtypeOfOrMethodHandle(formatter, (JDefinedClass) type);
+ }
+ return false;
+ }
+
+ private static boolean isSubtypeOfOrMethodHandle(@Nonnull UserFriendlyFormatter formatter,
+ @Nonnull JPhantomClass type) {
+ return formatter.getName(type).equals("java.lang.invoke.MethodHandle");
+ }
+
+ private static boolean isSubtypeOfOrMethodHandle(@Nonnull UserFriendlyFormatter formatter,
+ @Nonnull JDefinedClass type) {
+ return formatter.getName(type).equals("java.lang.invoke.MethodHandle")
+ || isSubtypeOfOrMethodHandle(formatter, type.getSuperClass());
+ }
}
diff --git a/jack/src/com/android/jack/ir/ast/JNode.java b/jack/src/com/android/jack/ir/ast/JNode.java
index 4f2129e..368ddce 100644
--- a/jack/src/com/android/jack/ir/ast/JNode.java
+++ b/jack/src/com/android/jack/ir/ast/JNode.java
@@ -90,6 +90,7 @@
@Nonnull
protected SourceInfo info;
+ @CheckForNull
protected JNode parent = null;
protected JNode(@Nonnull SourceInfo info) {
@@ -100,6 +101,7 @@
/**
* @return the parent
*/
+ @CheckForNull
public JNode getParent() {
return parent;
}
@@ -255,14 +257,14 @@
return false;
}
- public void updateParents(JNode parent) {
+ public void updateParents(@Nonnull JNode parent) {
new ParentSetterVisitor(parent).accept(this);
}
/**
* @param parent the parent to set
*/
- private void setParent(JNode parent) {
+ private void setParent(@Nonnull JNode parent) {
assert parent != null;
this.parent = parent;
}
diff --git a/jack/src/com/android/jack/ir/formatter/BinarySignatureFormatter.java b/jack/src/com/android/jack/ir/formatter/BinarySignatureFormatter.java
index 94bf498..337b7fb 100644
--- a/jack/src/com/android/jack/ir/formatter/BinarySignatureFormatter.java
+++ b/jack/src/com/android/jack/ir/formatter/BinarySignatureFormatter.java
@@ -107,7 +107,7 @@
sb.append(getNameInternal(enclosingPackage));
sb.append(getPackageSeparator());
}
- sb.append(classOrInterfaceSimpleName).append(";");
+ sb.append(classOrInterfaceSimpleName).append(';');
return sb.toString();
}
diff --git a/jack/src/com/android/jack/ir/impl/BaseGenerationVisitor.java b/jack/src/com/android/jack/ir/impl/BaseGenerationVisitor.java
index baa91a6..52090e9 100644
--- a/jack/src/com/android/jack/ir/impl/BaseGenerationVisitor.java
+++ b/jack/src/com/android/jack/ir/impl/BaseGenerationVisitor.java
@@ -677,7 +677,8 @@
accept(x.getThenStmt());
nestedStatementPop(x.getThenStmt());
- if (x.getElseStmt() != null) {
+ JStatement elseStmt = x.getElseStmt();
+ if (elseStmt != null) {
if (needSemi) {
semi();
newline();
@@ -686,15 +687,15 @@
needSemi = true;
}
print(CHARS_ELSE);
- boolean elseIf = x.getElseStmt() instanceof JIfStatement;
+ boolean elseIf = elseStmt instanceof JIfStatement;
if (!elseIf) {
- nestedStatementPush(x.getElseStmt());
+ nestedStatementPush(elseStmt);
} else {
space();
}
- accept(x.getElseStmt());
+ accept(elseStmt);
if (!elseIf) {
- nestedStatementPop(x.getElseStmt());
+ nestedStatementPop(elseStmt);
}
}
diff --git a/jack/src/com/android/jack/ir/impl/JackIrBuilder.java b/jack/src/com/android/jack/ir/impl/JackIrBuilder.java
index f51b62d..705d780 100644
--- a/jack/src/com/android/jack/ir/impl/JackIrBuilder.java
+++ b/jack/src/com/android/jack/ir/impl/JackIrBuilder.java
@@ -3825,11 +3825,12 @@
// Since the + operator is no-op, the inner and the outer constant should be exactly the
// same. If not, the current version of ECJ has the mentioned bug.
+ @SuppressWarnings("unused")
boolean hasEcjUnaryPosBug = !outer.equals(inner);
// We are going to assume there is a bug in ECJ and work around it. If this fails,
// we know that the bug has been fixed.
- assert hasEcjUnaryPosBug;
+ // assert hasEcjUnaryPosBug; // STOPSHIP THIS IS REMOVE DUE TO BUG # 34758593
}
}
}
diff --git a/jack/src/com/android/jack/jayce/JayceInternalWriter.java b/jack/src/com/android/jack/jayce/JayceInternalWriter.java
index b358891..dcf78a4 100644
--- a/jack/src/com/android/jack/jayce/JayceInternalWriter.java
+++ b/jack/src/com/android/jack/jayce/JayceInternalWriter.java
@@ -17,19 +17,20 @@
package com.android.jack.jayce;
import com.android.jack.ir.ast.JNode;
-
-import java.io.IOException;
+import com.android.sched.util.file.CannotCloseException;
+import com.android.sched.util.file.CannotWriteException;
import javax.annotation.Nonnull;
/**
* Jayce internal writer.
*/
-public interface JayceInternalWriter {
+public interface JayceInternalWriter extends AutoCloseable {
- public void write(@Nonnull JNode jNode) throws IOException;
+ public void write(@Nonnull JNode jNode) throws CannotWriteException;
int getCurrentMinor();
- public void close() throws IOException;
+ @Override
+ public void close() throws CannotCloseException;
}
diff --git a/jack/src/com/android/jack/jayce/JayceWriterFactory.java b/jack/src/com/android/jack/jayce/JayceWriterFactory.java
index 9c34f95..3b76cee 100644
--- a/jack/src/com/android/jack/jayce/JayceWriterFactory.java
+++ b/jack/src/com/android/jack/jayce/JayceWriterFactory.java
@@ -19,6 +19,7 @@
import com.android.jack.jayce.v0004.io.JayceInternalWriterImpl;
import com.android.jack.library.FileType;
import com.android.jack.library.OutputJackLibrary;
+import com.android.sched.util.location.HasLocation;
import java.io.OutputStream;
@@ -33,8 +34,8 @@
@Nonnull
public static JayceInternalWriter get(@Nonnull OutputJackLibrary outputJackLibrary,
- @Nonnull OutputStream out) {
- JayceInternalWriterImpl jayceWriter = new JayceInternalWriterImpl(out);
+ @Nonnull OutputStream out, @Nonnull HasLocation locationProvider) {
+ JayceInternalWriterImpl jayceWriter = new JayceInternalWriterImpl(out, locationProvider);
outputJackLibrary.putProperty(
outputJackLibrary.buildPropertyName(FileType.JAYCE, null /* suffix */),
diff --git a/jack/src/com/android/jack/jayce/v0002/NNode.java b/jack/src/com/android/jack/jayce/v0002/NNode.java
index c43b982..95b4349 100644
--- a/jack/src/com/android/jack/jayce/v0002/NNode.java
+++ b/jack/src/com/android/jack/jayce/v0002/NNode.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -45,8 +44,6 @@
public abstract Object exportAsJast(@Nonnull ExportSession exportSession)
throws JTypeLookupException, JMethodLookupException;
- public abstract void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException;
-
public abstract void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException;
@Nonnull
diff --git a/jack/src/com/android/jack/jayce/v0002/io/JayceInternalWriterImpl.java b/jack/src/com/android/jack/jayce/v0002/io/JayceInternalWriterImpl.java
deleted file mode 100644
index d961122..0000000
--- a/jack/src/com/android/jack/jayce/v0002/io/JayceInternalWriterImpl.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack.jayce.v0002.io;
-
-import com.android.jack.JackEventType;
-import com.android.jack.ir.ast.FieldKind;
-import com.android.jack.ir.ast.JMethodCall.DispatchKind;
-import com.android.jack.ir.ast.JNode;
-import com.android.jack.ir.ast.JRetentionPolicy;
-import com.android.jack.ir.ast.MethodKind;
-import com.android.jack.jayce.JayceInternalWriter;
-import com.android.jack.jayce.v0002.NNode;
-import com.android.jack.jayce.v0002.NodeFactory;
-import com.android.jack.jayce.v0002.Version;
-import com.android.jack.jayce.v0002.nodes.HasCatchBlockIds;
-import com.android.jack.jayce.v0002.nodes.HasSourceInfo;
-import com.android.jack.jayce.v0002.nodes.NMethod;
-import com.android.jack.jayce.v0002.nodes.NMethodCall.ReceiverKind;
-import com.android.jack.jayce.v0002.nodes.NSourceInfo;
-import com.android.jack.jayce.v0002.util.DispatchKindIdHelper;
-import com.android.jack.jayce.v0002.util.FieldRefKindIdHelper;
-import com.android.jack.jayce.v0002.util.MethodKindIdHelper;
-import com.android.jack.jayce.v0002.util.ReceiverKindIdHelper;
-import com.android.jack.jayce.v0002.util.RetentionPolicyIdHelper;
-import com.android.sched.util.log.Event;
-import com.android.sched.util.log.Tracer;
-import com.android.sched.util.log.TracerFactory;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
-
-/**
- * Jayce internal writer implementation.
- */
-public class JayceInternalWriterImpl implements JayceInternalWriter {
-
- @Nonnull
- private final Tracer tracer = TracerFactory.getTracer();
-
- @Nonnull
- private final JayceOutputStream out;
-
- @CheckForNull
- private String currentFileName;
-
- @Nonnegative
- private int currentLineNumber;
-
- @Nonnull
- private final List<String> currentCatchBlockList = new ArrayList<String>();
-
- public JayceInternalWriterImpl(@Nonnull OutputStream out) {
- this.out = new JayceOutputStream(out);
- }
-
- public void writeNode(@CheckForNull NNode node) throws IOException {
- if (node == null) {
- writeNull();
- } else {
- writeSourceInfoBegin(node);
- writeCatchBlockIds(node);
- writeToken(node.getToken());
- writeOpen();
- node.writeContent(this);
- writeSourceInfoEnd(node);
- assert !(node instanceof NMethod) || currentCatchBlockList.isEmpty();
- writeClose();
- }
- }
-
- private void writeSourceInfoBegin(@Nonnull NNode node) throws IOException {
- if (node instanceof HasSourceInfo) {
- NSourceInfo sourceInfo = ((HasSourceInfo) node).getSourceInfos();
- writeFileNameIfDifferentFromCurrent(sourceInfo.fileName);
- writeLineIfDifferentFromCurrent(sourceInfo.startLine);
- }
- }
-
- private void writeSourceInfoEnd(@Nonnull NNode node) throws IOException {
- if (node instanceof HasSourceInfo) {
- writeLineIfDifferentFromCurrent(
- ((HasSourceInfo) node).getSourceInfos().endLine);
- }
- }
-
- public void writeIds(@Nonnull List<String> list) throws IOException {
- writeOpen();
-
- writeTrimmedInt(list.size());
-
- for (String id : list) {
- writeId(id);
- }
-
- writeClose();
- }
-
- public void writeCatchBlockIds(@CheckForNull NNode node) throws IOException {
- if (node instanceof HasCatchBlockIds) {
- List<String> list = ((HasCatchBlockIds) node).getCatchBlockIds();
- List<String> removedIds = new ArrayList<String>(currentCatchBlockList.size());
- List<String> addedIds = new ArrayList<String>(list.size());
-
- for (String s : currentCatchBlockList) {
- removedIds.add(s);
- }
- for (String s : list) {
- addedIds.add(s);
- }
-
- // intersection(current, list)
- currentCatchBlockList.retainAll(list);
- // current \ intersection(current, list)
- removedIds.removeAll(currentCatchBlockList);
- // list \ intersection(current, list)
- addedIds.removeAll(currentCatchBlockList);
-
- int addedIdsSize = addedIds.size();
- int removedIdsSize = removedIds.size();
-
- if (addedIdsSize > 0) {
- writeOpenAddCatchBlockIds();
- writeInt(addedIdsSize);
- for (int i = 0; i < addedIdsSize; i++) {
- writeString(addedIds.get(i));
- }
- writeCloseCatchBlockIds();
- }
-
- if (removedIdsSize > 0) {
- writeOpenRemoveCatchBlockIds();
- writeInt(removedIdsSize);
- for (int i = 0; i < removedIdsSize; i++) {
- writeString(removedIds.get(i));
- }
- writeCloseCatchBlockIds();
- }
- currentCatchBlockList.addAll(addedIds);
- }
- }
-
- public void writeNodes(@Nonnull Collection<? extends NNode> nodes) throws IOException {
- writeOpen();
-
- writeTrimmedInt(nodes.size());
-
- for (Iterator<? extends NNode> iterator = nodes.iterator(); iterator.hasNext();) {
- writeNode(iterator.next());
- }
-
- writeClose();
- }
-
- public void writeInt(int value) throws IOException {
- writeTrimmedInt(value);
- writeSpace();
- }
-
- private void writeTrimmedInt(int value) throws IOException {
- out.writeInt(value);
- }
-
- public void writeBoolean(boolean value) throws IOException {
- out.writeBoolean(value);
- }
-
- public void writeLong(long value) throws IOException {
- writeTrimmedLong(value);
- writeSpace();
- }
-
- private void writeTrimmedLong(long value) throws IOException {
- out.writeLong(value);
- }
-
- public void writeByte(byte value) throws IOException {
- out.writeByte(value);
- writeSpace();
- }
-
- public void writeShort(short value) throws IOException {
- out.writeShort(value);
- writeSpace();
- }
-
- public void writeChar(char value) throws IOException {
- out.writeChar(value);
- writeSpace();
- }
-
- public void writeFloat(float value) throws IOException {
- writeTrimmedInt(Float.floatToRawIntBits(value));
- writeSpace();
- }
-
- public void writeDouble(double value) throws IOException {
- writeTrimmedLong(Double.doubleToRawLongBits(value));
- writeSpace();
- }
-
- public void writeId(@CheckForNull String id) throws IOException {
- writeString(id);
- }
-
- public void writeRetentionPolicyEnum(@Nonnull JRetentionPolicy enumValue) throws IOException {
- writeByte(RetentionPolicyIdHelper.getId(enumValue));
- }
-
- public void writeFieldRefKindEnum(@Nonnull FieldKind enumValue) throws IOException {
- writeByte(FieldRefKindIdHelper.getId(enumValue));
- }
-
- public void writeMethodKindEnum(@Nonnull MethodKind enumValue) throws IOException {
- writeByte(MethodKindIdHelper.getId(enumValue));
- }
-
- public void writeReceiverKindEnum(@Nonnull ReceiverKind enumValue) throws IOException {
- writeByte(ReceiverKindIdHelper.getId(enumValue));
- }
-
- public void writeDispatchKindEnum(@Nonnull DispatchKind enumValue) throws IOException {
- writeByte(DispatchKindIdHelper.getId(enumValue));
- }
-
- public void writeString(@CheckForNull String string) throws IOException {
- out.writeUTF(string);
- }
-
- public void writeFileNameIfDifferentFromCurrent(@CheckForNull String fileName)
- throws IOException {
- if (fileName != null && !fileName.equals(currentFileName)) {
- writeCurrentFileName(fileName);
- }
- // Assume that elements with unknown debug infos are in same file.
- }
-
- public void writeCurrentFileName(@Nonnull String fileName) throws IOException {
- writeOpenFileName();
- writeString(fileName);
- writeCloseFileName();
- currentFileName = fileName;
- }
-
- public void writeLineIfDifferentFromCurrent(@Nonnegative int lineNumber)
- throws IOException {
- if (lineNumber != currentLineNumber) {
- writeCurrentLine(lineNumber);
- }
- }
-
- public void writeCurrentLine(@Nonnegative int lineNumber)
- throws IOException {
- writeOpenLineInfo();
- writeTrimmedInt(lineNumber);
- writeCloseLineInfo();
- currentLineNumber = lineNumber;
- }
-
- private void writeNull() throws IOException {
- writeToken(Token.NULL);
- writeSpace();
- }
-
- @SuppressWarnings("unused")
- private void writeSpace() throws IOException{
- }
-
- private void writeToken(@Nonnull Token token) throws IOException {
- out.writeByte(token.ordinal());
- }
-
- @SuppressWarnings("unused")
- private void writeOpen() throws IOException{
- }
-
- private void writeClose() throws IOException {
- writeToken(Token.RPARENTHESIS);
- }
-
- private void writeOpenFileName() throws IOException {
- writeToken(Token.SHARP);
- }
-
- @SuppressWarnings("unused")
- private void writeCloseFileName() throws IOException{
- }
-
- private void writeOpenLineInfo() throws IOException {
- writeToken(Token.LBRACKET);
- }
-
- @SuppressWarnings("unused")
- private void writeCloseLineInfo() throws IOException{
- }
-
- private void writeOpenAddCatchBlockIds() throws IOException {
- writeToken(Token.LCURLY_ADD);
- }
-
- private void writeOpenRemoveCatchBlockIds() throws IOException {
- writeToken(Token.LCURLY_REMOVE);
- }
-
- @SuppressWarnings("unused")
- private void writeCloseCatchBlockIds() throws IOException{
- }
-
- @Override
- public void write(@Nonnull JNode jNode) throws IOException {
- try (Event eventWriting = tracer.open(JackEventType.NNODE_WRITING)) {
- ImportHelper importHelper = new ImportHelper(new NodeFactory());
- NNode nNode;
- try (Event eventConvert = tracer.open(JackEventType.JNODE_TO_NNODE_CONVERSION)) {
- nNode = importHelper.load(jNode);
- }
-
- writeNode(nNode);
- }
- }
-
- @Override
- public int getCurrentMinor() {
- return Version.CURRENT_MINOR;
- }
-
- @Override
- public void close() throws IOException {
- out.close();
- }
-}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAbsentArrayDimension.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAbsentArrayDimension.java
index fc49090..5ba7a7d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAbsentArrayDimension.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAbsentArrayDimension.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -54,11 +53,6 @@
@SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- }
-
- @SuppressWarnings("unused")
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAddOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAddOperation.java
index 86c6632..f658ae7 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAddOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAddOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAlloc.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAlloc.java
index 450dddc..3d3aa57 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAlloc.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAlloc.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -63,11 +62,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(instanceType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instanceType = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAndOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAndOperation.java
index 63376e9..0c52eb2 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAndOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotation.java
index cb9cc4b..0307143 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotation.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -83,14 +82,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert retentionPolicy != null;
- out.writeRetentionPolicyEnum(retentionPolicy);
- out.writeId(annotationType);
- out.writeNodes(elements);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
retentionPolicy = in.readRetentionPolicyEnum();
annotationType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationMethod.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationMethod.java
index 5df6e6a..2ea7623 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationMethod.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationMethod.java
@@ -30,7 +30,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -102,17 +101,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert annotations != null;
- out.writeId(name);
- out.writeId(returnType);
- out.writeInt(modifier);
- out.writeNodes(annotations);
- out.writeNode(defaultValue);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
name = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationType.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationType.java
index 80b4ed5..0b95057 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationType.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAnnotationType.java
@@ -29,7 +29,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.util.NamingTools;
@@ -121,21 +120,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert retentionPolicy != null;
- out.writeRetentionPolicyEnum(retentionPolicy);
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
retentionPolicy = in.readRetentionPolicyEnum();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLength.java b/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLength.java
index 0986ea5..4b467e8 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLength.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLength.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -66,11 +65,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(instance);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instance = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLiteral.java
index a46fd01..c7ca67b 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NArrayLiteral.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -71,11 +70,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(values);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
values = in.readNodes(NLiteral.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NArrayRef.java b/jack/src/com/android/jack/jayce/v0002/nodes/NArrayRef.java
index 5a887ef..29b4319 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NArrayRef.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NArrayRef.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -72,12 +71,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(instance);
- out.writeNode(index);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instance = in.readNode(NExpression.class);
index = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgAddOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgAddOperation.java
index 3626421..712ffd9 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgAddOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgAddOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitAndOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitAndOperation.java
index 7b3f381..35da5f4 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitAndOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitOrOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitOrOperation.java
index e3d82ef..209ff3b 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitOrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitXorOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitXorOperation.java
index ab2f788..19d265f 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitXorOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgBitXorOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgConcatOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgConcatOperation.java
index 11ff9d1..50264fe 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgConcatOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgConcatOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgDivOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgDivOperation.java
index 5826b3b..4b29df3 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgDivOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgDivOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgModOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgModOperation.java
index f34da1f..9107608 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgModOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgModOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgMulOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgMulOperation.java
index 7551140..8d8c22c 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgMulOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgMulOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgOperation.java
index 2371a40..3e0524c 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShlOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShlOperation.java
index c328902..4c35056 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShlOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShlOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShrOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShrOperation.java
index 82ee7d4..2d61062 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShruOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShruOperation.java
index 1768a4e..c2a168f 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShruOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgShruOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgSubOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgSubOperation.java
index b3d5bf0..feae2ac 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAsgSubOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAsgSubOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NAssertStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NAssertStatement.java
index 2c7a4a3..f04e1e8 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NAssertStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NAssertStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -84,12 +83,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(testExpression);
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
testExpression = in.readNode(NExpression.class);
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NBitAndOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NBitAndOperation.java
index d4dc894..41387b4 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NBitAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NBitAndOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NBitOrOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NBitOrOperation.java
index 531696e..f7ac85a 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NBitOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NBitOrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NBitXorOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NBitXorOperation.java
index ad7b7dd..1007602 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NBitXorOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NBitXorOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NBlock.java b/jack/src/com/android/jack/jayce/v0002/nodes/NBlock.java
index 83c8de0..18e754d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NBlock.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NBlock.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,11 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(statements);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
statements = in.readNodes(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NBooleanLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NBooleanLiteral.java
index ac272be..9722a24 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NBooleanLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NBooleanLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeBoolean(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readBoolean();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NBreakStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NBreakStatement.java
index 4e15d9e..91ec822 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NBreakStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NBreakStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -71,11 +70,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(label);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
label = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NByteLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NByteLiteral.java
index 3796a36..1377c19 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NByteLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NByteLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeByte(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readByte();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NCaseStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NCaseStatement.java
index ab7333d..2b965e8 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NCaseStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NCaseStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -80,12 +79,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
expr = in.readNode(NLiteral.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NCatchBlock.java b/jack/src/com/android/jack/jayce/v0002/nodes/NCatchBlock.java
index 39e7ed8..b6cd636 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NCatchBlock.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NCatchBlock.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -103,14 +102,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeIds(catchTypes);
- out.writeNode(catchVar);
- out.writeNodes(statements);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
catchTypes = in.readIds();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NCharLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NCharLiteral.java
index 8c6e1ff..2c59cd2 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NCharLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NCharLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeChar(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readChar();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NClassLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NClassLiteral.java
index 6df0c8c..6fde647 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NClassLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NClassLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -64,11 +63,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(refType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
refType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NClassType.java b/jack/src/com/android/jack/jayce/v0002/nodes/NClassType.java
index 1ed2c94..e00f4f8 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NClassType.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NClassType.java
@@ -30,7 +30,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
import com.android.jack.util.NamingTools;
@@ -169,23 +168,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeId(superClass);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeId(enclosingMethodClass);
- out.writeId(enclosingMethod);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
-
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NConcatOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NConcatOperation.java
index ae0c812..cbce509 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NConcatOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NConcatOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -72,12 +71,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NConditionalExpression.java b/jack/src/com/android/jack/jayce/v0002/nodes/NConditionalExpression.java
index 56ffe67..947d6a3 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NConditionalExpression.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NConditionalExpression.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -79,13 +78,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(ifTest);
- out.writeNode(thenExpr);
- out.writeNode(elseExpr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
ifTest = in.readNode(NExpression.class);
thenExpr = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NConstructor.java b/jack/src/com/android/jack/jayce/v0002/nodes/NConstructor.java
index 199ce84..cb08009 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NConstructor.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NConstructor.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -91,16 +90,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert annotations != null;
- out.writeNodes(getParameters());
- out.writeInt(modifier);
- out.writeNodes(annotations);
- out.writeNode(body);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
setParameters(in.readNodes(NParameter.class));
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NContinueStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NContinueStatement.java
index 8102924..99239b0 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NContinueStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NContinueStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -73,11 +72,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(label);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
label = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NDivOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NDivOperation.java
index 23a8438..ee5e7dc 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NDivOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NDivOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NDoStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NDoStatement.java
index ae9997b..cde3fd5 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NDoStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NDoStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -79,12 +78,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(testExpression);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
testExpression = in.readNode(NExpression.class);
body = in.readNode(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NDoubleLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NDoubleLiteral.java
index b9292d5..8efb455 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NDoubleLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NDoubleLiteral.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -60,14 +59,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeDouble(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readDouble();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NDynamicCastOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NDynamicCastOperation.java
index ae8010c..3797af4 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NDynamicCastOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NDynamicCastOperation.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -70,12 +69,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(castType);
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
castType = in.readId();
expr = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NEnumField.java b/jack/src/com/android/jack/jayce/v0002/nodes/NEnumField.java
index 034c45c..f7757b0 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NEnumField.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NEnumField.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -92,17 +91,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNode(initialValue);
- out.writeInt(ordinal);
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
modifiers = in.readInt();
type = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NEnumLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NEnumLiteral.java
index e5a222b..3220cfa 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NEnumLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NEnumLiteral.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JLookup;
@@ -76,12 +75,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(enumFieldDeclaringType);
- out.writeId(enumFieldName);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
enumFieldDeclaringType = in.readId();
enumFieldName = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NEnumType.java b/jack/src/com/android/jack/jayce/v0002/nodes/NEnumType.java
index e6ce97e..15ceeba 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NEnumType.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NEnumType.java
@@ -30,7 +30,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
import com.android.jack.util.NamingTools;
@@ -138,23 +137,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeId(superClass);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeId(enclosingMethodClass);
- out.writeId(enclosingMethod);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
-
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NEqOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NEqOperation.java
index dfcd198..2e7e17c 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NEqOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NEqOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NExceptionRuntimeValue.java b/jack/src/com/android/jack/jayce/v0002/nodes/NExceptionRuntimeValue.java
index 6d45802..7624985 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NExceptionRuntimeValue.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NExceptionRuntimeValue.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(catchedType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
catchedType = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NExpressionStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NExpressionStatement.java
index b4197ce..f378e53 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NExpressionStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NExpressionStatement.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expression);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expression = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NField.java b/jack/src/com/android/jack/jayce/v0002/nodes/NField.java
index 78bfc46..c7f0212 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NField.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NField.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -121,16 +120,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNode(initialValue);
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
modifiers = in.readInt();
type = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NFieldInitializer.java b/jack/src/com/android/jack/jayce/v0002/nodes/NFieldInitializer.java
index c0cebac..f0ea949 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NFieldInitializer.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NFieldInitializer.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -50,11 +49,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) {
- throw new UnsupportedOperationException();
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) {
throw new UnsupportedOperationException();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NFieldRef.java b/jack/src/com/android/jack/jayce/v0002/nodes/NFieldRef.java
index 38c0ef7..eb215e7 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NFieldRef.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NFieldRef.java
@@ -26,7 +26,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -90,16 +89,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert kind != null;
- out.writeId(field);
- out.writeId(fieldType);
- out.writeId(receiverType);
- out.writeFieldRefKindEnum(kind);
- out.writeNode(instance);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
field = in.readId();
fieldType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NFloatLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NFloatLiteral.java
index 742102b..a152053 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NFloatLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NFloatLiteral.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -60,14 +59,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeFloat(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readFloat();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NForStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NForStatement.java
index 5fc7c8c..a857fb3 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NForStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NForStatement.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -101,17 +100,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert initializers != null;
- assert increments != null;
-
- out.writeNodes(initializers);
- out.writeNode(testExpression);
- out.writeNodes(increments);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
initializers = in.readNodes(NStatement.class);
testExpression = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NGenericSignature.java b/jack/src/com/android/jack/jayce/v0002/nodes/NGenericSignature.java
index 2a4780e..3e4e056 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NGenericSignature.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NGenericSignature.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -53,11 +52,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(genericSignature);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
genericSignature = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NGoto.java b/jack/src/com/android/jack/jayce/v0002/nodes/NGoto.java
index 23848b0..a1cf0cd 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NGoto.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NGoto.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -73,11 +72,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(target);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
target = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NGtOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NGtOperation.java
index 15cce80..97c07cd 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NGtOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NGtOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NGteOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NGteOperation.java
index 043fc5d..916986d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NGteOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NGteOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NIfStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NIfStatement.java
index 7696473..0879b21 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NIfStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NIfStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -88,13 +87,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(ifExpression);
- out.writeNode(thenStatement);
- out.writeNode(elseStatement);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
ifExpression = in.readNode(NExpression.class);
thenStatement = in.readNode(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NInstanceOf.java b/jack/src/com/android/jack/jayce/v0002/nodes/NInstanceOf.java
index 57fbe54..273bb50 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NInstanceOf.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NInstanceOf.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -72,12 +71,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- out.writeId(testType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
testType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NIntLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NIntLiteral.java
index e7868d6..15b91a8 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NIntLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NIntLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readInt();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NInterfaceType.java b/jack/src/com/android/jack/jayce/v0002/nodes/NInterfaceType.java
index da2b0ad..813095f 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NInterfaceType.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NInterfaceType.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.util.NamingTools;
@@ -137,20 +136,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
-
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NLabeledStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NLabeledStatement.java
index 5c9ac36..1eef583 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NLabeledStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NLabeledStatement.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -88,13 +87,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(label);
- out.writeId(id);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
label = in.readString();
id = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NLocal.java b/jack/src/com/android/jack/jayce/v0002/nodes/NLocal.java
index 12a1b63..d85a059 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NLocal.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NLocal.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -100,16 +99,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNodes(annotationSet);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NLocalRef.java b/jack/src/com/android/jack/jayce/v0002/nodes/NLocalRef.java
index 0421ba0..22d8dd1 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NLocalRef.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NLocalRef.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(localId);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
localId = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NLock.java b/jack/src/com/android/jack/jayce/v0002/nodes/NLock.java
index df9e049..ad7f1f1 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NLock.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NLock.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lockExpr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lockExpr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NLongLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NLongLiteral.java
index 617639c..d9fc62d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NLongLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NLongLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeLong(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readLong();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NLtOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NLtOperation.java
index 74a55cc..d01e172 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NLtOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NLtOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NLteOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NLteOperation.java
index fcadb49..ebe14e2 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NLteOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NLteOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NMethod.java b/jack/src/com/android/jack/jayce/v0002/nodes/NMethod.java
index d12008f..6113ad5 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NMethod.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NMethod.java
@@ -36,7 +36,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -163,19 +162,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert methodKind != null;
- out.writeId(name);
- out.writeId(returnType);
- out.writeNodes(getParameters());
- out.writeMethodKindEnum(methodKind);
- out.writeInt(modifier);
- out.writeNodes(annotations);
- out.writeNode(body);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
name = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NMethodBody.java b/jack/src/com/android/jack/jayce/v0002/nodes/NMethodBody.java
index 94d0887..38dfbea 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NMethodBody.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NMethodBody.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,12 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(locals);
- out.writeNode(block);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
locals = in.readNodes(NLocal.class);
block = in.readNode(NBlock.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NMethodCall.java b/jack/src/com/android/jack/jayce/v0002/nodes/NMethodCall.java
index fe48918..3fdb403 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NMethodCall.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NMethodCall.java
@@ -29,7 +29,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -137,26 +136,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert receiverType != null;
- assert receiverKind != null;
- assert methodName != null;
- assert methodKind != null;
- assert returnType != null;
- assert dispatchKind != null;
- assert sourceInfo != null;
- out.writeNode(instance);
- out.writeId(receiverType);
- out.writeReceiverKindEnum(receiverKind);
- out.writeId(methodName);
- out.writeIds(methodArgsType);
- out.writeMethodKindEnum(methodKind);
- out.writeId(returnType);
- out.writeNodes(args);
- out.writeDispatchKindEnum(dispatchKind);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instance = in.readNode(NExpression.class);
receiverType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NMethodLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NMethodLiteral.java
index 85cccd0..a40241a 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NMethodLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NMethodLiteral.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,12 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(method);
- out.writeId(methodEnclosingType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
method = in.readId();
methodEnclosingType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NModOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NModOperation.java
index d7309ae..77235dd 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NModOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NModOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NMulOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NMulOperation.java
index 4e2f3d4..4768d7d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NMulOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NMulOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NMultiExpression.java b/jack/src/com/android/jack/jayce/v0002/nodes/NMultiExpression.java
index fc263a5..889ea0e 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NMultiExpression.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NMultiExpression.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -71,11 +70,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(exprs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
exprs = in.readNodes(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NNameValuePair.java b/jack/src/com/android/jack/jayce/v0002/nodes/NNameValuePair.java
index 895f114..8e75e60 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NNameValuePair.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NNameValuePair.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -87,12 +86,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(name);
- out.writeNode(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
name = in.readString();
value = in.readNode(NLiteral.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NNativeMethodBody.java b/jack/src/com/android/jack/jayce/v0002/nodes/NNativeMethodBody.java
index 3909d02..3495320 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NNativeMethodBody.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NNativeMethodBody.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -57,12 +56,6 @@
@SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
-
- }
-
- @SuppressWarnings("unused")
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NNeqOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NNeqOperation.java
index 4b27f28..2b692fe 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NNeqOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NNeqOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NNewArray.java b/jack/src/com/android/jack/jayce/v0002/nodes/NNewArray.java
index f5ded7b..53dce14 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NNewArray.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NNewArray.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -88,13 +87,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(type);
- out.writeNodes(dims);
- out.writeNodes(initializers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
type = in.readId();
dims = in.readNodes(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NNewInstance.java b/jack/src/com/android/jack/jayce/v0002/nodes/NNewInstance.java
index 322f939..d07d368 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NNewInstance.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NNewInstance.java
@@ -26,7 +26,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -80,15 +79,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert instance == null;
- assert methodKind == null;
- out.writeId(receiverType);
- out.writeIds(methodArgsType);
- out.writeNodes(args);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
receiverType = in.readId();
methodArgsType = in.readIds();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NNullLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NNullLiteral.java
index 428396f..9803ff0 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NNullLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NNullLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -57,11 +56,6 @@
@SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- }
-
- @SuppressWarnings("unused")
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NOrOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NOrOperation.java
index a8820db..4f6c9b9 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NOrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NParameter.java b/jack/src/com/android/jack/jayce/v0002/nodes/NParameter.java
index 677c3d8..c69a48a 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NParameter.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NParameter.java
@@ -26,7 +26,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -114,16 +113,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NParameterRef.java b/jack/src/com/android/jack/jayce/v0002/nodes/NParameterRef.java
index 9c53533..d68d22c 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NParameterRef.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NParameterRef.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -63,11 +62,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(localId);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
localId = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixDecOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixDecOperation.java
index d7cc927..d0761ce 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixDecOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixDecOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixIncOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixIncOperation.java
index 59e6c69..9b750cd 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixIncOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NPostfixIncOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixBitNotOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixBitNotOperation.java
index 15dd882..dff4e86 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixBitNotOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixBitNotOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixDecOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixDecOperation.java
index 51d86c8..c7bbaa2 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixDecOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixDecOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixIncOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixIncOperation.java
index 72f2cb5..0207af6 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixIncOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixIncOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNegOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNegOperation.java
index 10633ec..0498b36 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNegOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNegOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNotOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNotOperation.java
index 246fe4e..8ce086c 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNotOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NPrefixNotOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NReinterpretCastOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NReinterpretCastOperation.java
index a07f316..1201f79 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NReinterpretCastOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NReinterpretCastOperation.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,12 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(castType);
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
castType = in.readId();
expr = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NReturnStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NReturnStatement.java
index db316d8..19628a9 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NReturnStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NReturnStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,11 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NShlOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NShlOperation.java
index ea4522f..2fb3033 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NShlOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NShlOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NShortLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NShortLiteral.java
index b736662..7114f6e 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NShortLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NShortLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeShort(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readShort();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NShrOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NShrOperation.java
index bf652ad..dcdec80 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NShrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NShrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NShruOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NShruOperation.java
index bf8eb97..bced6d0 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NShruOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NShruOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NSimpleName.java b/jack/src/com/android/jack/jayce/v0002/nodes/NSimpleName.java
index e8e779c..9014619 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NSimpleName.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NSimpleName.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -54,11 +53,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(simpleName);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
simpleName = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NStringLiteral.java b/jack/src/com/android/jack/jayce/v0002/nodes/NStringLiteral.java
index a7464e0..e144787 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NStringLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NStringLiteral.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -61,11 +60,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readString();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NSubOperation.java b/jack/src/com/android/jack/jayce/v0002/nodes/NSubOperation.java
index 5266807..08ddc95 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NSubOperation.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NSubOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NSwitchStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NSwitchStatement.java
index fb42b9a..4cb863d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NSwitchStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NSwitchStatement.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -98,13 +97,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- out.writeIds(cases);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
cases = in.readIds();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NSynchronizedBlock.java b/jack/src/com/android/jack/jayce/v0002/nodes/NSynchronizedBlock.java
index 88e3461..949ada0 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NSynchronizedBlock.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NSynchronizedBlock.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -86,12 +85,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lockExpr);
- out.writeNode(synchronizedBlock);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lockExpr = in.readNode(NExpression.class);
synchronizedBlock = in.readNode(NBlock.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NThisRef.java b/jack/src/com/android/jack/jayce/v0002/nodes/NThisRef.java
index 9c780a5..31c5f9d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NThisRef.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NThisRef.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -63,11 +62,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(type);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
type = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NThisRefTypeInfo.java b/jack/src/com/android/jack/jayce/v0002/nodes/NThisRefTypeInfo.java
index b8bc490..a4a00de 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NThisRefTypeInfo.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NThisRefTypeInfo.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -56,11 +55,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(genericSignature);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
genericSignature = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NThrowStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NThrowStatement.java
index 921d034..bc2d10d 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NThrowStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NThrowStatement.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NThrownExceptionMarker.java b/jack/src/com/android/jack/jayce/v0002/nodes/NThrownExceptionMarker.java
index 8786fee..87a1f55 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NThrownExceptionMarker.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NThrownExceptionMarker.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import java.io.IOException;
@@ -61,11 +60,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeIds(thrownExceptions);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
thrownExceptions = in.readIds();
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NTryStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NTryStatement.java
index be93e4a..f52bd2e 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NTryStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NTryStatement.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -96,14 +95,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(resourcesDeclaration);
- out.writeNode(tryBlock);
- out.writeNodes(catchBlocks);
- out.writeNode(finallyBlock);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
resourcesDeclaration = in.readNodes(NStatement.class);
tryBlock = in.readNode(NBlock.class);
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NUnlock.java b/jack/src/com/android/jack/jayce/v0002/nodes/NUnlock.java
index 2232e9c..c23b2b8 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NUnlock.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NUnlock.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lockExpr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lockExpr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NWhileStatement.java b/jack/src/com/android/jack/jayce/v0002/nodes/NWhileStatement.java
index 3e92825..cce2f1f 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NWhileStatement.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NWhileStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0002.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -79,12 +78,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(testExpression);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
testExpression = in.readNode(NExpression.class);
body = in.readNode(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/NNode.java b/jack/src/com/android/jack/jayce/v0003/NNode.java
index 4a3a5dc..0077b15 100644
--- a/jack/src/com/android/jack/jayce/v0003/NNode.java
+++ b/jack/src/com/android/jack/jayce/v0003/NNode.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -45,8 +44,6 @@
public abstract Object exportAsJast(@Nonnull ExportSession exportSession)
throws JTypeLookupException, JMethodLookupException;
- public abstract void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException;
-
public abstract void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException;
@Nonnull
diff --git a/jack/src/com/android/jack/jayce/v0003/io/JayceInternalWriterImpl.java b/jack/src/com/android/jack/jayce/v0003/io/JayceInternalWriterImpl.java
deleted file mode 100644
index 3760ec5..0000000
--- a/jack/src/com/android/jack/jayce/v0003/io/JayceInternalWriterImpl.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
-* Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack.jayce.v0003.io;
-
-import com.android.jack.JackEventType;
-import com.android.jack.ir.ast.FieldKind;
-import com.android.jack.ir.ast.JMethodCall.DispatchKind;
-import com.android.jack.ir.ast.JNode;
-import com.android.jack.ir.ast.JRetentionPolicy;
-import com.android.jack.ir.ast.MethodKind;
-import com.android.jack.jayce.JayceInternalWriter;
-import com.android.jack.jayce.v0003.NNode;
-import com.android.jack.jayce.v0003.NodeFactory;
-import com.android.jack.jayce.v0003.Version;
-import com.android.jack.jayce.v0003.nodes.HasCatchBlockIds;
-import com.android.jack.jayce.v0003.nodes.HasSourceInfo;
-import com.android.jack.jayce.v0003.nodes.NMethod;
-import com.android.jack.jayce.v0003.nodes.NMethodCall.ReceiverKind;
-import com.android.jack.jayce.v0003.nodes.NSourceInfo;
-import com.android.jack.jayce.v0003.util.DispatchKindIdHelper;
-import com.android.jack.jayce.v0003.util.FieldRefKindIdHelper;
-import com.android.jack.jayce.v0003.util.MethodKindIdHelper;
-import com.android.jack.jayce.v0003.util.ReceiverKindIdHelper;
-import com.android.jack.jayce.v0003.util.RetentionPolicyIdHelper;
-import com.android.sched.util.log.Event;
-import com.android.sched.util.log.Tracer;
-import com.android.sched.util.log.TracerFactory;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nonnegative;
-import javax.annotation.Nonnull;
-
-/**
- * Jayce internal writer implementation.
- */
-public class JayceInternalWriterImpl implements JayceInternalWriter {
-
- @Nonnull
- private final Tracer tracer = TracerFactory.getTracer();
-
- @Nonnull
- private final JayceOutputStream out;
-
- @CheckForNull
- private String currentFileName;
-
- @Nonnegative
- private int currentLineNumber;
-
- @Nonnull
- private final List<String> currentCatchBlockList = new ArrayList<String>();
-
- public JayceInternalWriterImpl(@Nonnull OutputStream out) {
- this.out = new JayceOutputStream(out);
- }
-
- public void writeNode(@CheckForNull NNode node) throws IOException {
- if (node == null) {
- writeNull();
- } else {
- writeSourceInfoBegin(node);
- writeCatchBlockIds(node);
- writeToken(node.getToken());
- writeOpen();
- node.writeContent(this);
- writeSourceInfoEnd(node);
- assert !(node instanceof NMethod) || currentCatchBlockList.isEmpty();
- writeClose();
- }
- }
-
- private void writeSourceInfoBegin(@Nonnull NNode node) throws IOException {
- if (node instanceof HasSourceInfo) {
- NSourceInfo sourceInfo = ((HasSourceInfo) node).getSourceInfos();
- writeFileNameIfDifferentFromCurrent(sourceInfo.fileName);
- writeLineIfDifferentFromCurrent(sourceInfo.startLine);
- }
- }
-
- private void writeSourceInfoEnd(@Nonnull NNode node) throws IOException {
- if (node instanceof HasSourceInfo) {
- writeLineIfDifferentFromCurrent(
- ((HasSourceInfo) node).getSourceInfos().endLine);
- }
- }
-
- public void writeIds(@Nonnull List<String> list) throws IOException {
- writeOpen();
-
- writeTrimmedInt(list.size());
-
- for (String id : list) {
- writeId(id);
- }
-
- writeClose();
- }
-
- public void writeCatchBlockIds(@CheckForNull NNode node) throws IOException {
- if (node instanceof HasCatchBlockIds) {
- List<String> list = ((HasCatchBlockIds) node).getCatchBlockIds();
- List<String> removedIds = new ArrayList<String>(currentCatchBlockList.size());
- List<String> addedIds = new ArrayList<String>(list.size());
-
- for (String s : currentCatchBlockList) {
- removedIds.add(s);
- }
- for (String s : list) {
- addedIds.add(s);
- }
-
- // intersection(current, list)
- currentCatchBlockList.retainAll(list);
- // current \ intersection(current, list)
- removedIds.removeAll(currentCatchBlockList);
- // list \ intersection(current, list)
- addedIds.removeAll(currentCatchBlockList);
-
- int addedIdsSize = addedIds.size();
- int removedIdsSize = removedIds.size();
-
- if (addedIdsSize > 0) {
- writeOpenAddCatchBlockIds();
- writeInt(addedIdsSize);
- for (int i = 0; i < addedIdsSize; i++) {
- writeString(addedIds.get(i));
- }
- writeCloseCatchBlockIds();
- }
-
- if (removedIdsSize > 0) {
- writeOpenRemoveCatchBlockIds();
- writeInt(removedIdsSize);
- for (int i = 0; i < removedIdsSize; i++) {
- writeString(removedIds.get(i));
- }
- writeCloseCatchBlockIds();
- }
- currentCatchBlockList.addAll(addedIds);
- }
- }
-
- public void writeNodes(@Nonnull Collection<? extends NNode> nodes) throws IOException {
- writeOpen();
-
- writeTrimmedInt(nodes.size());
-
- for (Iterator<? extends NNode> iterator = nodes.iterator(); iterator.hasNext();) {
- writeNode(iterator.next());
- }
-
- writeClose();
- }
-
- public void writeInt(int value) throws IOException {
- writeTrimmedInt(value);
- writeSpace();
- }
-
- private void writeTrimmedInt(int value) throws IOException {
- out.writeInt(value);
- }
-
- public void writeBoolean(boolean value) throws IOException {
- out.writeBoolean(value);
- }
-
- public void writeLong(long value) throws IOException {
- writeTrimmedLong(value);
- writeSpace();
- }
-
- private void writeTrimmedLong(long value) throws IOException {
- out.writeLong(value);
- }
-
- public void writeByte(byte value) throws IOException {
- out.writeByte(value);
- writeSpace();
- }
-
- public void writeShort(short value) throws IOException {
- out.writeShort(value);
- writeSpace();
- }
-
- public void writeChar(char value) throws IOException {
- out.writeChar(value);
- writeSpace();
- }
-
- public void writeFloat(float value) throws IOException {
- writeTrimmedInt(Float.floatToRawIntBits(value));
- writeSpace();
- }
-
- public void writeDouble(double value) throws IOException {
- writeTrimmedLong(Double.doubleToRawLongBits(value));
- writeSpace();
- }
-
- public void writeId(@CheckForNull String id) throws IOException {
- writeString(id);
- }
-
- public void writeRetentionPolicyEnum(@Nonnull JRetentionPolicy enumValue) throws IOException {
- writeByte(RetentionPolicyIdHelper.getId(enumValue));
- }
-
- public void writeFieldRefKindEnum(@Nonnull FieldKind enumValue) throws IOException {
- writeByte(FieldRefKindIdHelper.getId(enumValue));
- }
-
- public void writeMethodKindEnum(@Nonnull MethodKind enumValue) throws IOException {
- writeByte(MethodKindIdHelper.getId(enumValue));
- }
-
- public void writeReceiverKindEnum(@Nonnull ReceiverKind enumValue) throws IOException {
- writeByte(ReceiverKindIdHelper.getId(enumValue));
- }
-
- public void writeDispatchKindEnum(@Nonnull DispatchKind enumValue) throws IOException {
- writeByte(DispatchKindIdHelper.getId(enumValue));
- }
-
- public void writeString(@CheckForNull String string) throws IOException {
- out.writeUTF(string);
- }
-
- public void writeBuffer(@CheckForNull byte[] b) throws IOException {
- out.writeBuffer(b);
- }
-
- public void writeFileNameIfDifferentFromCurrent(@CheckForNull String fileName)
- throws IOException {
- if (fileName != null && !fileName.equals(currentFileName)) {
- writeCurrentFileName(fileName);
- }
- // Assume that elements with unknown debug infos are in same file.
- }
-
- public void writeCurrentFileName(@Nonnull String fileName) throws IOException {
- writeOpenFileName();
- writeString(fileName);
- writeCloseFileName();
- currentFileName = fileName;
- }
-
- public void writeLineIfDifferentFromCurrent(@Nonnegative int lineNumber)
- throws IOException {
- if (lineNumber != currentLineNumber) {
- writeCurrentLine(lineNumber);
- }
- }
-
- public void writeCurrentLine(@Nonnegative int lineNumber)
- throws IOException {
- writeOpenLineInfo();
- writeTrimmedInt(lineNumber);
- writeCloseLineInfo();
- currentLineNumber = lineNumber;
- }
-
- private void writeNull() throws IOException {
- writeToken(Token.NULL);
- writeSpace();
- }
-
- @SuppressWarnings("unused")
- private void writeSpace() throws IOException{
- }
-
- private void writeToken(@Nonnull Token token) throws IOException {
- out.writeByte(token.ordinal());
- }
-
- @SuppressWarnings("unused")
- private void writeOpen() throws IOException{
- }
-
- private void writeClose() throws IOException {
- writeToken(Token.RPARENTHESIS);
- }
-
- private void writeOpenFileName() throws IOException {
- writeToken(Token.SHARP);
- }
-
- @SuppressWarnings("unused")
- private void writeCloseFileName() throws IOException{
- }
-
- private void writeOpenLineInfo() throws IOException {
- writeToken(Token.LBRACKET);
- }
-
- @SuppressWarnings("unused")
- private void writeCloseLineInfo() throws IOException{
- }
-
- private void writeOpenAddCatchBlockIds() throws IOException {
- writeToken(Token.LCURLY_ADD);
- }
-
- private void writeOpenRemoveCatchBlockIds() throws IOException {
- writeToken(Token.LCURLY_REMOVE);
- }
-
- @SuppressWarnings("unused")
- private void writeCloseCatchBlockIds() throws IOException{
- }
-
- @Override
- public void write(@Nonnull JNode jNode) throws IOException {
- try (Event eventWriting = tracer.open(JackEventType.NNODE_WRITING)) {
- ImportHelper importHelper = new ImportHelper(new NodeFactory());
- NNode nNode;
- try (Event eventConvert = tracer.open(JackEventType.JNODE_TO_NNODE_CONVERSION)) {
- nNode = importHelper.load(jNode);
- }
-
- writeNode(nNode);
- }
- }
-
- @Override
- public int getCurrentMinor() {
- return Version.CURRENT_MINOR;
- }
-
- @Override
- public void close() throws IOException {
- out.close();
- }
-}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAbsentArrayDimension.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAbsentArrayDimension.java
index 30a76fa..3d3cf8d 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAbsentArrayDimension.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAbsentArrayDimension.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -54,11 +53,6 @@
@SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- }
-
- @SuppressWarnings("unused")
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAddOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAddOperation.java
index 34639a1..91631c8 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAddOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAddOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAlloc.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAlloc.java
index 32e4686..2118f5b 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAlloc.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAlloc.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -63,11 +62,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(instanceType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instanceType = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAndOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAndOperation.java
index 626a0b8..8d71ec8 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAndOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotation.java
index 7d5a96b..f420d0d 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotation.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -90,15 +89,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert retentionPolicy != null;
- out.writeRetentionPolicyEnum(retentionPolicy);
- out.writeId(annotationType);
- out.writeNodes(elements);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
retentionPolicy = in.readRetentionPolicyEnum();
annotationType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationMethod.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationMethod.java
index a1a170f..877c5f3 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationMethod.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationMethod.java
@@ -30,7 +30,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -102,17 +101,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert annotations != null;
- out.writeId(name);
- out.writeId(returnType);
- out.writeInt(modifier);
- out.writeNodes(annotations);
- out.writeNode(defaultValue);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
name = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationType.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationType.java
index ffa52d7..4f4919c 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationType.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAnnotationType.java
@@ -29,7 +29,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.util.NamingTools;
@@ -121,21 +120,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert retentionPolicy != null;
- out.writeRetentionPolicyEnum(retentionPolicy);
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
retentionPolicy = in.readRetentionPolicyEnum();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLength.java b/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLength.java
index 3556483..b0171fc 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLength.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLength.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -66,11 +65,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(instance);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instance = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLiteral.java
index 127dddf..a486622 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NArrayLiteral.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -71,11 +70,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(values);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
values = in.readNodes(NLiteral.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NArrayRef.java b/jack/src/com/android/jack/jayce/v0003/nodes/NArrayRef.java
index a830dcc..7264d8a 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NArrayRef.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NArrayRef.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -72,12 +71,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(instance);
- out.writeNode(index);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instance = in.readNode(NExpression.class);
index = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgAddOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgAddOperation.java
index 59f7de3..5a20b0b 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgAddOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgAddOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitAndOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitAndOperation.java
index a8f23c2..8b5be63 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitAndOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitOrOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitOrOperation.java
index 61108e7..63c0acf 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitOrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitXorOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitXorOperation.java
index 957568a..fb49da9 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitXorOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgBitXorOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgConcatOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgConcatOperation.java
index 868cf01..2ad1cb3 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgConcatOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgConcatOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgDivOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgDivOperation.java
index 641a0dc..fbe8a0c 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgDivOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgDivOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgModOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgModOperation.java
index b97a6f0..5d4c6ad 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgModOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgModOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgMulOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgMulOperation.java
index 8deb270..a072139 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgMulOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgMulOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgOperation.java
index f3a32fe..cae23b5 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShlOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShlOperation.java
index b757941..17c2706 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShlOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShlOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShrOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShrOperation.java
index d79090d..189a8c3 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShruOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShruOperation.java
index b59be5c..79108f8 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShruOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgShruOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgSubOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgSubOperation.java
index a3d2ee6..2e38410 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAsgSubOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAsgSubOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NAssertStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NAssertStatement.java
index 9e12967..3e835d4 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NAssertStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NAssertStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -84,12 +83,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(testExpression);
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
testExpression = in.readNode(NExpression.class);
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NBitAndOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NBitAndOperation.java
index 8891729..cc9554a 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NBitAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NBitAndOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NBitOrOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NBitOrOperation.java
index 1a9246d..63c9b1b 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NBitOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NBitOrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NBitXorOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NBitXorOperation.java
index 682f191..e996036 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NBitXorOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NBitXorOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NBlock.java b/jack/src/com/android/jack/jayce/v0003/nodes/NBlock.java
index c5b2788..e8c9aa0 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NBlock.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NBlock.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,11 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(statements);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
statements = in.readNodes(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NBooleanLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NBooleanLiteral.java
index d9a529b..f1c286c 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NBooleanLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NBooleanLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeBoolean(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readBoolean();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NBreakStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NBreakStatement.java
index 7fadf5d..e7cbcbe 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NBreakStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NBreakStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -71,11 +70,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(label);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
label = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NByteLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NByteLiteral.java
index 5102162..f0dfa0a 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NByteLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NByteLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeByte(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readByte();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NCaseStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NCaseStatement.java
index 0327351..9c1bfae 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NCaseStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NCaseStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -80,12 +79,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
expr = in.readNode(NLiteral.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NCatchBlock.java b/jack/src/com/android/jack/jayce/v0003/nodes/NCatchBlock.java
index 71bc829..c306123 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NCatchBlock.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NCatchBlock.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -103,14 +102,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeIds(catchTypes);
- out.writeNode(catchVar);
- out.writeNodes(statements);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
catchTypes = in.readIds();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NCharLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NCharLiteral.java
index c5d6532..b5fe707 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NCharLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NCharLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeChar(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readChar();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NClassLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NClassLiteral.java
index 203b28a..11b8fbb 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NClassLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NClassLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -64,11 +63,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(refType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
refType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NClassType.java b/jack/src/com/android/jack/jayce/v0003/nodes/NClassType.java
index 2780320..4f52654 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NClassType.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NClassType.java
@@ -30,7 +30,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
import com.android.jack.util.NamingTools;
@@ -169,23 +168,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeId(superClass);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeId(enclosingMethodClass);
- out.writeId(enclosingMethod);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
-
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NConcatOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NConcatOperation.java
index db0952f..9d4f818 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NConcatOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NConcatOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -72,12 +71,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NConditionalExpression.java b/jack/src/com/android/jack/jayce/v0003/nodes/NConditionalExpression.java
index b22fb63..8460d2f 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NConditionalExpression.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NConditionalExpression.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -79,13 +78,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(ifTest);
- out.writeNode(thenExpr);
- out.writeNode(elseExpr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
ifTest = in.readNode(NExpression.class);
thenExpr = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NConstructor.java b/jack/src/com/android/jack/jayce/v0003/nodes/NConstructor.java
index 246159b..07cc4b4 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NConstructor.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NConstructor.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -91,16 +90,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert annotations != null;
- out.writeNodes(getParameters());
- out.writeInt(modifier);
- out.writeNodes(annotations);
- out.writeNode(body);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
setParameters(in.readNodes(NParameter.class));
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NContainerAnnotation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NContainerAnnotation.java
index 2733c88..f20e416 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NContainerAnnotation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NContainerAnnotation.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.transformations.annotation.ContainerAnnotationMarker;
@@ -60,13 +59,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert retentionPolicy != null;
- out.writeRetentionPolicyEnum(retentionPolicy);
- out.writeId(annotationTypeSig);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
retentionPolicy = in.readRetentionPolicyEnum();
annotationTypeSig = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NContinueStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NContinueStatement.java
index 2341f7e..a55c83c 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NContinueStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NContinueStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -73,11 +72,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(label);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
label = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NDivOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NDivOperation.java
index 8494864..c5e0413 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NDivOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NDivOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NDoStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NDoStatement.java
index f884a1f..1908ce9 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NDoStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NDoStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -79,12 +78,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(testExpression);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
testExpression = in.readNode(NExpression.class);
body = in.readNode(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NDoubleLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NDoubleLiteral.java
index e623ed1..e7266bc 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NDoubleLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NDoubleLiteral.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -60,14 +59,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeDouble(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readDouble();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NDynamicCastOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NDynamicCastOperation.java
index 3b6ccb4..e7abde8 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NDynamicCastOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NDynamicCastOperation.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -78,13 +77,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert castTypes != null;
- out.writeIds(castTypes);
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
castTypes = in.readIds();
expr = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NEnumField.java b/jack/src/com/android/jack/jayce/v0003/nodes/NEnumField.java
index ab1a4ec..71772ae 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NEnumField.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NEnumField.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -92,17 +91,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNode(initialValue);
- out.writeInt(ordinal);
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
modifiers = in.readInt();
type = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NEnumLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NEnumLiteral.java
index 2ead7f8..25bfef3 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NEnumLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NEnumLiteral.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JLookup;
@@ -76,12 +75,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(enumFieldDeclaringType);
- out.writeId(enumFieldName);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
enumFieldDeclaringType = in.readId();
enumFieldName = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NEnumType.java b/jack/src/com/android/jack/jayce/v0003/nodes/NEnumType.java
index 24759b1..e531952 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NEnumType.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NEnumType.java
@@ -30,7 +30,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
import com.android.jack.util.NamingTools;
@@ -138,23 +137,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeId(superClass);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeId(enclosingMethodClass);
- out.writeId(enclosingMethod);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
-
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NEqOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NEqOperation.java
index bdf017c..1159db4 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NEqOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NEqOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NExceptionRuntimeValue.java b/jack/src/com/android/jack/jayce/v0003/nodes/NExceptionRuntimeValue.java
index abab103..d688b56 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NExceptionRuntimeValue.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NExceptionRuntimeValue.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(catchedType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
catchedType = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NExpressionStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NExpressionStatement.java
index 3e27c7a..959140f 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NExpressionStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NExpressionStatement.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expression);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expression = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NField.java b/jack/src/com/android/jack/jayce/v0003/nodes/NField.java
index 807bebd..0264ffa 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NField.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NField.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -121,16 +120,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNode(initialValue);
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
modifiers = in.readInt();
type = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NFieldInitializer.java b/jack/src/com/android/jack/jayce/v0003/nodes/NFieldInitializer.java
index e3b601b..b33a829 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NFieldInitializer.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NFieldInitializer.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -50,11 +49,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) {
- throw new UnsupportedOperationException();
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) {
throw new UnsupportedOperationException();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NFieldRef.java b/jack/src/com/android/jack/jayce/v0003/nodes/NFieldRef.java
index 3b79cf4..36b7f68 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NFieldRef.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NFieldRef.java
@@ -26,7 +26,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -90,16 +89,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert kind != null;
- out.writeId(field);
- out.writeId(fieldType);
- out.writeId(receiverType);
- out.writeFieldRefKindEnum(kind);
- out.writeNode(instance);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
field = in.readId();
fieldType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NFloatLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NFloatLiteral.java
index b7c162c..f448e92 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NFloatLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NFloatLiteral.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -60,14 +59,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeFloat(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readFloat();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NForStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NForStatement.java
index 4b73da0..438b79e 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NForStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NForStatement.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -101,17 +100,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert initializers != null;
- assert increments != null;
-
- out.writeNodes(initializers);
- out.writeNode(testExpression);
- out.writeNodes(increments);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
initializers = in.readNodes(NStatement.class);
testExpression = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NGenericSignature.java b/jack/src/com/android/jack/jayce/v0003/nodes/NGenericSignature.java
index e088da7..a0df018 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NGenericSignature.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NGenericSignature.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -53,11 +52,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(genericSignature);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
genericSignature = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NGoto.java b/jack/src/com/android/jack/jayce/v0003/nodes/NGoto.java
index 2a28bdb..25b4813 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NGoto.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NGoto.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -73,11 +72,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(target);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
target = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NGtOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NGtOperation.java
index 66b6173..c7094a5 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NGtOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NGtOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NGteOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NGteOperation.java
index f229891..4d775a5 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NGteOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NGteOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NIfStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NIfStatement.java
index a0cd79d..26c4b69 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NIfStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NIfStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -88,13 +87,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(ifExpression);
- out.writeNode(thenStatement);
- out.writeNode(elseStatement);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
ifExpression = in.readNode(NExpression.class);
thenStatement = in.readNode(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NInstanceOf.java b/jack/src/com/android/jack/jayce/v0003/nodes/NInstanceOf.java
index a6ab819..95ccb09 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NInstanceOf.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NInstanceOf.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -72,12 +71,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- out.writeId(testType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
testType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NIntLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NIntLiteral.java
index 73942d0..83374ef 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NIntLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NIntLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readInt();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NInterfaceType.java b/jack/src/com/android/jack/jayce/v0003/nodes/NInterfaceType.java
index 5324315..89e7f5c 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NInterfaceType.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NInterfaceType.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.util.NamingTools;
@@ -137,20 +136,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeInt(modifiers);
- out.writeId(signature);
- out.writeIds(superInterfaces);
- out.writeId(enclosingType);
- out.writeIds(inners);
- out.writeNodes(getFields());
- out.writeNodes(getMethods());
- out.writeNodes(annotations);
- out.writeNodes(markers);
-
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLabeledStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLabeledStatement.java
index c6bc314..e3b8c3b 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLabeledStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLabeledStatement.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -88,13 +87,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(label);
- out.writeId(id);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
label = in.readString();
id = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLambda.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLambda.java
index 9688feb..3a35b33 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLambda.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLambda.java
@@ -30,7 +30,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.jayce.v0003.nodes.NMethodCall.ReceiverKind;
import com.android.jack.lookup.JMethodLookupException;
@@ -183,25 +182,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert methodRefKind != null;
- assert receiverKind != null;
- out.writeNodes(capturedVariables);
- out.writeReceiverKindEnum(receiverKind);
- out.writeId(enclosingType);
- out.writeId(methodRefName);
- out.writeIds(methodRefArgsType);
- out.writeMethodKindEnum(methodRefKind);
- out.writeId(methodRefType);
- out.writeId(typeSig);
- out.writeIds(boundsIds);
- out.writeNode(mthIdWithErasure);
- out.writeNode(mthIdWithoutErasure);
- out.writeNodes(bridges);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
capturedVariables = in.readNodes(NExpression.class);
receiverKind = in.readReceiverKindEnum();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLambdaFromJill.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLambdaFromJill.java
index f4ad8b8..49d43b3 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLambdaFromJill.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLambdaFromJill.java
@@ -19,7 +19,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.transformations.lambda.LambdaFromJillMarker;
@@ -46,10 +45,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) {
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) {
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLocal.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLocal.java
index 5684211..f592e8f 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLocal.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLocal.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -100,16 +99,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNodes(annotationSet);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLocalRef.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLocalRef.java
index d41f492..ad7de01 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLocalRef.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLocalRef.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -63,11 +62,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(localId);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
localId = in.readId();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLock.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLock.java
index ea5094f..0a3394a 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLock.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLock.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lockExpr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lockExpr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLongLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLongLiteral.java
index ed87e9c..2e8e345 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLongLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLongLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeLong(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readLong();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLtOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLtOperation.java
index 7cac52e..caeccf4 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLtOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLtOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NLteOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NLteOperation.java
index 9cc9e59..062a464 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NLteOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NLteOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NMethod.java b/jack/src/com/android/jack/jayce/v0003/nodes/NMethod.java
index dc6a112..172ca71 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NMethod.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NMethod.java
@@ -36,7 +36,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -170,19 +169,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert methodKind != null;
- out.writeId(name);
- out.writeId(returnType);
- out.writeNodes(getParameters());
- out.writeMethodKindEnum(methodKind);
- out.writeInt(modifier);
- out.writeNodes(annotations);
- out.writeNode(body);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
level = in.getNodeLevel();
name = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodBody.java b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodBody.java
index 3c61873..bbb63f9 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodBody.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodBody.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,12 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(locals);
- out.writeNode(block);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
locals = in.readNodes(NLocal.class);
block = in.readNode(NBlock.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodCall.java b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodCall.java
index c35e077..93fa344 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodCall.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodCall.java
@@ -29,7 +29,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -137,26 +136,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert receiverType != null;
- assert receiverKind != null;
- assert methodName != null;
- assert methodKind != null;
- assert returnType != null;
- assert dispatchKind != null;
- assert sourceInfo != null;
- out.writeNode(instance);
- out.writeId(receiverType);
- out.writeReceiverKindEnum(receiverKind);
- out.writeId(methodName);
- out.writeIds(methodArgsType);
- out.writeMethodKindEnum(methodKind);
- out.writeId(returnType);
- out.writeNodes(args);
- out.writeDispatchKindEnum(dispatchKind);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
instance = in.readNode(NExpression.class);
receiverType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodId.java b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodId.java
index 92ef0ef..d11bce2 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodId.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodId.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -79,15 +78,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert methodKind != null;
- out.writeId(name);
- out.writeMethodKindEnum(methodKind);
- out.writeId(returnTypeSig);
- out.writeIds(paramTypeSigs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
name = in.readId();
methodKind = in.readMethodKindEnum();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodLiteral.java
index afa8c9e..ebbd57d 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NMethodLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NMethodLiteral.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,12 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(method);
- out.writeId(methodEnclosingType);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
method = in.readId();
methodEnclosingType = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NModOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NModOperation.java
index 8125414..000db8d 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NModOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NModOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NMulOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NMulOperation.java
index 4031a89..485b56d 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NMulOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NMulOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NMultiExpression.java b/jack/src/com/android/jack/jayce/v0003/nodes/NMultiExpression.java
index 798a593..410c826 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NMultiExpression.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NMultiExpression.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -71,11 +70,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(exprs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
exprs = in.readNodes(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NNameValuePair.java b/jack/src/com/android/jack/jayce/v0003/nodes/NNameValuePair.java
index ed6a031..8a88b45 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NNameValuePair.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NNameValuePair.java
@@ -28,7 +28,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -87,12 +86,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(name);
- out.writeNode(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
name = in.readString();
value = in.readNode(NLiteral.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NNativeMethodBody.java b/jack/src/com/android/jack/jayce/v0003/nodes/NNativeMethodBody.java
index 53d45d5..dc626af 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NNativeMethodBody.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NNativeMethodBody.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -57,12 +56,6 @@
@SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
-
- }
-
- @SuppressWarnings("unused")
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NNeqOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NNeqOperation.java
index e5f3e44..07ecfa3 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NNeqOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NNeqOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NNewArray.java b/jack/src/com/android/jack/jayce/v0003/nodes/NNewArray.java
index c9ee412..916cdb1 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NNewArray.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NNewArray.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -88,13 +87,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(type);
- out.writeNodes(dims);
- out.writeNodes(initializers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
type = in.readId();
dims = in.readNodes(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NNewInstance.java b/jack/src/com/android/jack/jayce/v0003/nodes/NNewInstance.java
index b4c4597..3d0f822 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NNewInstance.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NNewInstance.java
@@ -26,7 +26,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -80,15 +79,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert instance == null;
- assert methodKind == null;
- out.writeId(receiverType);
- out.writeIds(methodArgsType);
- out.writeNodes(args);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
receiverType = in.readId();
methodArgsType = in.readIds();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NNullLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NNullLiteral.java
index 19562c0..fe25d0a 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NNullLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NNullLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -57,11 +56,6 @@
@SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- }
-
- @SuppressWarnings("unused")
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NOrOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NOrOperation.java
index 4cf55d0..902731c 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NOrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NOriginDigest.java b/jack/src/com/android/jack/jayce/v0003/nodes/NOriginDigest.java
index b32a817..82fd49b 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NOriginDigest.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NOriginDigest.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.jayce.v0003.util.OriginDigestDescriptorHelper;
@@ -70,18 +69,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- assert digest != null;
-
- out.writeInt(descriptor);
- out.writeString(algo);
- out.writeBuffer(digest);
- out.writeString(emitter);
- out.writeInt(major);
- out.writeInt(minor);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
descriptor = in.readInt();
algo = in.readString();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NParameter.java b/jack/src/com/android/jack/jayce/v0003/nodes/NParameter.java
index 037cda4..d008056 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NParameter.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NParameter.java
@@ -26,7 +26,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -114,16 +113,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(id);
- out.writeInt(modifiers);
- out.writeId(type);
- out.writeId(name);
- out.writeNodes(annotations);
- out.writeNodes(markers);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
id = in.readId();
modifiers = in.readInt();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NParameterRef.java b/jack/src/com/android/jack/jayce/v0003/nodes/NParameterRef.java
index 6c6b302..42f795e 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NParameterRef.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NParameterRef.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -63,11 +62,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(localId);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
localId = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixDecOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixDecOperation.java
index a03de50..7dbd2d2 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixDecOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixDecOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixIncOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixIncOperation.java
index 17b3507..96745f5 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixIncOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NPostfixIncOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixBitNotOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixBitNotOperation.java
index c2d6f63..85fa6fa 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixBitNotOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixBitNotOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixDecOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixDecOperation.java
index ee2fada..7e5c07f 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixDecOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixDecOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixIncOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixIncOperation.java
index 4f96997..81360b2 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixIncOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixIncOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNegOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNegOperation.java
index fc5cd67..607a973 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNegOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNegOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNotOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNotOperation.java
index f7ee123..e191646 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNotOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NPrefixNotOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -62,11 +61,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(arg);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
arg = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NReinterpretCastOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NReinterpretCastOperation.java
index ceb7afe..4d4dac7 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NReinterpretCastOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NReinterpretCastOperation.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,12 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(castType);
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
castType = in.readId();
expr = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NReturnStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NReturnStatement.java
index 4632077..afd7119 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NReturnStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NReturnStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -74,11 +73,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NShlOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NShlOperation.java
index b4db2eb..1a210df 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NShlOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NShlOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NShortLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NShortLiteral.java
index abeb5bb..e54a20b 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NShortLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NShortLiteral.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -59,14 +58,8 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeShort(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readShort();
-
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NShrOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NShrOperation.java
index 80ac4f1..36fc08b 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NShrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NShrOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NShruOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NShruOperation.java
index bceb64c..2c416a9 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NShruOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NShruOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NSimpleName.java b/jack/src/com/android/jack/jayce/v0003/nodes/NSimpleName.java
index 2936ecd..1940eab 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NSimpleName.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NSimpleName.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -54,11 +53,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(simpleName);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
simpleName = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NStringLiteral.java b/jack/src/com/android/jack/jayce/v0003/nodes/NStringLiteral.java
index dd12e7d..481c75f 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NStringLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NStringLiteral.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -61,11 +60,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(value);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
value = in.readString();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NSubOperation.java b/jack/src/com/android/jack/jayce/v0003/nodes/NSubOperation.java
index 839fe5c..c3bb3f3 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NSubOperation.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NSubOperation.java
@@ -21,7 +21,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -68,12 +67,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lhs);
- out.writeNode(rhs);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lhs = in.readNode(NExpression.class);
rhs = in.readNode(NExpression.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NSwitchStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NSwitchStatement.java
index 1b2b312..cdb7cb7 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NSwitchStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NSwitchStatement.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -98,13 +97,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- out.writeIds(cases);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
cases = in.readIds();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NSynchronizedBlock.java b/jack/src/com/android/jack/jayce/v0003/nodes/NSynchronizedBlock.java
index 84cbc8f..abda178 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NSynchronizedBlock.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NSynchronizedBlock.java
@@ -25,7 +25,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -86,12 +85,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lockExpr);
- out.writeNode(synchronizedBlock);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lockExpr = in.readNode(NExpression.class);
synchronizedBlock = in.readNode(NBlock.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NThisRef.java b/jack/src/com/android/jack/jayce/v0003/nodes/NThisRef.java
index b7386c5..7a2334a 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NThisRef.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NThisRef.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -63,11 +62,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeId(type);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
type = in.readId();
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NThisRefTypeInfo.java b/jack/src/com/android/jack/jayce/v0003/nodes/NThisRefTypeInfo.java
index aa61ea5..77ab782 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NThisRefTypeInfo.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NThisRefTypeInfo.java
@@ -20,7 +20,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -56,11 +55,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeString(genericSignature);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
genericSignature = in.readString();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NThrowStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NThrowStatement.java
index 5a8f7d1..23e4df9 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NThrowStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NThrowStatement.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(expr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
expr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NThrownExceptionMarker.java b/jack/src/com/android/jack/jayce/v0003/nodes/NThrownExceptionMarker.java
index 8f6d8bd..43f519d 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NThrownExceptionMarker.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NThrownExceptionMarker.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import java.io.IOException;
@@ -61,11 +60,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeIds(thrownExceptions);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
thrownExceptions = in.readIds();
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NTryStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NTryStatement.java
index a209a31..f047541 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NTryStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NTryStatement.java
@@ -24,7 +24,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -96,14 +95,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNodes(resourcesDeclaration);
- out.writeNode(tryBlock);
- out.writeNodes(catchBlocks);
- out.writeNode(finallyBlock);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
resourcesDeclaration = in.readNodes(NStatement.class);
tryBlock = in.readNode(NBlock.class);
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NUnlock.java b/jack/src/com/android/jack/jayce/v0003/nodes/NUnlock.java
index 2a2e5e7..1368efe 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NUnlock.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NUnlock.java
@@ -22,7 +22,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -75,11 +74,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(lockExpr);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
lockExpr = in.readNode(NExpression.class);
}
diff --git a/jack/src/com/android/jack/jayce/v0003/nodes/NWhileStatement.java b/jack/src/com/android/jack/jayce/v0003/nodes/NWhileStatement.java
index 30b7acf..764be05 100644
--- a/jack/src/com/android/jack/jayce/v0003/nodes/NWhileStatement.java
+++ b/jack/src/com/android/jack/jayce/v0003/nodes/NWhileStatement.java
@@ -23,7 +23,6 @@
import com.android.jack.jayce.v0003.io.ExportSession;
import com.android.jack.jayce.v0003.io.ImportHelper;
import com.android.jack.jayce.v0003.io.JayceInternalReaderImpl;
-import com.android.jack.jayce.v0003.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0003.io.Token;
import com.android.jack.lookup.JMethodLookupException;
@@ -79,12 +78,6 @@
}
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
- out.writeNode(testExpression);
- out.writeNode(body);
- }
-
- @Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
testExpression = in.readNode(NExpression.class);
body = in.readNode(NStatement.class);
diff --git a/jack/src/com/android/jack/jayce/v0004/io/JayceInputStream.java b/jack/src/com/android/jack/jayce/v0004/io/JayceInputStream.java
index 5c9d909..325261e 100644
--- a/jack/src/com/android/jack/jayce/v0004/io/JayceInputStream.java
+++ b/jack/src/com/android/jack/jayce/v0004/io/JayceInputStream.java
@@ -16,6 +16,8 @@
package com.android.jack.jayce.v0004.io;
+import com.google.common.io.ByteStreams;
+
import com.android.jack.util.StringUtils;
import java.io.DataInput;
@@ -57,31 +59,55 @@
return in.readBoolean();
}
+ public void skipBoolean() throws IOException {
+ ByteStreams.skipFully(in, 1);
+ }
+
@Override
public byte readByte() throws IOException {
return in.readByte();
}
+ public void skipByte() throws IOException {
+ ByteStreams.skipFully(in, 1);
+ }
+
@Override
public int readUnsignedByte() throws IOException {
return in.readUnsignedByte();
}
+ public void skipUnsignedByte() throws IOException {
+ ByteStreams.skipFully(in, 1);
+ }
+
@Override
public short readShort() throws IOException {
return in.readShort();
}
+ public void skipShort() throws IOException {
+ ByteStreams.skipFully(in, 2);
+ }
+
@Override
public int readUnsignedShort() throws IOException {
return in.readUnsignedShort();
}
+ public void skipUnsignedShort() throws IOException {
+ ByteStreams.skipFully(in, 2);
+ }
+
@Override
public char readChar() throws IOException {
return in.readChar();
}
+ public void skipChar() throws IOException {
+ ByteStreams.skipFully(in, 2);
+ }
+
@Override
public int readInt() throws IOException {
int result = 0;
@@ -108,6 +134,10 @@
return result;
}
+ public void skipInt() throws IOException {
+ readInt();
+ }
+
@Override
public long readLong() throws IOException {
long result = 0;
@@ -134,16 +164,28 @@
return result;
}
+ public void skipLong() throws IOException {
+ readLong();
+ }
+
@Override
public float readFloat() throws IOException {
return in.readFloat();
}
+ public void skipFloat() throws IOException {
+ ByteStreams.skipFully(in, 4);
+ }
+
@Override
public double readDouble() throws IOException {
return in.readDouble();
}
+ public void skipDouble() throws IOException {
+ ByteStreams.skipFully(in, 8);
+ }
+
@Deprecated
@Override
public String readLine() throws IOException {
@@ -166,6 +208,14 @@
}
}
+ public void skipUTF() throws IOException {
+ int length = readInt();
+
+ if (length > 0) {
+ ByteStreams.skipFully(in, length);
+ }
+ }
+
public byte[] readBuffer() throws IOException {
int length = readInt();
@@ -177,4 +227,12 @@
return b;
}
+
+ public void skipBuffer() throws IOException {
+ int length = readInt();
+
+ if (length > 0) {
+ ByteStreams.skipFully(in, length);
+ }
+ }
}
diff --git a/jack/src/com/android/jack/jayce/v0004/io/JayceInternalReaderImpl.java b/jack/src/com/android/jack/jayce/v0004/io/JayceInternalReaderImpl.java
index 69fd3d1..43601db 100644
--- a/jack/src/com/android/jack/jayce/v0004/io/JayceInternalReaderImpl.java
+++ b/jack/src/com/android/jack/jayce/v0004/io/JayceInternalReaderImpl.java
@@ -105,6 +105,10 @@
return readString();
}
+ public void skipId() throws IOException {
+ skipString();
+ }
+
@CheckForNull
public String readCurrentFileName() throws IOException {
if (tokenizer.readOpenFileName()) {
@@ -119,6 +123,14 @@
return currentFileName;
}
+ public void skipCurrentFileName() throws IOException {
+ if (tokenizer.readOpenFileName()) {
+ skipString();
+ currentLine = SourceInfo.UNKNOWN_LINE_NUMBER;
+ tokenizer.readCloseFileName();
+ }
+ }
+
@Nonnegative
public int readCurrentLine() throws IOException {
if (tokenizer.readOpenLineInfo()) {
@@ -128,41 +140,76 @@
return currentLine;
}
+ public void skipCurrentLine() throws IOException {
+ if (tokenizer.readOpenLineInfo()) {
+ skipInt();
+ tokenizer.readCloseLineInfo();
+ }
+ }
+
@Nonnull
public JRetentionPolicy readRetentionPolicyEnum() throws IOException {
return RetentionPolicyIdHelper.getValue(readByte());
}
+ public void skipRetentionPolicyEnum() throws IOException {
+ skipByte();
+ }
+
@Nonnull
public FieldKind readFieldRefKindEnum() throws IOException {
return FieldRefKindIdHelper.getValue(readByte());
}
+ public void skipFieldRefKindEnum() throws IOException {
+ skipByte();
+ }
+
@Nonnull
public MethodKind readMethodKindEnum() throws IOException {
return MethodKindIdHelper.getValue(readByte());
}
+ public void skipMethodKindEnum() throws IOException {
+ skipByte();
+ }
+
@Nonnull
public ReceiverKind readReceiverKindEnum() throws IOException {
return ReceiverKindIdHelper.getValue(readByte());
}
+ public void skipReceiverKindEnum() throws IOException {
+ skipByte();
+ }
+
@Nonnull
public DispatchKind readDispatchKindEnum() throws IOException {
return DispatchKindIdHelper.getValue(readByte());
}
+ public void skipDispatchKindEnum() throws IOException {
+ skipByte();
+ }
+
@CheckForNull
public String readString() throws IOException {
return tokenizer.readString();
}
+ public void skipString() throws IOException {
+ tokenizer.skipString();
+ }
+
@CheckForNull
public byte[] readBuffer() throws IOException {
return tokenizer.readBuffer();
}
+ public void skipBuffer() throws IOException {
+ tokenizer.skipBuffer();
+ }
+
@Nonnull
public List<String> readIds() throws IOException {
tokenizer.readOpen();
@@ -175,6 +222,15 @@
return ids;
}
+ public void skipIds() throws IOException {
+ tokenizer.readOpen();
+ int length = readInt();
+ for (int i = 0; i < length; i++) {
+ skipId();
+ }
+ tokenizer.readClose();
+ }
+
public void readCatchBlockIds() throws IOException {
if (tokenizer.readOpenCatchBlockIdAdd()) {
int length = tokenizer.readInt();
@@ -196,6 +252,63 @@
}
}
+ public void skipCatchBlockIds() throws IOException {
+ if (tokenizer.readOpenCatchBlockIdAdd()) {
+ int length = tokenizer.readInt();
+ for (int i = 0; i < length; i++) {
+ skipId();
+ }
+ tokenizer.readCloseCatchBlockId();
+ }
+ if (tokenizer.readOpenCatchBlockIdRemove()) {
+ int length = tokenizer.readInt();
+ for (int i = 0; i < length; i++) {
+ skipId();
+ }
+ tokenizer.readCloseCatchBlockId();
+ }
+ }
+
+ public <T extends NNode> void skipNode()
+ throws IOException, JayceFormatException {
+
+ skipCurrentFileName();
+ skipCurrentLine();
+
+ skipCatchBlockIds();
+
+ Token token = tokenizer.next();
+
+ if (token == Token.NULL) {
+ return;
+ }
+
+ tokenizer.readOpen();
+
+ skipNodeInternal(token);
+ }
+
+ private <T extends NNode> void skipNodeInternal(@Nonnull Token token)
+ throws IOException, JayceFormatException {
+
+ try {
+
+ token.skip(this);
+
+ if (nodeLevel != NodeLevel.TYPES) {
+ if (token.hasSourceInfo()) {
+ skipCurrentFileName();
+ skipCurrentLine();
+ }
+ tokenizer.readClose();
+ }
+
+ } catch (InvalidTokenException e) {
+ throw new ParseException(
+ "Unexpected token " + token.toString() + " while expecting node.", e);
+ }
+ }
+
@SuppressWarnings("unchecked")
@CheckForNull
public <T extends NNode> T readNode(@Nonnull Class<T> nodeClass) throws IOException,
@@ -214,17 +327,39 @@
tokenizer.readOpen();
NNode node;
try {
+
+ Percent statistic = null;
+ if (token == Token.METHOD_BODY) {
+ statistic = tracer.getStatistic(SKIPPED_BODY);
+ }
+
+ if (!nodeLevel.keep(token.getNodeLevel())) {
+
+ skipNodeInternal(token);
+
+ if (statistic != null) {
+ statistic.addTrue();
+ }
+ return null;
+ }
+
node = token.newNode();
+
+ if (node instanceof NDeclaredType) {
+ tracer.getStatistic(SKIPPED_TYPE_STRUCTURE).add(nodeLevel == NodeLevel.TYPES);
+ }
+
+ if (statistic != null) {
+ statistic.addFalse();
+ }
+
+
} catch (InvalidTokenException e) {
throw new ParseException(
"Unexpected token " + token.toString() + " while expecting node.", e);
}
- Percent statistic = null;
- if (token == Token.METHOD_BODY) {
- statistic = tracer.getStatistic(SKIPPED_BODY);
- } else if (node instanceof NDeclaredType) {
- tracer.getStatistic(SKIPPED_TYPE_STRUCTURE).add(nodeLevel == NodeLevel.TYPES);
- }
+
+ assert node != null;
if (!nodeClass.isAssignableFrom(node.getClass())) {
throw new JayceFormatException("Unexpected node " + node.getClass().getSimpleName() + ", "
@@ -257,17 +392,7 @@
tokenizer.readClose();
}
- if (nodeLevel.keep(token.getNodeLevel())) {
- if (statistic != null) {
- statistic.addFalse();
- }
- return (T) node;
- } else {
- if (statistic != null) {
- statistic.addTrue();
- }
- return null;
- }
+ return (T) node;
}
@Nonnull
@@ -287,38 +412,80 @@
}
+ public <T extends NNode> void skipNodes() throws IOException,
+ JayceFormatException {
+ tokenizer.readOpen();
+ int length = readInt();
+ for (int i = 0; i < length; i++) {
+ skipNode();
+ }
+ tokenizer.readClose();
+ }
+
public int readInt() throws IOException {
return tokenizer.readInt();
}
+ public void skipInt() throws IOException {
+ tokenizer.skipInt();
+ }
+
public byte readByte() throws IOException {
return tokenizer.readByte();
}
+ public void skipByte() throws IOException {
+ tokenizer.skipByte();
+ }
+
public boolean readBoolean() throws IOException {
return tokenizer.readBoolean();
}
+ public void skipBoolean() throws IOException {
+ tokenizer.skipBoolean();
+ }
+
public long readLong() throws IOException {
return tokenizer.readLong();
}
+ public void skipLong() throws IOException {
+ tokenizer.skipLong();
+ }
+
public short readShort() throws IOException {
return tokenizer.readShort();
}
+ public void skipShort() throws IOException {
+ tokenizer.skipShort();
+ }
+
public char readChar() throws IOException {
return tokenizer.readChar();
}
+ public void skipChar() throws IOException {
+ tokenizer.skipChar();
+ }
+
public float readFloat() throws IOException {
return tokenizer.readFloat();
}
+ public void skipFloat() throws IOException {
+ tokenizer.skipFloat();
+ }
+
public double readDouble() throws IOException {
return tokenizer.readDouble();
}
+ public void skipDouble() throws IOException {
+ tokenizer.skipDouble();
+ }
+
@Override
@Nonnull
public DeclaredTypeNode readType(@Nonnull NodeLevel nodeLevel) throws IOException,
diff --git a/jack/src/com/android/jack/jayce/v0004/io/JayceInternalWriterImpl.java b/jack/src/com/android/jack/jayce/v0004/io/JayceInternalWriterImpl.java
index 37df876..30291b2 100644
--- a/jack/src/com/android/jack/jayce/v0004/io/JayceInternalWriterImpl.java
+++ b/jack/src/com/android/jack/jayce/v0004/io/JayceInternalWriterImpl.java
@@ -36,6 +36,9 @@
import com.android.jack.jayce.v0004.util.MethodKindIdHelper;
import com.android.jack.jayce.v0004.util.ReceiverKindIdHelper;
import com.android.jack.jayce.v0004.util.RetentionPolicyIdHelper;
+import com.android.sched.util.file.CannotCloseException;
+import com.android.sched.util.file.CannotWriteException;
+import com.android.sched.util.location.HasLocation;
import com.android.sched.util.log.Event;
import com.android.sched.util.log.Tracer;
import com.android.sched.util.log.TracerFactory;
@@ -71,8 +74,12 @@
@Nonnull
private final List<String> currentCatchBlockList = new ArrayList<String>();
- public JayceInternalWriterImpl(@Nonnull OutputStream out) {
+ @Nonnull
+ private final HasLocation locationProvider;
+
+ public JayceInternalWriterImpl(@Nonnull OutputStream out, @Nonnull HasLocation locationProvider) {
this.out = new JayceOutputStream(out);
+ this.locationProvider = locationProvider;
}
public void writeNode(@CheckForNull NNode node) throws IOException {
@@ -348,7 +355,7 @@
}
@Override
- public void write(@Nonnull JNode jNode) throws IOException {
+ public void write(@Nonnull JNode jNode) throws CannotWriteException {
try (Event eventWriting = tracer.open(JackEventType.NNODE_WRITING)) {
ImportHelper importHelper = new ImportHelper(new NodeFactory());
NNode nNode;
@@ -356,7 +363,11 @@
nNode = importHelper.load(jNode);
}
- writeNode(nNode);
+ try {
+ writeNode(nNode);
+ } catch (IOException e) {
+ throw new CannotWriteException(locationProvider, e);
+ }
}
}
@@ -366,7 +377,11 @@
}
@Override
- public void close() throws IOException {
- out.close();
+ public void close() throws CannotCloseException {
+ try {
+ out.close();
+ } catch (IOException e) {
+ throw new CannotCloseException(locationProvider, e);
+ }
}
}
diff --git a/jack/src/com/android/jack/jayce/v0004/io/Token.java b/jack/src/com/android/jack/jayce/v0004/io/Token.java
index fe9e1ba..b24fc5a 100644
--- a/jack/src/com/android/jack/jayce/v0004/io/Token.java
+++ b/jack/src/com/android/jack/jayce/v0004/io/Token.java
@@ -16,9 +16,9 @@
package com.android.jack.jayce.v0004.io;
-import com.android.jack.jayce.JayceFormatException;
import com.android.jack.jayce.NodeLevel;
import com.android.jack.jayce.v0004.NNode;
+import com.android.jack.jayce.v0004.nodes.HasSourceInfo;
import com.android.jack.jayce.v0004.nodes.NAbsentArrayDimension;
import com.android.jack.jayce.v0004.nodes.NAddOperation;
import com.android.jack.jayce.v0004.nodes.NAlloc;
@@ -138,6 +138,8 @@
import com.android.jack.jayce.v0004.nodes.NUnlock;
import com.android.jack.jayce.v0004.nodes.NWhileStatement;
+import java.io.IOException;
+
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -169,6 +171,17 @@
public NNode newNode() {
return new NAbsentArrayDimension();
}
+
+ @Override
+ @Nonnull
+ public Class<NAbsentArrayDimension> getNNodeClass() {
+ return NAbsentArrayDimension.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAbsentArrayDimension.skipContent(reader);
+ }
},
ADD_OPERATION("+") {
@Override
@@ -176,6 +189,17 @@
public NNode newNode() {
return new NAddOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAddOperation> getNNodeClass() {
+ return NAddOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAddOperation.skipContent(reader);
+ }
},
ALLOC("alloc") {
@Override
@@ -183,6 +207,17 @@
public NNode newNode() {
return new NAlloc();
}
+
+ @Override
+ @Nonnull
+ public Class<NAlloc> getNNodeClass() {
+ return NAlloc.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAlloc.skipContent(reader);
+ }
},
AND_OPERATION("&&") {
@Override
@@ -190,6 +225,17 @@
public NNode newNode() {
return new NAndOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAndOperation> getNNodeClass() {
+ return NAndOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAndOperation.skipContent(reader);
+ }
},
ANNOTATION("annotation-literal", NodeLevel.STRUCTURE) {
@Nonnull
@@ -197,6 +243,17 @@
public NNode newNode() {
return new NAnnotation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAnnotation> getNNodeClass() {
+ return NAnnotation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAnnotation.skipContent(reader);
+ }
},
ANNOTATION_METHOD("annotation-method", NodeLevel.STRUCTURE) {
@Nonnull
@@ -204,6 +261,17 @@
public NNode newNode() {
return new NAnnotationMethod();
}
+
+ @Override
+ @Nonnull
+ public Class<NAnnotationMethod> getNNodeClass() {
+ return NAnnotationMethod.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAnnotationMethod.skipContent(reader);
+ }
},
ANNOTATION_TYPE("annotation", NodeLevel.TYPES) {
@Override
@@ -211,6 +279,17 @@
public NNode newNode() {
return new NAnnotationType();
}
+
+ @Override
+ @Nonnull
+ public Class<NAnnotationType> getNNodeClass() {
+ return NAnnotationType.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAnnotationType.skipContent(reader);
+ }
},
ARRAY_LENGTH("array-length") {
@Override
@@ -218,6 +297,17 @@
public NNode newNode() {
return new NArrayLength();
}
+
+ @Override
+ @Nonnull
+ public Class<NArrayLength> getNNodeClass() {
+ return NArrayLength.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NArrayLength.skipContent(reader);
+ }
},
ARRAY_LITERAL("array-literal", NodeLevel.STRUCTURE) {
@Nonnull
@@ -225,6 +315,17 @@
public NNode newNode() {
return new NArrayLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NArrayLiteral> getNNodeClass() {
+ return NArrayLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NArrayLiteral.skipContent(reader);
+ }
},
ARRAY_REF("array-ref") {
@Override
@@ -232,6 +333,17 @@
public NNode newNode() {
return new NArrayRef();
}
+
+ @Override
+ @Nonnull
+ public Class<NArrayRef> getNNodeClass() {
+ return NArrayRef.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NArrayRef.skipContent(reader);
+ }
},
ASG_ADD_OPERATION("+=") {
@Override
@@ -239,6 +351,17 @@
public NNode newNode() {
return new NAsgAddOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgAddOperation> getNNodeClass() {
+ return NAsgAddOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgAddOperation.skipContent(reader);
+ }
},
ASG_BIT_AND_OPERATION("&=") {
@Override
@@ -246,6 +369,17 @@
public NNode newNode() {
return new NAsgBitAndOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgBitAndOperation> getNNodeClass() {
+ return NAsgBitAndOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgBitAndOperation.skipContent(reader);
+ }
},
ASG_BIT_OR_OPERATION("|=") {
@Override
@@ -253,6 +387,17 @@
public NNode newNode() {
return new NAsgBitOrOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgBitOrOperation> getNNodeClass() {
+ return NAsgBitOrOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgBitOrOperation.skipContent(reader);
+ }
},
ASG_BIT_XOR_OPERATION("^=") {
@Override
@@ -260,6 +405,17 @@
public NNode newNode() {
return new NAsgBitXorOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgBitXorOperation> getNNodeClass() {
+ return NAsgBitXorOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgBitXorOperation.skipContent(reader);
+ }
},
ASG_CONCAT_OPERATION("asg-concat") {
@Override
@@ -267,6 +423,17 @@
public NNode newNode() {
return new NAsgConcatOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgConcatOperation> getNNodeClass() {
+ return NAsgConcatOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgConcatOperation.skipContent(reader);
+ }
},
ASG_DIV_OPERATION("/=") {
@Override
@@ -274,6 +441,17 @@
public NNode newNode() {
return new NAsgDivOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgDivOperation> getNNodeClass() {
+ return NAsgDivOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgDivOperation.skipContent(reader);
+ }
},
ASG_MOD_OPERATION("%=") {
@Override
@@ -281,6 +459,17 @@
public NNode newNode() {
return new NAsgModOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgModOperation> getNNodeClass() {
+ return NAsgModOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgModOperation.skipContent(reader);
+ }
},
ASG_MUL_OPERATION("*=") {
@Override
@@ -288,6 +477,17 @@
public NNode newNode() {
return new NAsgMulOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgMulOperation> getNNodeClass() {
+ return NAsgMulOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgMulOperation.skipContent(reader);
+ }
},
ASG_OPERATION("=") {
@Override
@@ -295,6 +495,17 @@
public NNode newNode() {
return new NAsgOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgOperation> getNNodeClass() {
+ return NAsgOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgOperation.skipContent(reader);
+ }
},
ASG_SHL_OPERATION("<<=") {
@Override
@@ -302,6 +513,17 @@
public NNode newNode() {
return new NAsgShlOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgShlOperation> getNNodeClass() {
+ return NAsgShlOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgShlOperation.skipContent(reader);
+ }
},
ASG_SHR_OPERATION(">>=") {
@Override
@@ -309,6 +531,17 @@
public NNode newNode() {
return new NAsgShrOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgShrOperation> getNNodeClass() {
+ return NAsgShrOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgShrOperation.skipContent(reader);
+ }
},
ASG_SHRU_OPERATION(">>>=") {
@Override
@@ -316,6 +549,17 @@
public NNode newNode() {
return new NAsgShruOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgShruOperation> getNNodeClass() {
+ return NAsgShruOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgShruOperation.skipContent(reader);
+ }
},
ASG_SUB_OPERATION("-=") {
@Override
@@ -323,6 +567,17 @@
public NNode newNode() {
return new NAsgSubOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NAsgSubOperation> getNNodeClass() {
+ return NAsgSubOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAsgSubOperation.skipContent(reader);
+ }
},
ASSERT_STATEMENT("assert") {
@Override
@@ -330,6 +585,17 @@
public NNode newNode() {
return new NAssertStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NAssertStatement> getNNodeClass() {
+ return NAssertStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NAssertStatement.skipContent(reader);
+ }
},
BIT_AND_OPERATION("&") {
@Override
@@ -337,6 +603,17 @@
public NNode newNode() {
return new NBitAndOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NBitAndOperation> getNNodeClass() {
+ return NBitAndOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NBitAndOperation.skipContent(reader);
+ }
},
BIT_OR_OPERATION("|") {
@Override
@@ -344,6 +621,17 @@
public NNode newNode() {
return new NBitOrOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NBitOrOperation> getNNodeClass() {
+ return NBitOrOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NBitOrOperation.skipContent(reader);
+ }
},
BIT_XOR_OPERATION("^") {
@Override
@@ -351,6 +639,17 @@
public NNode newNode() {
return new NBitXorOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NBitXorOperation> getNNodeClass() {
+ return NBitXorOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NBitXorOperation.skipContent(reader);
+ }
},
BLOCK("block") {
@Nonnull
@@ -358,6 +657,17 @@
public NNode newNode() {
return new NBlock();
}
+
+ @Override
+ @Nonnull
+ public Class<NBlock> getNNodeClass() {
+ return NBlock.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NBlock.skipContent(reader);
+ }
},
BOOLEAN_LITERAL("boolean", NodeLevel.STRUCTURE) {
@Nonnull
@@ -365,6 +675,17 @@
public NNode newNode() {
return new NBooleanLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NBooleanLiteral> getNNodeClass() {
+ return NBooleanLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NBooleanLiteral.skipContent(reader);
+ }
},
BREAK_STATEMENT("break") {
@Nonnull
@@ -372,6 +693,17 @@
public NNode newNode() {
return new NBreakStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NBreakStatement> getNNodeClass() {
+ return NBreakStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NBreakStatement.skipContent(reader);
+ }
},
BYTE_LITERAL("byte", NodeLevel.STRUCTURE) {
@Nonnull
@@ -379,6 +711,17 @@
public NNode newNode() {
return new NByteLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NByteLiteral> getNNodeClass() {
+ return NByteLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NByteLiteral.skipContent(reader);
+ }
},
CASE_STATEMENT("case") {
@Override
@@ -386,6 +729,17 @@
public NNode newNode() {
return new NCaseStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NCaseStatement> getNNodeClass() {
+ return NCaseStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NCaseStatement.skipContent(reader);
+ }
},
CATCH_BLOCK("catch") {
@Nonnull
@@ -393,6 +747,17 @@
public NNode newNode() {
return new NCatchBlock();
}
+
+ @Override
+ @Nonnull
+ public Class<NCatchBlock> getNNodeClass() {
+ return NCatchBlock.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NCatchBlock.skipContent(reader);
+ }
},
CHAR_LITERAL("char", NodeLevel.STRUCTURE) {
@Nonnull
@@ -400,6 +765,17 @@
public NNode newNode() {
return new NCharLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NCharLiteral> getNNodeClass() {
+ return NCharLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NCharLiteral.skipContent(reader);
+ }
},
CLASS("class", NodeLevel.TYPES) {
@Nonnull
@@ -407,6 +783,17 @@
public NNode newNode() {
return new NClassType();
}
+
+ @Override
+ @Nonnull
+ public Class<NClassType> getNNodeClass() {
+ return NClassType.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NClassType.skipContent(reader);
+ }
},
CLASS_LITERAL("class-literal", NodeLevel.STRUCTURE) {
@Nonnull
@@ -414,6 +801,17 @@
public NNode newNode() {
return new NClassLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NClassLiteral> getNNodeClass() {
+ return NClassLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NClassLiteral.skipContent(reader);
+ }
},
CONCAT_OPERATION("concat") {
@Override
@@ -421,6 +819,17 @@
public NNode newNode() {
return new NConcatOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NConcatOperation> getNNodeClass() {
+ return NConcatOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NConcatOperation.skipContent(reader);
+ }
},
CONDITIONAL_EXPRESSION ("?") {
@Nonnull
@@ -428,6 +837,17 @@
public NNode newNode() {
return new NConditionalExpression();
}
+
+ @Override
+ @Nonnull
+ public Class<NConditionalExpression> getNNodeClass() {
+ return NConditionalExpression.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NConditionalExpression.skipContent(reader);
+ }
},
CONSTRUCTOR ("constructor", NodeLevel.STRUCTURE) {
@Nonnull
@@ -435,6 +855,17 @@
public NNode newNode() {
return new NConstructor();
}
+
+ @Override
+ @Nonnull
+ public Class<NConstructor> getNNodeClass() {
+ return NConstructor.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NConstructor.skipContent(reader);
+ }
},
CONTAINER_ANNOTATION("container-annotation", NodeLevel.STRUCTURE) {
@Nonnull
@@ -442,6 +873,17 @@
public NNode newNode() {
return new NContainerAnnotation();
}
+
+ @Override
+ @Nonnull
+ public Class<NContainerAnnotation> getNNodeClass() {
+ return NContainerAnnotation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NContainerAnnotation.skipContent(reader);
+ }
},
CONTINUE_STATEMENT("continue") {
@Nonnull
@@ -449,6 +891,17 @@
public NNode newNode() {
return new NContinueStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NContinueStatement> getNNodeClass() {
+ return NContinueStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NContinueStatement.skipContent(reader);
+ }
},
DEBUG_VARIABLE_INFORMATION("debug-var", NodeLevel.STRUCTURE) {
@Nonnull
@@ -456,6 +909,17 @@
public NNode newNode() {
return new NDebugVariableInfo();
}
+
+ @Override
+ @Nonnull
+ public Class<NDebugVariableInfo> getNNodeClass() {
+ return NDebugVariableInfo.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NDebugVariableInfo.skipContent(reader);
+ }
},
DIV_OPERATION("/") {
@Nonnull
@@ -463,6 +927,17 @@
public NNode newNode() {
return new NDivOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NDivOperation> getNNodeClass() {
+ return NDivOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NDivOperation.skipContent(reader);
+ }
},
DO_STATEMENT("do") {
@Nonnull
@@ -470,6 +945,17 @@
public NNode newNode() {
return new NDoStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NDoStatement> getNNodeClass() {
+ return NDoStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NDoStatement.skipContent(reader);
+ }
},
DOUBLE_LITERAL("double", NodeLevel.STRUCTURE) {
@Nonnull
@@ -477,6 +963,17 @@
public NNode newNode() {
return new NDoubleLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NDoubleLiteral> getNNodeClass() {
+ return NDoubleLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NDoubleLiteral.skipContent(reader);
+ }
},
DYNAMIC_CAST_OPERATION("cast") {
@Override
@@ -484,6 +981,17 @@
public NNode newNode() {
return new NDynamicCastOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NDynamicCastOperation> getNNodeClass() {
+ return NDynamicCastOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NDynamicCastOperation.skipContent(reader);
+ }
},
ENUM("enum", NodeLevel.TYPES) {
@Nonnull
@@ -491,6 +999,17 @@
public NNode newNode() {
return new NEnumType();
}
+
+ @Override
+ @Nonnull
+ public Class<NEnumType> getNNodeClass() {
+ return NEnumType.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NEnumType.skipContent(reader);
+ }
},
ENUM_FIELD("enum-field", NodeLevel.STRUCTURE) {
@Nonnull
@@ -498,6 +1017,17 @@
public NNode newNode() {
return new NEnumField();
}
+
+ @Override
+ @Nonnull
+ public Class<NEnumField> getNNodeClass() {
+ return NEnumField.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NEnumType.skipContent(reader);
+ }
},
ENUM_LITERAL("enum-literal", NodeLevel.STRUCTURE) {
@Nonnull
@@ -505,6 +1035,17 @@
public NNode newNode() {
return new NEnumLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NEnumLiteral> getNNodeClass() {
+ return NEnumLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NEnumLiteral.skipContent(reader);
+ }
},
EQ_OPERATION("==") {
@Nonnull
@@ -512,6 +1053,17 @@
public NNode newNode() {
return new NEqOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NEqOperation> getNNodeClass() {
+ return NEqOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NEqOperation.skipContent(reader);
+ }
},
EXCEPTION_RUNTIME_VALUE("ex-runtime-value") {
@Nonnull
@@ -519,6 +1071,17 @@
public NNode newNode() {
return new NExceptionRuntimeValue();
}
+
+ @Override
+ @Nonnull
+ public Class<NExceptionRuntimeValue> getNNodeClass() {
+ return NExceptionRuntimeValue.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NExceptionRuntimeValue.skipContent(reader);
+ }
},
EXPRESSION_STATEMENT("expression-statement") {
@Nonnull
@@ -526,6 +1089,17 @@
public NNode newNode() {
return new NExpressionStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NExpressionStatement> getNNodeClass() {
+ return NExpressionStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NExpressionStatement.skipContent(reader);
+ }
},
FIELD("field", NodeLevel.STRUCTURE) {
@Nonnull
@@ -533,6 +1107,17 @@
public NNode newNode() {
return new NField();
}
+
+ @Override
+ @Nonnull
+ public Class<NField> getNNodeClass() {
+ return NField.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NField.skipContent(reader);
+ }
},
FIELD_INITIALIZER("field-intializer") {
@Nonnull
@@ -540,6 +1125,17 @@
public NNode newNode() {
return new NFieldInitializer();
}
+
+ @Override
+ @Nonnull
+ public Class<NFieldInitializer> getNNodeClass() {
+ return NFieldInitializer.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) {
+ NFieldInitializer.skipContent(reader);
+ }
},
FIELD_REF("field-ref") {
@Nonnull
@@ -547,6 +1143,17 @@
public NNode newNode() {
return new NFieldRef();
}
+
+ @Override
+ @Nonnull
+ public Class<NFieldRef> getNNodeClass() {
+ return NFieldRef.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NFieldRef.skipContent(reader);
+ }
},
FLOAT_LITERAL("float", NodeLevel.STRUCTURE) {
@Nonnull
@@ -554,6 +1161,17 @@
public NNode newNode() {
return new NFloatLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NFloatLiteral> getNNodeClass() {
+ return NFloatLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NFloatLiteral.skipContent(reader);
+ }
},
FOR_STATEMENT("for") {
@Nonnull
@@ -561,6 +1179,17 @@
public NNode newNode() {
return new NForStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NForStatement> getNNodeClass() {
+ return NForStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NForStatement.skipContent(reader);
+ }
},
GENERIC_SIGNATURE("generic-signature", NodeLevel.TYPES) {
@Override
@@ -568,6 +1197,17 @@
public NNode newNode() {
return new NGenericSignature();
}
+
+ @Override
+ @Nonnull
+ public Class<NGenericSignature> getNNodeClass() {
+ return NGenericSignature.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NGenericSignature.skipContent(reader);
+ }
},
GOTO("goto") {
@Nonnull
@@ -575,6 +1215,17 @@
public NNode newNode() {
return new NGoto();
}
+
+ @Override
+ @Nonnull
+ public Class<NGoto> getNNodeClass() {
+ return NGoto.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NGoto.skipContent(reader);
+ }
},
GTE_OPERATION(">=") {
@Nonnull
@@ -582,6 +1233,17 @@
public NNode newNode() {
return new NGteOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NGteOperation> getNNodeClass() {
+ return NGteOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NGteOperation.skipContent(reader);
+ }
},
GT_OPERATION(">") {
@Nonnull
@@ -589,6 +1251,17 @@
public NNode newNode() {
return new NGtOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NGtOperation> getNNodeClass() {
+ return NGtOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NGtOperation.skipContent(reader);
+ }
},
IF_STATEMENT("if") {
@Override
@@ -596,6 +1269,17 @@
public NNode newNode() {
return new NIfStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NIfStatement> getNNodeClass() {
+ return NIfStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NIfStatement.skipContent(reader);
+ }
},
INSTANCE_OF("instanceof") {
@Override
@@ -603,6 +1287,17 @@
public NNode newNode() {
return new NInstanceOf();
}
+
+ @Override
+ @Nonnull
+ public Class<NInstanceOf> getNNodeClass() {
+ return NInstanceOf.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NInstanceOf.skipContent(reader);
+ }
},
INT_LITERAL("int", NodeLevel.STRUCTURE) {
@Nonnull
@@ -610,6 +1305,17 @@
public NNode newNode() {
return new NIntLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NIntLiteral> getNNodeClass() {
+ return NIntLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NIntLiteral.skipContent(reader);
+ }
},
INTERFACE("interface", NodeLevel.TYPES) {
@Nonnull
@@ -617,6 +1323,17 @@
public NNode newNode() {
return new NInterfaceType();
}
+
+ @Override
+ @Nonnull
+ public Class<NInterfaceType> getNNodeClass() {
+ return NInterfaceType.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NInterfaceType.skipContent(reader);
+ }
},
LABELED_STATEMENT("label") {
@Nonnull
@@ -624,6 +1341,17 @@
public NNode newNode() {
return new NLabeledStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NLabeledStatement> getNNodeClass() {
+ return NLabeledStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLabeledStatement.skipContent(reader);
+ }
},
LAMBDA("lambda") {
@Nonnull
@@ -631,6 +1359,17 @@
public NNode newNode() {
return new NLambda();
}
+
+ @Override
+ @Nonnull
+ public Class<NLambda> getNNodeClass() {
+ return NLambda.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLambda.skipContent(reader);
+ }
},
LAMBDA_FROM_JILL("lambda-from-jill") {
@Nonnull
@@ -638,6 +1377,17 @@
public NNode newNode() {
return new NLambdaFromJill();
}
+
+ @Override
+ @Nonnull
+ public Class<NLambdaFromJill> getNNodeClass() {
+ return NLambdaFromJill.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) {
+ NLambdaFromJill.skipContent(reader);
+ }
},
LOCAL("local") {
@Nonnull
@@ -645,6 +1395,18 @@
public NNode newNode() {
return new NLocal();
}
+
+ @Override
+ @Nonnull
+ public Class<NLocal> getNNodeClass() {
+ return NLocal.class;
+ }
+
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLocal.skipContent(reader);
+ }
},
LOCAL_REF("local-ref") {
@Nonnull
@@ -652,6 +1414,17 @@
public NNode newNode() {
return new NLocalRef();
}
+
+ @Override
+ @Nonnull
+ public Class<NLocalRef> getNNodeClass() {
+ return NLocalRef.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLocalRef.skipContent(reader);
+ }
},
LOCK("lock") {
@Nonnull
@@ -659,6 +1432,17 @@
public NNode newNode() {
return new NLock();
}
+
+ @Override
+ @Nonnull
+ public Class<NLock> getNNodeClass() {
+ return NLock.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLock.skipContent(reader);
+ }
},
LONG_LITERAL("long", NodeLevel.STRUCTURE) {
@Nonnull
@@ -666,6 +1450,17 @@
public NNode newNode() {
return new NLongLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NLongLiteral> getNNodeClass() {
+ return NLongLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLongLiteral.skipContent(reader);
+ }
},
LTE_OPERATION("<=") {
@Nonnull
@@ -673,6 +1468,18 @@
public NNode newNode() {
return new NLteOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NLteOperation> getNNodeClass() {
+ return NLteOperation.class;
+ }
+
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLteOperation.skipContent(reader);
+ }
},
LT_OPERATION("<") {
@Nonnull
@@ -680,6 +1487,17 @@
public NNode newNode() {
return new NLtOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NLtOperation> getNNodeClass() {
+ return NLtOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NLtOperation.skipContent(reader);
+ }
},
METHOD("method", NodeLevel.STRUCTURE) {
@Nonnull
@@ -687,6 +1505,17 @@
public NNode newNode() {
return new NMethod();
}
+
+ @Override
+ @Nonnull
+ public Class<NMethod> getNNodeClass() {
+ return NMethod.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NMethod.skipContent(reader);
+ }
},
METHOD_BODY("body") {
@Nonnull
@@ -694,6 +1523,17 @@
public NNode newNode() {
return new NMethodBody();
}
+
+ @Override
+ @Nonnull
+ public Class<NMethodBody> getNNodeClass() {
+ return NMethodBody.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NMethodBody.skipContent(reader);
+ }
},
METHOD_CALL("call") {
@Nonnull
@@ -701,6 +1541,17 @@
public NNode newNode() {
return new NMethodCall();
}
+
+ @Override
+ @Nonnull
+ public Class<NMethodCall> getNNodeClass() {
+ return NMethodCall.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NMethodCall.skipContent(reader);
+ }
},
METHODID_WITH_RETURN_TYPE("method-id-with-return-type", NodeLevel.STRUCTURE) {
@Nonnull
@@ -708,6 +1559,17 @@
public NNode newNode() {
return new NMethodId();
}
+
+ @Override
+ @Nonnull
+ public Class<NMethodId> getNNodeClass() {
+ return NMethodId.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NMethodId.skipContent(reader);
+ }
},
METHOD_LITERAL("method-literal", NodeLevel.STRUCTURE) {
@Nonnull
@@ -715,6 +1577,17 @@
public NNode newNode() {
return new NMethodLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NMethodLiteral> getNNodeClass() {
+ return NMethodLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NMethodLiteral.skipContent(reader);
+ }
},
MOD_OPERATION("%") {
@Nonnull
@@ -722,6 +1595,17 @@
public NNode newNode() {
return new NModOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NModOperation> getNNodeClass() {
+ return NModOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NModOperation.skipContent(reader);
+ }
},
MUL_OPERATION("*") {
@Nonnull
@@ -729,6 +1613,17 @@
public NNode newNode() {
return new NMulOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NMulOperation> getNNodeClass() {
+ return NMulOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NMulOperation.skipContent(reader);
+ }
},
MULTI_EXPRESSION("multi-expression") {
@Nonnull
@@ -736,6 +1631,17 @@
public NNode newNode() {
return new NMultiExpression();
}
+
+ @Override
+ @Nonnull
+ public Class<NMultiExpression> getNNodeClass() {
+ return NMultiExpression.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NMultiExpression.skipContent(reader);
+ }
},
NAME_VALUE_PAIR("name-value-pair", NodeLevel.STRUCTURE) {
@Nonnull
@@ -743,6 +1649,17 @@
public NNode newNode() {
return new NNameValuePair();
}
+
+ @Override
+ @Nonnull
+ public Class<NNameValuePair> getNNodeClass() {
+ return NNameValuePair.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NNameValuePair.skipContent(reader);
+ }
},
NEQ_OPERATION("!=") {
@Nonnull
@@ -750,6 +1667,17 @@
public NNode newNode() {
return new NNeqOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NNeqOperation> getNNodeClass() {
+ return NNeqOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NNeqOperation.skipContent(reader);
+ }
},
NATIVE_METHOD_BODY("native-body") {
@Nonnull
@@ -757,6 +1685,17 @@
public NNode newNode() {
return new NNativeMethodBody();
}
+
+ @Override
+ @Nonnull
+ public Class<NNativeMethodBody> getNNodeClass() {
+ return NNativeMethodBody.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) {
+ NNativeMethodBody.skipContent(reader);
+ }
},
NEW_ARRAY("new-array") {
@Nonnull
@@ -764,6 +1703,17 @@
public NNode newNode() {
return new NNewArray();
}
+
+ @Override
+ @Nonnull
+ public Class<NNewArray> getNNodeClass() {
+ return NNewArray.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NNewArray.skipContent(reader);
+ }
},
NEW_INSTANCE("new") {
@Nonnull
@@ -771,6 +1721,17 @@
public NNode newNode() {
return new NNewInstance();
}
+
+ @Override
+ @Nonnull
+ public Class<NNewInstance> getNNodeClass() {
+ return NNewInstance.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NNewInstance.skipContent(reader);
+ }
},
NULL_LITERAL("null-literal", NodeLevel.STRUCTURE) {
@Nonnull
@@ -778,6 +1739,17 @@
public NNode newNode() {
return new NNullLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NNullLiteral> getNNodeClass() {
+ return NNullLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) {
+ NNullLiteral.skipContent(reader);
+ }
},
OR_OPERATION("||") {
@Override
@@ -785,6 +1757,17 @@
public NNode newNode() {
return new NOrOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NOrOperation> getNNodeClass() {
+ return NOrOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NOrOperation.skipContent(reader);
+ }
},
ORIGIN_DIGEST("origin-digest", NodeLevel.STRUCTURE) {
@Override
@@ -792,6 +1775,17 @@
public NNode newNode() {
return new NOriginDigest();
}
+
+ @Override
+ @Nonnull
+ public Class<NOriginDigest> getNNodeClass() {
+ return NOriginDigest.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NOriginDigest.skipContent(reader);
+ }
},
PARAMETER("parameter", NodeLevel.STRUCTURE) {
@Nonnull
@@ -799,6 +1793,17 @@
public NNode newNode() {
return new NParameter();
}
+
+ @Override
+ @Nonnull
+ public Class<NParameter> getNNodeClass() {
+ return NParameter.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NParameter.skipContent(reader);
+ }
},
PARAMETER_REF("parameter-ref") {
@Nonnull
@@ -806,6 +1811,17 @@
public NNode newNode() {
return new NParameterRef();
}
+
+ @Override
+ @Nonnull
+ public Class<NParameterRef> getNNodeClass() {
+ return NParameterRef.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NParameterRef.skipContent(reader);
+ }
},
POLYMORPHIC_CALL("polymorphic-call") {
@Nonnull
@@ -813,6 +1829,17 @@
public NNode newNode() {
return new NPolymorphicCall();
}
+
+ @Override
+ @Nonnull
+ public Class<NPolymorphicCall> getNNodeClass() {
+ return NPolymorphicCall.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPolymorphicCall.skipContent(reader);
+ }
},
POSTFIX_DEC_OPERATION("postfix-dec") {
@Nonnull
@@ -820,6 +1847,17 @@
public NNode newNode() {
return new NPostfixDecOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NPostfixDecOperation> getNNodeClass() {
+ return NPostfixDecOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPostfixDecOperation.skipContent(reader);
+ }
},
POSTFIX_INC_OPERATION("postfix-inc") {
@Nonnull
@@ -827,6 +1865,17 @@
public NNode newNode() {
return new NPostfixIncOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NPostfixIncOperation> getNNodeClass() {
+ return NPostfixIncOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPostfixIncOperation.skipContent(reader);
+ }
},
PREFIX_BIT_NOT_OPERATION("~") {
@Nonnull
@@ -834,6 +1883,17 @@
public NNode newNode() {
return new NPrefixBitNotOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NPrefixBitNotOperation> getNNodeClass() {
+ return NPrefixBitNotOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPrefixBitNotOperation.skipContent(reader);
+ }
},
PREFIX_DEC_OPERATION("prefix-dec") {
@Nonnull
@@ -841,6 +1901,17 @@
public NNode newNode() {
return new NPrefixDecOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NPrefixDecOperation> getNNodeClass() {
+ return NPrefixDecOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPrefixDecOperation.skipContent(reader);
+ }
},
PREFIX_INC_OPERATION("prefix-inc") {
@Nonnull
@@ -848,6 +1919,17 @@
public NNode newNode() {
return new NPrefixIncOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NPrefixIncOperation> getNNodeClass() {
+ return NPrefixIncOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPrefixIncOperation.skipContent(reader);
+ }
},
PREFIX_NEG_OPERATION("neg") {
@Nonnull
@@ -855,6 +1937,17 @@
public NNode newNode() {
return new NPrefixNegOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NPrefixNegOperation> getNNodeClass() {
+ return NPrefixNegOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPrefixNegOperation.skipContent(reader);
+ }
},
PREFIX_NOT_OPERATION("not") {
@Nonnull
@@ -862,20 +1955,36 @@
public NNode newNode() {
return new NPrefixNotOperation();
}
- },
- RESERVED("reserved") {
- @Nonnull
+
@Override
- public NNode newNode() {
- throw new JayceFormatException("Unexpected node '" + toString() + "'");
+ @Nonnull
+ public Class<NPrefixNotOperation> getNNodeClass() {
+ return NPrefixNotOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NPrefixNotOperation.skipContent(reader);
}
},
+ RESERVED("reserved"),
REINTERPRETCAST_OPERATION("reinterpret-cast") {
@Override
@Nonnull
public NNode newNode() {
return new NReinterpretCastOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NReinterpretCastOperation> getNNodeClass() {
+ return NReinterpretCastOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NReinterpretCastOperation.skipContent(reader);
+ }
},
RETURN_STATEMENT("return") {
@Nonnull
@@ -883,6 +1992,17 @@
public NNode newNode() {
return new NReturnStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NReturnStatement> getNNodeClass() {
+ return NReturnStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NReturnStatement.skipContent(reader);
+ }
},
SHL_OPERATION("<<") {
@Nonnull
@@ -890,6 +2010,17 @@
public NNode newNode() {
return new NShlOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NShlOperation> getNNodeClass() {
+ return NShlOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NShlOperation.skipContent(reader);
+ }
},
SHORT_LITERAL("short", NodeLevel.STRUCTURE) {
@Nonnull
@@ -897,6 +2028,17 @@
public NNode newNode() {
return new NShortLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NShortLiteral> getNNodeClass() {
+ return NShortLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NShortLiteral.skipContent(reader);
+ }
},
SHR_OPERATION(">>") {
@Nonnull
@@ -904,6 +2046,17 @@
public NNode newNode() {
return new NShrOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NShrOperation> getNNodeClass() {
+ return NShrOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NShrOperation.skipContent(reader);
+ }
},
SHRU_OPERATION(">>>") {
@Nonnull
@@ -911,6 +2064,17 @@
public NNode newNode() {
return new NShruOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NShruOperation> getNNodeClass() {
+ return NShruOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NShruOperation.skipContent(reader);
+ }
},
SIMPLE_NAME("simple-name", NodeLevel.TYPES) {
@Override
@@ -918,6 +2082,17 @@
public NNode newNode() {
return new NSimpleName();
}
+
+ @Override
+ @Nonnull
+ public Class<NSimpleName> getNNodeClass() {
+ return NSimpleName.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NSimpleName.skipContent(reader);
+ }
},
SUB_OPERATION("-") {
@Nonnull
@@ -925,6 +2100,17 @@
public NNode newNode() {
return new NSubOperation();
}
+
+ @Override
+ @Nonnull
+ public Class<NSubOperation> getNNodeClass() {
+ return NSubOperation.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NSubOperation.skipContent(reader);
+ }
},
STRING_LITERAL("string", NodeLevel.STRUCTURE) {
@Nonnull
@@ -932,6 +2118,18 @@
public NNode newNode() {
return new NStringLiteral();
}
+
+ @Override
+ @Nonnull
+ public Class<NStringLiteral> getNNodeClass() {
+ return NStringLiteral.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NStringLiteral.skipContent(reader);
+ }
+
},
SWITCH_STATEMENT("switch") {
@Nonnull
@@ -939,6 +2137,17 @@
public NNode newNode() {
return new NSwitchStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NSwitchStatement> getNNodeClass() {
+ return NSwitchStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NSwitchStatement.skipContent(reader);
+ }
},
SYNCHRONIZED_BLOCK("synchronized-block") {
@Nonnull
@@ -946,6 +2155,17 @@
public NNode newNode() {
return new NSynchronizedBlock();
}
+
+ @Override
+ @Nonnull
+ public Class<NSynchronizedBlock> getNNodeClass() {
+ return NSynchronizedBlock.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NSynchronizedBlock.skipContent(reader);
+ }
},
THIS_REF("this") {
@Nonnull
@@ -953,13 +2173,35 @@
public NNode newNode() {
return new NThisRef();
}
+
+ @Override
+ @Nonnull
+ public Class<NThisRef> getNNodeClass() {
+ return NThisRef.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NThisRef.skipContent(reader);
+ }
},
- THIS_REF_TYPE_INFO("this-type-info") {
+ THIS_REF_TYPE_INFO("this-type-info", NodeLevel.STRUCTURE) {
@Nonnull
@Override
public NNode newNode() {
return new NThisRefTypeInfo();
}
+
+ @Override
+ @Nonnull
+ public Class<NThisRefTypeInfo> getNNodeClass() {
+ return NThisRefTypeInfo.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NThisRefTypeInfo.skipContent(reader);
+ }
},
THROW_STATEMENT("throw") {
@Nonnull
@@ -967,6 +2209,17 @@
public NNode newNode() {
return new NThrowStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NThrowStatement> getNNodeClass() {
+ return NThrowStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NThrowStatement.skipContent(reader);
+ }
},
THROWN_EXCEPTION("thrown-exception", NodeLevel.STRUCTURE) {
@Override
@@ -974,6 +2227,17 @@
public NNode newNode() {
return new NThrownExceptionMarker();
}
+
+ @Override
+ @Nonnull
+ public Class<NThrownExceptionMarker> getNNodeClass() {
+ return NThrownExceptionMarker.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NThrownExceptionMarker.skipContent(reader);
+ }
},
TRY_STATEMENT("try") {
@Nonnull
@@ -981,6 +2245,17 @@
public NNode newNode() {
return new NTryStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NTryStatement> getNNodeClass() {
+ return NTryStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NTryStatement.skipContent(reader);
+ }
},
UNLOCK("unlock") {
@Nonnull
@@ -988,6 +2263,17 @@
public NNode newNode() {
return new NUnlock();
}
+
+ @Override
+ @Nonnull
+ public Class<NUnlock> getNNodeClass() {
+ return NUnlock.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NUnlock.skipContent(reader);
+ }
},
WHILE_STATEMENT("while") {
@Nonnull
@@ -995,6 +2281,17 @@
public NNode newNode() {
return new NWhileStatement();
}
+
+ @Override
+ @Nonnull
+ public Class<NWhileStatement> getNNodeClass() {
+ return NWhileStatement.class;
+ }
+
+ @Override
+ public void skip(@Nonnull JayceInternalReaderImpl reader) throws IOException {
+ NWhileStatement.skipContent(reader);
+ }
},
;
@@ -1004,12 +2301,21 @@
@CheckForNull
private String label;
+ private final boolean hasSourceInfo;
+
private Token(@CheckForNull String text) {
this(text, NodeLevel.FULL);
}
private Token(@CheckForNull String text, NodeLevel nodeLevel) {
this.label = text;
this.nodeLevel = nodeLevel;
+ boolean tmpHasSourceInfo;
+ try {
+ tmpHasSourceInfo = HasSourceInfo.class.isAssignableFrom(getNNodeClass());
+ } catch (InvalidTokenException e) {
+ tmpHasSourceInfo = false;
+ }
+ hasSourceInfo = tmpHasSourceInfo;
}
public int getId() {
@@ -1023,6 +2329,21 @@
@Nonnull
public NNode newNode() throws InvalidTokenException {
+ throw new InvalidTokenException("No node corresponding to token " + this.toString());
+ }
+
+ @Nonnull
+ public Class<? extends NNode> getNNodeClass() throws InvalidTokenException {
+ throw new InvalidTokenException("No node corresponding to token " + this.toString());
+ }
+
+ public final boolean hasSourceInfo() {
+ return hasSourceInfo;
+ }
+
+ @SuppressWarnings("unused")
+ public void skip(@Nonnull JayceInternalReaderImpl reader)
+ throws InvalidTokenException, IOException {
throw new InvalidTokenException("No node coresponding to token " + this.toString());
}
diff --git a/jack/src/com/android/jack/jayce/v0004/io/Tokenizer.java b/jack/src/com/android/jack/jayce/v0004/io/Tokenizer.java
index 05e170b..66a510b 100644
--- a/jack/src/com/android/jack/jayce/v0004/io/Tokenizer.java
+++ b/jack/src/com/android/jack/jayce/v0004/io/Tokenizer.java
@@ -72,50 +72,97 @@
return in.readInt();
}
+ public void skipInt() throws IOException {
+ currentTokenId = Token.NUMBER_VALUE;
+ in.skipInt();
+ }
+
public byte readByte() throws IOException {
currentTokenId = Token.NUMBER_VALUE;
return in.readByte();
}
+ public void skipByte() throws IOException {
+ currentTokenId = Token.NUMBER_VALUE;
+ in.skipByte();
+ }
+
public boolean readBoolean() throws IOException {
return in.readBoolean();
}
+ public void skipBoolean() throws IOException {
+ in.skipBoolean();
+ }
+
public long readLong() throws IOException {
currentTokenId = Token.NUMBER_VALUE;
return in.readLong();
}
+ public void skipLong() throws IOException {
+ currentTokenId = Token.NUMBER_VALUE;
+ in.skipLong();
+ }
+
public short readShort() throws IOException {
currentTokenId = Token.NUMBER_VALUE;
return in.readShort();
}
+ public void skipShort() throws IOException {
+ currentTokenId = Token.NUMBER_VALUE;
+ in.skipShort();
+ }
+
public char readChar() throws IOException {
currentTokenId = Token.NUMBER_VALUE;
return in.readChar();
}
+ public void skipChar() throws IOException {
+ currentTokenId = Token.NUMBER_VALUE;
+ in.skipChar();
+ }
+
public float readFloat() throws IOException {
currentTokenId = Token.NUMBER_VALUE;
return Float.intBitsToFloat(readInt());
}
+ public void skipFloat() throws IOException {
+ currentTokenId = Token.NUMBER_VALUE;
+ in.skipInt();
+ }
+
public double readDouble() throws IOException {
currentTokenId = Token.NUMBER_VALUE;
return Double.longBitsToDouble(readLong());
}
+ public void skipDouble() throws IOException {
+ currentTokenId = Token.NUMBER_VALUE;
+ in.skipLong();
+ }
+
@CheckForNull
public String readString() throws IOException {
return in.readUTF();
}
+ public void skipString() throws IOException {
+ in.skipUTF();
+ }
+
@CheckForNull
public byte[] readBuffer() throws IOException {
return in.readBuffer();
}
+ public void skipBuffer() throws IOException {
+ in.skipBuffer();
+ }
+
private void readToken(@Nonnull Token expected) throws IOException {
next();
if (currentTokenId != expected) {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAbsentArrayDimension.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAbsentArrayDimension.java
index 7db047c..d7694cb 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAbsentArrayDimension.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAbsentArrayDimension.java
@@ -58,6 +58,10 @@
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
}
+ @SuppressWarnings("unused")
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAddOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAddOperation.java
index 425bba3..b030c0f 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAddOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAddOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAlloc.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAlloc.java
index 012aa0f..4c4edfd 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAlloc.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAlloc.java
@@ -67,6 +67,10 @@
instanceType = in.readId();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAndOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAndOperation.java
index ea30700..85bf84e 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAndOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotation.java
index b1c6328..aef2425 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotation.java
@@ -101,6 +101,13 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipRetentionPolicyEnum();
+ in.skipId();
+ in.skipNodes();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationMethod.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationMethod.java
index 1fd3113..1a033ef 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationMethod.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationMethod.java
@@ -123,6 +123,15 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipId();
+ in.skipInt();
+ in.skipNodes();
+ in.skipNode();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationType.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationType.java
index 116bed3..bed6f8c 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationType.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAnnotationType.java
@@ -152,6 +152,22 @@
}
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ NodeLevel level = in.getNodeLevel();
+ in.skipRetentionPolicyEnum();
+ in.skipInt();
+ in.skipId();
+ if (level != NodeLevel.TYPES) {
+ in.skipIds();
+ in.skipId();
+ in.skipIds();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ }
+ }
+
@Nonnull
@Override
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLength.java b/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLength.java
index dc54cb6..223b9c9 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLength.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLength.java
@@ -70,6 +70,10 @@
instance = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLiteral.java
index f501add..3a72b9c 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NArrayLiteral.java
@@ -74,6 +74,10 @@
values = in.readNodes(NLiteral.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NArrayRef.java b/jack/src/com/android/jack/jayce/v0004/nodes/NArrayRef.java
index 31183f6..3388d63 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NArrayRef.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NArrayRef.java
@@ -78,6 +78,11 @@
index = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgAddOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgAddOperation.java
index 09def26..23cc134 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgAddOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgAddOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitAndOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitAndOperation.java
index de764be..8859a8b 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitAndOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitOrOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitOrOperation.java
index fc29f33..ae27f55 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitOrOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitXorOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitXorOperation.java
index 696cee5..6af8985 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitXorOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgBitXorOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgConcatOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgConcatOperation.java
index d62176f..ebf8e24 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgConcatOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgConcatOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgDivOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgDivOperation.java
index b0bc219..22fbcaf 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgDivOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgDivOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgModOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgModOperation.java
index 14431fd..f980005 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgModOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgModOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgMulOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgMulOperation.java
index 5301fea..f6cbbb2 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgMulOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgMulOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgOperation.java
index af72b4b..e5f1b12 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShlOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShlOperation.java
index 9ae3860..dee5fb8 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShlOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShlOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShrOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShrOperation.java
index 317ce2b..b3f7eaa 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShrOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShruOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShruOperation.java
index 7185899..bba5720 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShruOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgShruOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgSubOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgSubOperation.java
index 29abd39..e309a62 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAsgSubOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAsgSubOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NAssertStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NAssertStatement.java
index 6be2deb..156943d 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NAssertStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NAssertStatement.java
@@ -92,6 +92,11 @@
arg = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.readNode(NExpression.class);
+ in.readNode(NExpression.class);
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NBitAndOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NBitAndOperation.java
index f863a65..d440903 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NBitAndOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NBitAndOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NBitOrOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NBitOrOperation.java
index 705fb11..8aef5a1 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NBitOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NBitOrOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NBitXorOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NBitXorOperation.java
index 34e2d4e..91d1a9f 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NBitXorOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NBitXorOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NBlock.java b/jack/src/com/android/jack/jayce/v0004/nodes/NBlock.java
index 1346104..f338a47 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NBlock.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NBlock.java
@@ -80,6 +80,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NBooleanLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NBooleanLiteral.java
index 75d9ac9..f9206da 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NBooleanLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NBooleanLiteral.java
@@ -63,6 +63,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipBoolean();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NBreakStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NBreakStatement.java
index b46667c..527a955 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NBreakStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NBreakStatement.java
@@ -75,6 +75,10 @@
label = in.readString();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NByteLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NByteLiteral.java
index 2e3ef7f..945e419 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NByteLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NByteLiteral.java
@@ -64,6 +64,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipByte();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NCaseStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NCaseStatement.java
index 3af72a0..8556f83 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NCaseStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NCaseStatement.java
@@ -88,6 +88,11 @@
expr = in.readNode(NLiteral.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NCatchBlock.java b/jack/src/com/android/jack/jayce/v0004/nodes/NCatchBlock.java
index 3083355..688ebb4 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NCatchBlock.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NCatchBlock.java
@@ -114,6 +114,13 @@
statements = in.readNodes(NStatement.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipIds();
+ in.skipNode();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NCharLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NCharLiteral.java
index f85b784..a859a57 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NCharLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NCharLiteral.java
@@ -63,6 +63,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipChar();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NClassLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NClassLiteral.java
index 22c545c..679c0ef 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NClassLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NClassLiteral.java
@@ -70,6 +70,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NClassType.java b/jack/src/com/android/jack/jayce/v0004/nodes/NClassType.java
index b52fdb7..4e962fa 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NClassType.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NClassType.java
@@ -216,6 +216,24 @@
}
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ NodeLevel nodeLevel = in.getNodeLevel();
+ in.skipInt();
+ in.skipId();
+ if (nodeLevel != NodeLevel.TYPES) {
+ in.skipId();
+ in.skipIds();
+ in.skipId();
+ in.skipId();
+ in.skipId();
+ in.skipIds();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ }
+ }
+
@Nonnull
@Override
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NConcatOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NConcatOperation.java
index 786fe03..7541a76 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NConcatOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NConcatOperation.java
@@ -78,6 +78,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NConditionalExpression.java b/jack/src/com/android/jack/jayce/v0004/nodes/NConditionalExpression.java
index ce33747..7faf691 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NConditionalExpression.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NConditionalExpression.java
@@ -88,6 +88,12 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NConstructor.java b/jack/src/com/android/jack/jayce/v0004/nodes/NConstructor.java
index 0580754..99e6f3b 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NConstructor.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NConstructor.java
@@ -107,6 +107,14 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ in.skipInt();
+ in.skipNodes();
+ in.skipNode();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NContainerAnnotation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NContainerAnnotation.java
index 9312b54..58f5db0 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NContainerAnnotation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NContainerAnnotation.java
@@ -72,6 +72,11 @@
annotationTypeSig = in.readId();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipRetentionPolicyEnum();
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NContinueStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NContinueStatement.java
index 6bfcc87..a059e63 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NContinueStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NContinueStatement.java
@@ -77,6 +77,10 @@
label = in.readString();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NDebugVariableInfo.java b/jack/src/com/android/jack/jayce/v0004/nodes/NDebugVariableInfo.java
index 6c9b205..e26dc30 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NDebugVariableInfo.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NDebugVariableInfo.java
@@ -81,6 +81,12 @@
genericSignature = in.readString();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ in.skipId();
+ in.skipString();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NDivOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NDivOperation.java
index 0e0ae0c..7838b04 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NDivOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NDivOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NDoStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NDoStatement.java
index c4bd69e..20b05fb 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NDoStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NDoStatement.java
@@ -87,6 +87,11 @@
body = in.readNode(NStatement.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NDoubleLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NDoubleLiteral.java
index 6bd87ab..41fdf72 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NDoubleLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NDoubleLiteral.java
@@ -64,6 +64,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipDouble();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NDynamicCastOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NDynamicCastOperation.java
index 30ea886..3f1b3eb 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NDynamicCastOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NDynamicCastOperation.java
@@ -85,6 +85,11 @@
expr = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipIds();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NEnumField.java b/jack/src/com/android/jack/jayce/v0004/nodes/NEnumField.java
index e8a16ec..3083446 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NEnumField.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NEnumField.java
@@ -114,6 +114,16 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipInt();
+ in.skipId();
+ in.skipId();
+ in.skipNode();
+ in.skipInt();
+ in.skipNodes();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NEnumLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NEnumLiteral.java
index bb57bf0..1af3fee 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NEnumLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NEnumLiteral.java
@@ -84,6 +84,11 @@
enumFieldName = in.readId();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NEnumType.java b/jack/src/com/android/jack/jayce/v0004/nodes/NEnumType.java
index d2ff72c..149ccd2 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NEnumType.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NEnumType.java
@@ -174,6 +174,24 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ NodeLevel nodeLevel = in.getNodeLevel();
+ in.skipInt();
+ in.skipId();
+ if (nodeLevel != NodeLevel.TYPES) {
+ in.skipId();
+ in.skipIds();
+ in.skipId();
+ in.skipId();
+ in.skipId();
+ in.skipIds();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ }
+ }
+
@Nonnull
@Override
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NEqOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NEqOperation.java
index b324435..bd38f9e 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NEqOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NEqOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NExceptionRuntimeValue.java b/jack/src/com/android/jack/jayce/v0004/nodes/NExceptionRuntimeValue.java
index 75c7ccc..5f8e340 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NExceptionRuntimeValue.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NExceptionRuntimeValue.java
@@ -67,6 +67,10 @@
catchedType = in.readId();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NExpressionStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NExpressionStatement.java
index 01e3dac..bba18f3 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NExpressionStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NExpressionStatement.java
@@ -81,6 +81,10 @@
expression = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NField.java b/jack/src/com/android/jack/jayce/v0004/nodes/NField.java
index 174a6bb..dfb2f15 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NField.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NField.java
@@ -142,6 +142,15 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipInt();
+ in.skipId();
+ in.skipId();
+ in.skipNode();
+ in.skipNodes();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NFieldInitializer.java b/jack/src/com/android/jack/jayce/v0004/nodes/NFieldInitializer.java
index 539f6d1..aedae4f 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NFieldInitializer.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NFieldInitializer.java
@@ -59,6 +59,11 @@
throw new UnsupportedOperationException();
}
+ @SuppressWarnings("unused")
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) {
+ throw new UnsupportedOperationException();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NFieldRef.java b/jack/src/com/android/jack/jayce/v0004/nodes/NFieldRef.java
index 9009afc..2f3f472 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NFieldRef.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NFieldRef.java
@@ -105,6 +105,14 @@
instance = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipId();
+ in.readId();
+ in.skipFieldRefKindEnum();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NFloatLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NFloatLiteral.java
index f2cb5a0..dc354d9 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NFloatLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NFloatLiteral.java
@@ -64,6 +64,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipFloat();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NForStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NForStatement.java
index c746c7c..e0b8b65 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NForStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NForStatement.java
@@ -116,6 +116,13 @@
body = in.readNode(NStatement.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ in.skipNode();
+ in.skipNodes();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NGenericSignature.java b/jack/src/com/android/jack/jayce/v0004/nodes/NGenericSignature.java
index a352bd8..ebcfec6 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NGenericSignature.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NGenericSignature.java
@@ -62,6 +62,10 @@
genericSignature = in.readString();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NGoto.java b/jack/src/com/android/jack/jayce/v0004/nodes/NGoto.java
index 8845cf1..1854584 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NGoto.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NGoto.java
@@ -78,6 +78,10 @@
target = in.readId();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NGtOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NGtOperation.java
index 0baeb71..fb61d28 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NGtOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NGtOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NGteOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NGteOperation.java
index 45d1848..875dcb9 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NGteOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NGteOperation.java
@@ -76,6 +76,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NIfStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NIfStatement.java
index 9e701c4..769fcef 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NIfStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NIfStatement.java
@@ -98,6 +98,12 @@
elseStatement = in.readNode(NStatement.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NInstanceOf.java b/jack/src/com/android/jack/jayce/v0004/nodes/NInstanceOf.java
index 07134d3..70b3824 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NInstanceOf.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NInstanceOf.java
@@ -79,6 +79,11 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NIntLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NIntLiteral.java
index a15f270..acbda0b 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NIntLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NIntLiteral.java
@@ -63,6 +63,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipInt();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NInterfaceType.java b/jack/src/com/android/jack/jayce/v0004/nodes/NInterfaceType.java
index 721e086..e779bd8 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NInterfaceType.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NInterfaceType.java
@@ -166,6 +166,21 @@
}
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ NodeLevel nodeLevel = in.getNodeLevel();
+ in.skipInt();
+ in.skipId();
+ if (nodeLevel != NodeLevel.TYPES) {
+ in.skipIds();
+ in.skipId();
+ in.skipIds();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ in.skipNodes();
+ }
+ }
+
@Nonnull
@Override
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLabeledStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLabeledStatement.java
index a462c24..c605aaf 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLabeledStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLabeledStatement.java
@@ -97,6 +97,12 @@
body = in.readNode(NStatement.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ in.skipId();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLambda.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLambda.java
index 4684f08..818bbf7 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLambda.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLambda.java
@@ -213,6 +213,22 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ in.skipReceiverKindEnum();
+ in.skipId();
+ in.skipId();
+ in.skipIds();
+ in.skipMethodKindEnum();
+ in.skipId();
+ in.skipId();
+ in.skipIds();
+ in.skipNode();
+ in.skipNode();
+ in.skipNodes();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLambdaFromJill.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLambdaFromJill.java
index 00ad245..3cbf53f 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLambdaFromJill.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLambdaFromJill.java
@@ -53,6 +53,10 @@
public void readContent(@Nonnull JayceInternalReaderImpl in) {
}
+ @SuppressWarnings("unused")
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) {
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLocal.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLocal.java
index e435df2..bf7a9d8 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLocal.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLocal.java
@@ -113,6 +113,15 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipInt();
+ in.skipId();
+ in.skipId();
+ in.skipNodes();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLocalRef.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLocalRef.java
index 3dbbe6d..cd91aa7 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLocalRef.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLocalRef.java
@@ -86,6 +86,11 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLock.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLock.java
index 6a5bffe..78a35c9 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLock.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLock.java
@@ -80,6 +80,10 @@
lockExpr = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLongLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLongLiteral.java
index 420b639..c102938 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLongLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLongLiteral.java
@@ -63,6 +63,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipLong();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLtOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLtOperation.java
index 2372e7b..e49d635 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLtOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLtOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NLteOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NLteOperation.java
index 3d0b362..36b29eb 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NLteOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NLteOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NMethod.java b/jack/src/com/android/jack/jayce/v0004/nodes/NMethod.java
index dccf59b..044052e 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NMethod.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NMethod.java
@@ -196,6 +196,17 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipId();
+ in.skipNodes();
+ in.skipMethodKindEnum();
+ in.skipInt();
+ in.skipNodes();
+ in.skipNode();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodBody.java b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodBody.java
index 251efc5..f633bab 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodBody.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodBody.java
@@ -81,6 +81,11 @@
block = in.readNode(NBlock.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodCall.java b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodCall.java
index 88f5b5f..89696ce 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodCall.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodCall.java
@@ -164,6 +164,18 @@
dispatchKind = in.readDispatchKindEnum();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipId();
+ in.skipReceiverKindEnum();
+ in.skipId();
+ in.skipIds();
+ in.skipMethodKindEnum();
+ in.skipId();
+ in.skipNodes();
+ in.skipDispatchKindEnum();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodId.java b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodId.java
index 8bcfb3f..329390f 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodId.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodId.java
@@ -95,6 +95,13 @@
paramTypeSigs = in.readIds();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipMethodKindEnum();
+ in.skipId();
+ in.skipIds();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodLiteral.java
index ac4f67a..1455182 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NMethodLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NMethodLiteral.java
@@ -81,6 +81,11 @@
methodEnclosingType = in.readId();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NModOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NModOperation.java
index 1a5acd2..0556021 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NModOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NModOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NMulOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NMulOperation.java
index 3875055..82dd870 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NMulOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NMulOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NMultiExpression.java b/jack/src/com/android/jack/jayce/v0004/nodes/NMultiExpression.java
index 316c3b6..d9bdf53 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NMultiExpression.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NMultiExpression.java
@@ -75,6 +75,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NNameValuePair.java b/jack/src/com/android/jack/jayce/v0004/nodes/NNameValuePair.java
index ceac9cf..f41c5ae 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NNameValuePair.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NNameValuePair.java
@@ -98,6 +98,11 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NNativeMethodBody.java b/jack/src/com/android/jack/jayce/v0004/nodes/NNativeMethodBody.java
index 5f5a7bb..ce1a0f8 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NNativeMethodBody.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NNativeMethodBody.java
@@ -23,8 +23,6 @@
import com.android.jack.jayce.v0004.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0004.io.Token;
-import java.io.IOException;
-
import javax.annotation.Nonnull;
/**
@@ -49,15 +47,18 @@
return jNativeMethodBody;
}
- @SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
+ public void writeContent(@Nonnull JayceInternalWriterImpl out) {
+
+ }
+
+ @Override
+ public void readContent(@Nonnull JayceInternalReaderImpl in) {
}
@SuppressWarnings("unused")
- @Override
- public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) {
}
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NNeqOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NNeqOperation.java
index 6b25e7d..2131cef 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NNeqOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NNeqOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NNewArray.java b/jack/src/com/android/jack/jayce/v0004/nodes/NNewArray.java
index 0db2fee..44e6105 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NNewArray.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NNewArray.java
@@ -97,6 +97,12 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipNodes();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NNewInstance.java b/jack/src/com/android/jack/jayce/v0004/nodes/NNewInstance.java
index 2117a3b..450ecb8 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NNewInstance.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NNewInstance.java
@@ -93,6 +93,12 @@
args = in.readNodes(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipIds();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NNullLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NNullLiteral.java
index 769d0b7..e22cd0a 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NNullLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NNullLiteral.java
@@ -23,8 +23,6 @@
import com.android.jack.jayce.v0004.io.JayceInternalWriterImpl;
import com.android.jack.jayce.v0004.io.Token;
-import java.io.IOException;
-
import javax.annotation.Nonnull;
/**
@@ -49,14 +47,16 @@
return jNullLiteral;
}
- @SuppressWarnings("unused")
@Override
- public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
+ public void writeContent(@Nonnull JayceInternalWriterImpl out) {
+ }
+
+ @Override
+ public void readContent(@Nonnull JayceInternalReaderImpl in) {
}
@SuppressWarnings("unused")
- @Override
- public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) {
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NOrOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NOrOperation.java
index 4bd4792..a45747b 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NOrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NOrOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NOriginDigest.java b/jack/src/com/android/jack/jayce/v0004/nodes/NOriginDigest.java
index 1e12bdc..6e0a5d9 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NOriginDigest.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NOriginDigest.java
@@ -91,6 +91,15 @@
minor = in.readInt();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipInt();
+ in.skipString();
+ in.skipBuffer();
+ in.skipString();
+ in.skipInt();
+ in.skipInt();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NParameter.java b/jack/src/com/android/jack/jayce/v0004/nodes/NParameter.java
index 9ab6fbd..9f8ff0e 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NParameter.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NParameter.java
@@ -126,6 +126,15 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipInt();
+ in.skipId();
+ in.skipId();
+ in.skipNodes();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NParameterRef.java b/jack/src/com/android/jack/jayce/v0004/nodes/NParameterRef.java
index 1650a31..84f1d13 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NParameterRef.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NParameterRef.java
@@ -79,6 +79,11 @@
markers = in.readNodes(NMarker.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipNodes();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPolymorphicCall.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPolymorphicCall.java
index beea2eb..344ab10 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPolymorphicCall.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPolymorphicCall.java
@@ -175,6 +175,19 @@
callSiteParameterStrTypes = in.readIds();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipId();
+ in.skipReceiverKindEnum();
+ in.skipId();
+ in.skipIds();
+ in.skipMethodKindEnum();
+ in.skipId();
+ in.skipNodes();
+ in.skipId();
+ in.skipIds();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixDecOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixDecOperation.java
index a0c89a7..e0b95b2 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixDecOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixDecOperation.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixIncOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixIncOperation.java
index bcdfd51..25509fe 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixIncOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPostfixIncOperation.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixBitNotOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixBitNotOperation.java
index 7d3c334..02c0770 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixBitNotOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixBitNotOperation.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixDecOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixDecOperation.java
index 832028d..6b1ab6d 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixDecOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixDecOperation.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixIncOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixIncOperation.java
index 62703e0..29b030b 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixIncOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixIncOperation.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNegOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNegOperation.java
index e79a7c3..be1f706 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNegOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNegOperation.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNotOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNotOperation.java
index 04dc90d..c6fb7e9 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNotOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NPrefixNotOperation.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NReinterpretCastOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NReinterpretCastOperation.java
index 488bf0b..3a8ea08 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NReinterpretCastOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NReinterpretCastOperation.java
@@ -81,6 +81,11 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NReturnStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NReturnStatement.java
index 1336e06..d94630a 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NReturnStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NReturnStatement.java
@@ -79,6 +79,10 @@
expr = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NShlOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NShlOperation.java
index c0d15d6..71be6ee 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NShlOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NShlOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NShortLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NShortLiteral.java
index b68e477..e7b93f5 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NShortLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NShortLiteral.java
@@ -63,6 +63,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipShort();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NShrOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NShrOperation.java
index 9c7786e..1ea6327 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NShrOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NShrOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NShruOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NShruOperation.java
index e52f0cb..efdc95e 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NShruOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NShruOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NSimpleName.java b/jack/src/com/android/jack/jayce/v0004/nodes/NSimpleName.java
index 011d736..12a40cb 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NSimpleName.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NSimpleName.java
@@ -63,6 +63,10 @@
simpleName = in.readString();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NStringLiteral.java b/jack/src/com/android/jack/jayce/v0004/nodes/NStringLiteral.java
index 83cb03d..ab6c513 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NStringLiteral.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NStringLiteral.java
@@ -67,6 +67,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NSubOperation.java b/jack/src/com/android/jack/jayce/v0004/nodes/NSubOperation.java
index 82cf998..716e043 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NSubOperation.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NSubOperation.java
@@ -75,6 +75,11 @@
rhs = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NSwitchStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NSwitchStatement.java
index bda2846..4e35d0e 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NSwitchStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NSwitchStatement.java
@@ -108,6 +108,12 @@
body = in.readNode(NBlock.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipIds();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NSynchronizedBlock.java b/jack/src/com/android/jack/jayce/v0004/nodes/NSynchronizedBlock.java
index 09ca751..24f2be5 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NSynchronizedBlock.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NSynchronizedBlock.java
@@ -92,6 +92,11 @@
synchronizedBlock = in.readNode(NBlock.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.readNode(NExpression.class);
+ in.readNode(NBlock.class);
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NThisRef.java b/jack/src/com/android/jack/jayce/v0004/nodes/NThisRef.java
index faa5439..d41ede5 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NThisRef.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NThisRef.java
@@ -68,6 +68,10 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipId();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NThisRefTypeInfo.java b/jack/src/com/android/jack/jayce/v0004/nodes/NThisRefTypeInfo.java
index e35325e..9739baa 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NThisRefTypeInfo.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NThisRefTypeInfo.java
@@ -65,6 +65,10 @@
genericSignature = in.readString();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipString();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NThrowStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NThrowStatement.java
index f28846f..f077a9f 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NThrowStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NThrowStatement.java
@@ -80,6 +80,10 @@
expr = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NThrownExceptionMarker.java b/jack/src/com/android/jack/jayce/v0004/nodes/NThrownExceptionMarker.java
index e6e26ad..6abc1a8 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NThrownExceptionMarker.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NThrownExceptionMarker.java
@@ -70,6 +70,10 @@
thrownExceptions = in.readIds();
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipIds();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NTryStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NTryStatement.java
index e86f0c9..3434822 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NTryStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NTryStatement.java
@@ -109,6 +109,13 @@
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNodes();
+ in.skipNode();
+ in.skipNodes();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NUnlock.java b/jack/src/com/android/jack/jayce/v0004/nodes/NUnlock.java
index 335b958..cfbd394 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NUnlock.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NUnlock.java
@@ -80,6 +80,10 @@
lockExpr = in.readNode(NExpression.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/jayce/v0004/nodes/NWhileStatement.java b/jack/src/com/android/jack/jayce/v0004/nodes/NWhileStatement.java
index 9503353..230c976 100644
--- a/jack/src/com/android/jack/jayce/v0004/nodes/NWhileStatement.java
+++ b/jack/src/com/android/jack/jayce/v0004/nodes/NWhileStatement.java
@@ -87,6 +87,11 @@
body = in.readNode(NStatement.class);
}
+ public static void skipContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ in.skipNode();
+ in.skipNode();
+ }
+
@Override
@Nonnull
public Token getToken() {
diff --git a/jack/src/com/android/jack/library/v0001/InputJackLibraryImpl.java b/jack/src/com/android/jack/library/v0001/InputJackLibraryImpl.java
index 9caec39..84f1c18 100644
--- a/jack/src/com/android/jack/library/v0001/InputJackLibraryImpl.java
+++ b/jack/src/com/android/jack/library/v0001/InputJackLibraryImpl.java
@@ -32,6 +32,7 @@
import com.android.sched.util.file.CannotCloseException;
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.CannotDeleteFileException;
+import com.android.sched.util.file.FileOrDirectory.Existence;
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileOrDirectoryException;
@@ -44,6 +45,7 @@
import com.android.sched.vfs.PrefixedFS;
import com.android.sched.vfs.VFS;
import com.android.sched.vfs.VPath;
+import com.android.sched.vfs.WrongVFSTypeException;
import java.util.ArrayList;
import java.util.EnumMap;
@@ -148,20 +150,23 @@
} else {
VFS prefixedInputVFS = null;
try {
- prefixedInputVFS = new PrefixedFS(vfs, getSectionPath(fileType));
+ prefixedInputVFS = new PrefixedFS(vfs, getSectionPath(fileType), Existence.MUST_EXIST);
+ } catch (WrongVFSTypeException e) {
+ // If library is well formed this exception cannot be triggered
+ throw new AssertionError(e);
} catch (CannotCreateFileException e) {
- // If library is well formed this exception can not be triggered
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
} catch (NotDirectoryException e) {
- // If library is well formed this exception can not be triggered
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
}
if (fileType == FileType.PREBUILT) {
try {
currentSectionVFS = new GenericInputVFS(new MessageDigestFS(prefixedInputVFS,
ThreadConfig.get(JackLibraryFactory.MESSAGE_DIGEST_ALGO)));
- } catch (BadVFSFormatException e) {
- // If library is well formed this exception can not be triggered
+ } catch (BadVFSFormatException | WrongVFSTypeException e) {
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
}
} else {
diff --git a/jack/src/com/android/jack/library/v0002/InputJackLibraryImpl.java b/jack/src/com/android/jack/library/v0002/InputJackLibraryImpl.java
index d77194b..52d231f 100644
--- a/jack/src/com/android/jack/library/v0002/InputJackLibraryImpl.java
+++ b/jack/src/com/android/jack/library/v0002/InputJackLibraryImpl.java
@@ -37,6 +37,7 @@
import com.android.sched.util.file.CannotCloseException;
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.CannotDeleteFileException;
+import com.android.sched.util.file.FileOrDirectory.Existence;
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileOrDirectoryException;
@@ -49,6 +50,7 @@
import com.android.sched.vfs.PrefixedFS;
import com.android.sched.vfs.VFS;
import com.android.sched.vfs.VPath;
+import com.android.sched.vfs.WrongVFSTypeException;
import java.util.ArrayList;
import java.util.EnumMap;
@@ -155,20 +157,23 @@
} else {
VFS prefixedInputVFS = null;
try {
- prefixedInputVFS = new PrefixedFS(vfs, getSectionPath(fileType));
+ prefixedInputVFS = new PrefixedFS(vfs, getSectionPath(fileType), Existence.MUST_EXIST);
+ } catch (WrongVFSTypeException e) {
+ // If library is well formed this exception cannot be triggered
+ throw new AssertionError(e);
} catch (CannotCreateFileException e) {
- // If library is well formed this exception can not be triggered
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
} catch (NotDirectoryException e) {
- // If library is well formed this exception can not be triggered
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
}
if (fileType == FileType.PREBUILT) {
try {
currentSectionVFS = new GenericInputVFS(new MessageDigestFS(prefixedInputVFS,
ThreadConfig.get(JackLibraryFactory.MESSAGE_DIGEST_ALGO)));
- } catch (BadVFSFormatException e) {
- // If library is well formed this exception can not be triggered
+ } catch (BadVFSFormatException | WrongVFSTypeException e) {
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
}
} else {
diff --git a/jack/src/com/android/jack/library/v0003/InputJackLibraryImpl.java b/jack/src/com/android/jack/library/v0003/InputJackLibraryImpl.java
index f0413c7..be416cc 100644
--- a/jack/src/com/android/jack/library/v0003/InputJackLibraryImpl.java
+++ b/jack/src/com/android/jack/library/v0003/InputJackLibraryImpl.java
@@ -37,6 +37,7 @@
import com.android.sched.util.file.CannotCloseException;
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.CannotDeleteFileException;
+import com.android.sched.util.file.FileOrDirectory.Existence;
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileOrDirectoryException;
@@ -50,6 +51,7 @@
import com.android.sched.vfs.PrefixedFS;
import com.android.sched.vfs.VFS;
import com.android.sched.vfs.VPath;
+import com.android.sched.vfs.WrongVFSTypeException;
import java.util.ArrayList;
import java.util.EnumMap;
@@ -172,12 +174,15 @@
} else {
VFS inputVFS = null;
try {
- inputVFS = new PrefixedFS(vfs, getSectionPath(fileType));
+ inputVFS = new PrefixedFS(vfs, getSectionPath(fileType), Existence.MUST_EXIST);
+ } catch (WrongVFSTypeException e) {
+ // If library is well formed this exception cannot be triggered
+ throw new AssertionError(e);
} catch (CannotCreateFileException e) {
- // If library is well formed this exception can not be triggered
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
} catch (NotDirectoryException e) {
- // If library is well formed this exception can not be triggered
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
}
@@ -185,8 +190,8 @@
try {
inputVFS = new MessageDigestFS(inputVFS,
ThreadConfig.get(JackLibraryFactory.MESSAGE_DIGEST_ALGO));
- } catch (BadVFSFormatException e) {
- // If library is well formed this exception can not be triggered
+ } catch (BadVFSFormatException | WrongVFSTypeException e) {
+ // If library is well formed this exception cannot be triggered
throw new AssertionError(e);
}
}
diff --git a/jack/src/com/android/jack/library/v0003/OutputJackLibraryImpl.java b/jack/src/com/android/jack/library/v0003/OutputJackLibraryImpl.java
index e4ea796..4bc401c 100644
--- a/jack/src/com/android/jack/library/v0003/OutputJackLibraryImpl.java
+++ b/jack/src/com/android/jack/library/v0003/OutputJackLibraryImpl.java
@@ -32,6 +32,7 @@
import com.android.sched.util.file.CannotCloseException;
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.CannotDeleteFileException;
+import com.android.sched.util.file.FileOrDirectory.Existence;
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileOrDirectoryException;
@@ -51,6 +52,7 @@
import com.android.sched.vfs.PrefixedFS;
import com.android.sched.vfs.VFS;
import com.android.sched.vfs.VPath;
+import com.android.sched.vfs.WrongVFSTypeException;
import java.io.IOException;
import java.io.InputStream;
@@ -143,18 +145,26 @@
VPath prefixPath = InputJackLibraryImpl.getSectionPath(fileType);
VFS outputVFS = null;
try {
- outputVFS = new PrefixedFS(vfs, prefixPath);
+ outputVFS = new PrefixedFS(vfs, prefixPath, Existence.MAY_EXIST);
if (generateJacklibDigest && fileType == FileType.PREBUILT) {
- outputVFS = new MessageDigestFS(outputVFS,
- ThreadConfig.get(JackLibraryFactory.MESSAGE_DIGEST_ALGO));
+ try {
+ outputVFS = new MessageDigestFS(outputVFS,
+ ThreadConfig.get(JackLibraryFactory.MESSAGE_DIGEST_ALGO));
+ } catch (WrongVFSTypeException e) {
+ // we want the digest to be there;
+ throw new AssertionError(e);
+ }
}
+ } catch (WrongVFSTypeException e) {
+ // prefix may not exist so this cannot happen
+ throw new AssertionError(e);
} catch (BadVFSFormatException e) {
- // if library is well formed and digest exists this exception can not be triggered
+ // if library is well formed this exception cannot be triggered
throw new AssertionError(e);
} catch (NotDirectoryException e) {
- // if library is well formed this exception can not be triggered
+ // if library is well formed this exception cannot be triggered
throw new AssertionError(e);
}
diff --git a/jack/src/com/android/jack/optimizations/ConstantRefiner.java b/jack/src/com/android/jack/optimizations/ConstantRefiner.java
index e934085..4d59c95 100644
--- a/jack/src/com/android/jack/optimizations/ConstantRefiner.java
+++ b/jack/src/com/android/jack/optimizations/ConstantRefiner.java
@@ -157,6 +157,7 @@
if (varRef.getParent() instanceof JCastOperation) {
JCastOperation cast = (JCastOperation) varRef.getParent();
+ assert cast != null;
if (cast.getType().isSameType(dm.getValue().getType())) {
// Remove useless cast directly since it trigger new opportunities.
tr.append(new Replace(cast, cloneExpr.cloneExpression(dm.getValue())));
diff --git a/jack/src/com/android/jack/optimizations/UnusedDefinitionRemover.java b/jack/src/com/android/jack/optimizations/UnusedDefinitionRemover.java
index 08ca778..723de0b 100644
--- a/jack/src/com/android/jack/optimizations/UnusedDefinitionRemover.java
+++ b/jack/src/com/android/jack/optimizations/UnusedDefinitionRemover.java
@@ -110,7 +110,9 @@
tracer.getStatistic(UNUSED_DEFINITION_REMOVED).incValue();
- tr.append(new Remove(binary.getParent()));
+ final JNode binaryParent = binary.getParent();
+ assert binaryParent != null;
+ tr.append(new Remove(binaryParent));
if (binary.getRhs() instanceof JVariableRef) {
UseDefsMarker udm = ((JVariableRef) binary.getRhs()).getMarker(UseDefsMarker.class);
diff --git a/jack/src/com/android/jack/optimizations/common/OptimizerUtils.java b/jack/src/com/android/jack/optimizations/common/OptimizerUtils.java
index 36e796f..65a8b46 100644
--- a/jack/src/com/android/jack/optimizations/common/OptimizerUtils.java
+++ b/jack/src/com/android/jack/optimizations/common/OptimizerUtils.java
@@ -44,6 +44,7 @@
import java.util.List;
import java.util.Set;
+
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -65,7 +66,9 @@
@Nonnull
public static JExpression getAssignedValue(@Nonnull JExpression expr) {
assert isAssigned(expr);
- return ((JAsgOperation) expr.getParent()).getRhs();
+ JAsgOperation parent = (JAsgOperation) expr.getParent();
+ assert parent != null;
+ return parent.getRhs();
}
/**
diff --git a/jack/src/com/android/jack/optimizations/tailrecursion/TailRecursionOptimizer.java b/jack/src/com/android/jack/optimizations/tailrecursion/TailRecursionOptimizer.java
index 57d2e78..512205a 100644
--- a/jack/src/com/android/jack/optimizations/tailrecursion/TailRecursionOptimizer.java
+++ b/jack/src/com/android/jack/optimizations/tailrecursion/TailRecursionOptimizer.java
@@ -213,18 +213,18 @@
argAssignments.add(tempToArgStmt);
}
+ final JStatementList returnStmtParent = (JStatementList) returnStatement.getParent();
+ assert returnStmtParent != null;
for (JStatement asgStmt : tmpAssignments) {
- tr.append(
- new AppendStatement((JStatementList) returnStatement.getParent(), asgStmt));
+ tr.append(new AppendStatement(returnStmtParent, asgStmt));
}
for (JStatement asgStmt : argAssignments) {
- tr.append(
- new AppendStatement((JStatementList) returnStatement.getParent(), asgStmt));
+ tr.append(new AppendStatement(returnStmtParent, asgStmt));
}
JGoto tailCall = new JGoto(returnStatement.getSourceInfo(), labeledFirstStatement);
tailCall.setCatchBlocks(returnStatement.getJCatchBlocks());
- tr.append(new AppendStatement((JStatementList) returnStatement.getParent(), tailCall));
+ tr.append(new AppendStatement(returnStmtParent, tailCall));
tr.append(new Remove(returnStatement));
}
}
diff --git a/jack/src/com/android/jack/optimizations/wofr/WofrRemoveFieldWrites.java b/jack/src/com/android/jack/optimizations/wofr/WofrRemoveFieldWrites.java
index 186ef94..be878d8 100644
--- a/jack/src/com/android/jack/optimizations/wofr/WofrRemoveFieldWrites.java
+++ b/jack/src/com/android/jack/optimizations/wofr/WofrRemoveFieldWrites.java
@@ -28,6 +28,7 @@
import com.android.jack.ir.ast.JLocal;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JMethodCall;
+import com.android.jack.ir.ast.JNode;
import com.android.jack.ir.ast.JPrimitiveType;
import com.android.jack.ir.ast.JStatement;
import com.android.jack.ir.ast.JThisRef;
@@ -233,7 +234,9 @@
JExpressionStatement stmt =
new JExpressionStatement(asg.getSourceInfo(), receiver);
- request.append(new AppendBefore(asg.getParent(), stmt));
+ final JNode parent = asg.getParent();
+ assert parent != null;
+ request.append(new AppendBefore(parent, stmt));
return local;
}
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/MappingApplier.java b/jack/src/com/android/jack/shrob/obfuscation/MappingApplier.java
index 52a4073..db255bc 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/MappingApplier.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/MappingApplier.java
@@ -39,6 +39,7 @@
import com.android.jack.reporting.Reporter.Severity;
import com.android.jack.shrob.obfuscation.key.FieldKey;
import com.android.jack.shrob.obfuscation.key.MethodKey;
+import com.android.jack.shrob.obfuscation.key.TypeKey;
import com.android.jack.shrob.proguard.GrammarActions;
import com.android.jack.shrob.shrink.MappingCollisionException;
import com.android.jack.shrob.shrink.MappingCollisionPolicy;
@@ -131,10 +132,34 @@
throw new JackIOException(mappingFile.getPath() + ":" + lineNumber + ":" + message);
}
+ private boolean isExistingTypeName(@Nonnull String newSimpleName,
+ @Nonnull JPackage enclosingPackage) {
+ try {
+ try {
+ JClassOrInterface newType = enclosingPackage.getType(newSimpleName);
+ if (!Renamer.mustBeRenamed((MarkerManager) newType)) {
+ // A type was found that must not be renamed
+ return true;
+ }
+ } catch (JTypeLookupException e) {
+ // Ignored
+ }
+ NewTypeKeyMarker marker = enclosingPackage.getMarker(NewTypeKeyMarker.class);
+ if (marker != null) {
+ if (marker.getNewKeys().contains(new TypeKey(newSimpleName))) {
+ return true;
+ }
+ }
+ } catch (JLookupException exception) {
+ // No type was found
+ }
+ return false;
+ }
+
@CheckForNull
private JDefinedClassOrInterface createMappingForType(@Nonnull String oldName,
@Nonnull String newName, @Nonnull JSession session, @Nonnull File mappingFile,
- int lineNumber) {
+ int lineNumber) throws MappingCollisionException {
JClassOrInterface type = null;
JNodeLookup lookup = session.getLookup();
try {
@@ -145,7 +170,6 @@
new Object[] {mappingFile.getPath(), Integer.valueOf(lineNumber), oldName});
}
if (type instanceof JDefinedClassOrInterface) {
- JDefinedClassOrInterface clOrI = (JDefinedClassOrInterface) type;
int indexOfNewSimpleName = newName.lastIndexOf('.');
String newSimpleName, newPackageName;
if (indexOfNewSimpleName == -1) {
@@ -155,18 +179,36 @@
newPackageName = newName.substring(0, indexOfNewSimpleName).replace('.', '/');
newSimpleName = newName.substring(indexOfNewSimpleName + 1, newName.length());
}
- clOrI.addMarker(new OriginalPackageMarker(clOrI.getEnclosingPackage()));
JPackage newEnclosingPackage = lookup.getOrCreatePackage(newPackageName);
- request.append(new ChangeEnclosingPackage(clOrI, newEnclosingPackage));
- while (newEnclosingPackage != null) {
- if (!newEnclosingPackage.containsMarker(KeepNameMarker.class)) {
- newEnclosingPackage.addMarker(KeepNameMarker.INSTANCE);
- }
- newEnclosingPackage = newEnclosingPackage.getEnclosingPackage();
- }
- rename(clOrI, newSimpleName);
- return clOrI;
+ if (!oldName.equals(newName)
+ && isExistingTypeName(newSimpleName, newEnclosingPackage)) {
+ throw new MappingCollisionException(
+ new ColumnAndLineLocation(new FileLocation(mappingFile), lineNumber), type, newName);
+ } else {
+ JDefinedClassOrInterface clOrI = (JDefinedClassOrInterface) type;
+
+ clOrI.addMarker(new OriginalPackageMarker(clOrI.getEnclosingPackage()));
+
+ NewTypeKeyMarker marker = newEnclosingPackage.getMarker(NewTypeKeyMarker.class);
+ if (marker == null) {
+ marker = new NewTypeKeyMarker();
+ newEnclosingPackage.addMarker(marker);
+ }
+ assert marker != null;
+ marker.add(new TypeKey(newSimpleName));
+
+ request.append(new ChangeEnclosingPackage(clOrI, newEnclosingPackage));
+ while (newEnclosingPackage != null) {
+ if (!newEnclosingPackage.containsMarker(KeepNameMarker.class)) {
+ newEnclosingPackage.addMarker(KeepNameMarker.INSTANCE);
+ }
+ newEnclosingPackage = newEnclosingPackage.getEnclosingPackage();
+ }
+
+ rename(clOrI, newSimpleName);
+ return clOrI;
+ }
}
return null;
}
@@ -252,10 +294,18 @@
return createMappingForType(
qualifiedOldClassName, newClassName, session, mappingFile, lineNumber);
} catch (ArrayIndexOutOfBoundsException e) {
- throwException(
- mappingFile, lineNumber, "The mapping file is badly formatted (class mapping expected)");
- return null;
+ throwException(mappingFile, lineNumber,
+ "The mapping file is badly formatted (class mapping expected)");
+ } catch (MappingCollisionException e) {
+ if (collisionPolicy.equals(MappingCollisionPolicy.FAIL)) {
+ MappingContextException mappingReportableExn = new MappingContextException(e);
+ Jack.getSession().getReporter().report(Severity.FATAL, mappingReportableExn);
+ throw new JackAbortException(mappingReportableExn);
+ } else {
+ Jack.getSession().getReporter().report(Severity.NON_FATAL, new MappingContextInfo(e));
+ }
}
+ return null;
}
@CheckForNull
diff --git a/jack/src/com/android/jack/shrob/obfuscation/MappingPrinter.java b/jack/src/com/android/jack/shrob/obfuscation/MappingPrinter.java
index 5853d9f..2285a50 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/MappingPrinter.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/MappingPrinter.java
@@ -16,26 +16,17 @@
package com.android.jack.shrob.obfuscation;
-import com.google.common.base.Strings;
-
import com.android.jack.config.id.Arzon;
-import com.android.jack.ir.ast.HasName;
-import com.android.jack.ir.ast.JArrayType;
-import com.android.jack.ir.ast.JClassOrInterface;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
import com.android.jack.ir.ast.JField;
import com.android.jack.ir.ast.JMethod;
-import com.android.jack.ir.ast.JNode;
-import com.android.jack.ir.ast.JPackage;
import com.android.jack.ir.ast.JParameter;
import com.android.jack.ir.ast.JSession;
-import com.android.jack.ir.ast.JType;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.reporting.ReportableIOException;
import com.android.jack.reporting.Reporter.Severity;
import com.android.jack.shrob.proguard.GrammarActions;
import com.android.sched.item.Description;
-import com.android.sched.marker.LocalMarkerManager;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.Optional;
import com.android.sched.schedulable.Produce;
@@ -84,8 +75,6 @@
private static final String SEPARATOR = " -> ";
- private static final char PACKAGE_SEPARATOR = '.';
-
private static class Visitor extends JVisitor {
@Nonnull
private final PrintWriter writer;
@@ -94,67 +83,11 @@
this.writer = writer;
}
- private void appendOriginalQualifiedName(
- @Nonnull StringBuilder nameBuilder, @Nonnull JPackage pack) {
- JPackage enclosingPackage;
- OriginalPackageMarker marker = pack.getMarker(OriginalPackageMarker.class);
- if (marker != null) {
- enclosingPackage = marker.getOriginalEnclosingPackage();
- } else {
- enclosingPackage = pack.getEnclosingPackage();
- }
- if (enclosingPackage != null && !enclosingPackage.isTopLevelPackage()) {
- appendOriginalQualifiedName(nameBuilder, enclosingPackage);
- nameBuilder.append(PACKAGE_SEPARATOR);
- }
- appendOriginalName(nameBuilder, pack);
- }
-
- private void appendOriginalQualifiedName(
- @Nonnull StringBuilder nameBuilder, @Nonnull JClassOrInterface type) {
- JPackage enclosingPackage;
- OriginalPackageMarker marker = ((JNode) type).getMarker(OriginalPackageMarker.class);
- if (marker != null) {
- enclosingPackage = marker.getOriginalEnclosingPackage();
- } else {
- enclosingPackage = type.getEnclosingPackage();
- }
- assert enclosingPackage != null;
- appendOriginalQualifiedName(nameBuilder, enclosingPackage);
- if (!enclosingPackage.isTopLevelPackage()) {
- nameBuilder.append(PACKAGE_SEPARATOR);
- }
- appendOriginalName(nameBuilder, type);
- }
-
- private void appendOriginalName(@Nonnull StringBuilder nameBuilder, @Nonnull HasName node) {
- OriginalNameMarker marker = ((LocalMarkerManager) node).getMarker(OriginalNameMarker.class);
- if (marker != null) {
- nameBuilder.append(marker.getOriginalName());
- } else {
- nameBuilder.append(node.getName());
- }
- }
-
- private void appendOriginalQualifiedName(
- @Nonnull StringBuilder nameBuilder, @Nonnull HasName node) {
- if (node instanceof JArrayType) {
- JArrayType arrayType = (JArrayType) node;
- appendOriginalQualifiedName(nameBuilder, arrayType.getLeafType());
- nameBuilder.append(Strings.repeat("[]", arrayType.getDims()));
- } else if (node instanceof JDefinedClassOrInterface) {
- appendOriginalQualifiedName(nameBuilder, (JClassOrInterface) node);
- } else if (node instanceof JType) {
- nameBuilder.append(node.getName());
- } else {
- appendOriginalName(nameBuilder, node);
- }
- }
@Override
public boolean visit(@Nonnull JDefinedClassOrInterface type) {
StringBuilder info = new StringBuilder();
- appendOriginalQualifiedName(info, type);
+ OriginalNameTools.appendOriginalQualifiedName(info, type);
info.append(SEPARATOR);
info.append(GrammarActions.getSourceFormatter().getName(type));
info.append(':');
@@ -166,9 +99,9 @@
@Override
public boolean visit(@Nonnull JField field) {
StringBuilder info = new StringBuilder().append(" ");
- appendOriginalQualifiedName(info, field.getType());
+ OriginalNameTools.appendOriginalQualifiedName(info, field.getType());
info.append(' ');
- appendOriginalName(info, field.getId());
+ OriginalNameTools.appendOriginalName(info, field.getId());
info.append(SEPARATOR);
info.append(field.getName());
writer.println(info);
@@ -179,14 +112,14 @@
@Override
public boolean visit(@Nonnull JMethod method) {
StringBuilder info = new StringBuilder().append(" ");
- appendOriginalQualifiedName(info, method.getType());
+ OriginalNameTools.appendOriginalQualifiedName(info, method.getType());
info.append(' ');
- appendOriginalName(info, method.getMethodIdWide());
+ OriginalNameTools.appendOriginalName(info, method.getMethodIdWide());
info.append('(');
Iterator<JParameter> iterator = method.getParams().iterator();
while (iterator.hasNext()) {
JParameter param = iterator.next();
- appendOriginalQualifiedName(info, param.getType());
+ OriginalNameTools.appendOriginalQualifiedName(info, param.getType());
if (iterator.hasNext()) {
info.append(',');
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/NewTypeKeyMarker.java b/jack/src/com/android/jack/shrob/obfuscation/NewTypeKeyMarker.java
new file mode 100644
index 0000000..10161ea
--- /dev/null
+++ b/jack/src/com/android/jack/shrob/obfuscation/NewTypeKeyMarker.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.shrob.obfuscation;
+
+import com.android.jack.ir.ast.JPackage;
+import com.android.jack.shrob.obfuscation.key.TypeKey;
+import com.android.sched.item.Description;
+import com.android.sched.marker.ValidOn;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.annotation.Nonnull;
+
+/**
+ * {@code Marker} that represents the new names of types in a package.
+ */
+@Description("Represents the new names of types in a package.")
+@ValidOn(JPackage.class)
+public class NewTypeKeyMarker extends NewKeyMarker {
+ @Nonnull
+ private final Set<TypeKey> newTypeKeys;
+
+ public NewTypeKeyMarker() {
+ newTypeKeys = new HashSet<TypeKey>();
+ }
+
+ public NewTypeKeyMarker(@Nonnull Set<TypeKey> existingKeys) {
+ this.newTypeKeys = existingKeys;
+ }
+
+ public void add(@Nonnull TypeKey key) {
+ newTypeKeys.add(key);
+ }
+
+ @Override
+ @Nonnull
+ public Collection<TypeKey> getNewKeys() {
+ return newTypeKeys;
+ }
+
+}
\ No newline at end of file
diff --git a/jack/src/com/android/jack/shrob/obfuscation/OriginalNameTools.java b/jack/src/com/android/jack/shrob/obfuscation/OriginalNameTools.java
new file mode 100644
index 0000000..5bf282d
--- /dev/null
+++ b/jack/src/com/android/jack/shrob/obfuscation/OriginalNameTools.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.shrob.obfuscation;
+
+import com.google.common.base.Strings;
+
+import com.android.jack.ir.ast.HasName;
+import com.android.jack.ir.ast.JArrayType;
+import com.android.jack.ir.ast.JClassOrInterface;
+import com.android.jack.ir.ast.JDefinedClassOrInterface;
+import com.android.jack.ir.ast.JNode;
+import com.android.jack.ir.ast.JPackage;
+import com.android.jack.ir.ast.JType;
+import com.android.sched.marker.LocalMarkerManager;
+
+import javax.annotation.Nonnull;
+
+/**
+ * A class regrouping all the tools used to retrieve original names.
+ */
+public class OriginalNameTools {
+
+ private static final char PACKAGE_SEPARATOR = '.';
+
+ public static void appendOriginalQualifiedName(
+ @Nonnull StringBuilder nameBuilder, @Nonnull JPackage pack) {
+ JPackage enclosingPackage;
+ OriginalPackageMarker marker = pack.getMarker(OriginalPackageMarker.class);
+ if (marker != null) {
+ enclosingPackage = marker.getOriginalEnclosingPackage();
+ } else {
+ enclosingPackage = pack.getEnclosingPackage();
+ }
+ if (enclosingPackage != null && !enclosingPackage.isTopLevelPackage()) {
+ appendOriginalQualifiedName(nameBuilder, enclosingPackage);
+ nameBuilder.append(PACKAGE_SEPARATOR);
+ }
+ appendOriginalName(nameBuilder, pack);
+ }
+
+ public static void appendOriginalQualifiedName(
+ @Nonnull StringBuilder nameBuilder, @Nonnull JClassOrInterface type) {
+ JPackage enclosingPackage;
+ OriginalPackageMarker marker = ((JNode) type).getMarker(OriginalPackageMarker.class);
+ if (marker != null) {
+ enclosingPackage = marker.getOriginalEnclosingPackage();
+ } else {
+ enclosingPackage = type.getEnclosingPackage();
+ }
+ assert enclosingPackage != null;
+ appendOriginalQualifiedName(nameBuilder, enclosingPackage);
+ if (!enclosingPackage.isTopLevelPackage()) {
+ nameBuilder.append(PACKAGE_SEPARATOR);
+ }
+ appendOriginalName(nameBuilder, type);
+ }
+
+ public static void appendOriginalName(@Nonnull StringBuilder nameBuilder, @Nonnull HasName node) {
+ OriginalNameMarker marker = ((LocalMarkerManager) node).getMarker(OriginalNameMarker.class);
+ if (marker != null) {
+ nameBuilder.append(marker.getOriginalName());
+ } else {
+ nameBuilder.append(node.getName());
+ }
+ }
+
+ public static void appendOriginalQualifiedName(
+ @Nonnull StringBuilder nameBuilder, @Nonnull HasName node) {
+ if (node instanceof JArrayType) {
+ JArrayType arrayType = (JArrayType) node;
+ appendOriginalQualifiedName(nameBuilder, arrayType.getLeafType());
+ nameBuilder.append(Strings.repeat("[]", arrayType.getDims()));
+ } else if (node instanceof JDefinedClassOrInterface) {
+ appendOriginalQualifiedName(nameBuilder, (JClassOrInterface) node);
+ } else if (node instanceof JType) {
+ nameBuilder.append(node.getName());
+ } else {
+ appendOriginalName(nameBuilder, node);
+ }
+ }
+
+}
+
diff --git a/jack/src/com/android/jack/shrob/obfuscation/Renamer.java b/jack/src/com/android/jack/shrob/obfuscation/Renamer.java
index 0b7d553..346e4a1 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/Renamer.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/Renamer.java
@@ -20,14 +20,17 @@
import com.android.jack.Jack;
import com.android.jack.frontend.MethodIdDuplicateRemover.UniqMethodIds;
import com.android.jack.ir.ast.CanBeRenamed;
+import com.android.jack.ir.ast.HasName;
import com.android.jack.ir.ast.JClassOrInterface;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
import com.android.jack.ir.ast.JField;
import com.android.jack.ir.ast.JFieldId;
import com.android.jack.ir.ast.JMethod;
+import com.android.jack.ir.ast.JMethodId;
import com.android.jack.ir.ast.JMethodIdWide;
import com.android.jack.ir.ast.JPackage;
import com.android.jack.ir.ast.JSession;
+import com.android.jack.ir.ast.JType;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.ir.sourceinfo.SourceInfo;
import com.android.jack.library.DumpInLibrary;
@@ -59,6 +62,7 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -162,6 +166,49 @@
}
}
+ @Nonnull
+ static String getFieldKey(@Nonnull JFieldId fieldId) {
+ assert !fieldId.containsMarker(OriginalNameMarker.class);
+ StringBuilder sb = new StringBuilder();
+ sb.append(fieldId.getName());
+ sb.append(':');
+ OriginalNameTools.appendOriginalQualifiedName(sb, fieldId.getType());
+ return sb.toString();
+ }
+
+ @Nonnull
+ static String getMethodKey(@Nonnull JMethodIdWide methodId) {
+ assert !methodId.containsMarker(OriginalNameMarker.class);
+ StringBuilder sb = new StringBuilder();
+ sb.append(methodId.getName());
+ sb.append('(');
+ Iterator<JType> iterator = methodId.getParamTypes().iterator();
+ while (iterator.hasNext()) {
+ JType paramType = iterator.next();
+ OriginalNameTools.appendOriginalQualifiedName(sb, paramType);
+ if (iterator.hasNext()) {
+ sb.append(',');
+ }
+ }
+ sb.append(')');
+
+ return sb.toString();
+ }
+
+ @Nonnull
+ static String getKey(@Nonnull HasName namedElement) {
+ if (namedElement instanceof JFieldId) {
+ return getFieldKey((JFieldId) namedElement);
+ } else if (namedElement instanceof JMethodIdWide) {
+ return getMethodKey((JMethodIdWide) namedElement);
+ } else {
+ assert !(namedElement instanceof JMethod
+ || namedElement instanceof JMethodId
+ || namedElement instanceof JField);
+ return namedElement.getName();
+ }
+ }
+
private static void rename(
@Nonnull CanBeRenamed node, @Nonnull String newName) {
if (mustBeRenamed((MarkerManager) node)) {
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/LineNumberRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableAndThisLineNumberRemover.java
similarity index 66%
copy from jack/src/com/android/jack/shrob/obfuscation/annotation/LineNumberRemover.java
copy to jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableAndThisLineNumberRemover.java
index acb20ba..fa01e22 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/LineNumberRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableAndThisLineNumberRemover.java
@@ -17,8 +17,9 @@
package com.android.jack.shrob.obfuscation.annotation;
import com.android.jack.Jack;
-import com.android.jack.ir.ast.JDefinedClassOrInterface;
-import com.android.jack.ir.ast.JNode;
+import com.android.jack.ir.ast.JLocal;
+import com.android.jack.ir.ast.JMethod;
+import com.android.jack.ir.ast.JThis;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.ir.sourceinfo.SourceInfo;
import com.android.jack.ir.sourceinfo.SourceInfoFactory;
@@ -29,11 +30,12 @@
import javax.annotation.Nonnull;
/**
- * A {@link RunnableSchedulable} that removes line numbers.
+ * A {@link RunnableSchedulable} that removes line numbers for local variables and 'this'.
*/
-@Description("Removes line numbers")
-@Support(RemoveLineNumber.class)
-public class LineNumberRemover implements RunnableSchedulable<JDefinedClassOrInterface> {
+@Description("Removes line numbers for local variable and 'this'")
+@Support(RemoveLocalLineNumber.class)
+public class LocalVariableAndThisLineNumberRemover
+ implements RunnableSchedulable<JMethod> {
private static class Visitor extends JVisitor {
@Nonnull
@@ -44,19 +46,28 @@
}
@Override
- public boolean visit(@Nonnull JNode node) {
+ public boolean visit(@Nonnull JLocal node) {
SourceInfo info = node.getSourceInfo();
if (info != SourceInfo.UNKNOWN) {
node.setSourceInfo(info.getFileSourceInfo());
}
- return false;
+ return true;
+ }
+
+ @Override
+ public boolean visit(@Nonnull JThis node) {
+ SourceInfo info = node.getSourceInfo();
+ if (info != SourceInfo.UNKNOWN) {
+ node.setSourceInfo(info.getFileSourceInfo());
+ }
+ return true;
}
}
@Override
- public void run(@Nonnull JDefinedClassOrInterface type) {
+ public void run(@Nonnull JMethod method) {
Visitor visitor = new Visitor(Jack.getSession().getSourceInfoFactory());
- visitor.accept(type);
+ visitor.accept(method);
}
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableAndThisNameRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableAndThisNameRemover.java
index d1f3682..28f0a53 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableAndThisNameRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableAndThisNameRemover.java
@@ -16,11 +16,14 @@
package com.android.jack.shrob.obfuscation.annotation;
+import com.android.jack.debug.DebugVariableInfoMarker;
import com.android.jack.ir.ast.JLocal;
+import com.android.jack.ir.ast.JLocalRef;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JThis;
import com.android.jack.ir.ast.JVisitor;
import com.android.sched.item.Description;
+import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
@@ -31,6 +34,7 @@
*/
@Description("Removes local variables and 'this' names")
@Transform(modify = {JLocal.class, JThis.class})
+@Constraint(need = DebugVariableInfoMarker.class)
public class LocalVariableAndThisNameRemover implements RunnableSchedulable<JMethod> {
private static class Visitor extends JVisitor {
@@ -42,6 +46,15 @@
}
@Override
+ public boolean visit(@Nonnull JLocalRef localRef) {
+ DebugVariableInfoMarker marker = localRef.getMarker(DebugVariableInfoMarker.class);
+ if (marker != null) {
+ marker.setName(null);
+ }
+ return false;
+ }
+
+ @Override
public boolean visit(@Nonnull JThis node) {
node.setName(null);
return false;
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/LineNumberRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/ParameterLineNumberRemover.java
similarity index 73%
rename from jack/src/com/android/jack/shrob/obfuscation/annotation/LineNumberRemover.java
rename to jack/src/com/android/jack/shrob/obfuscation/annotation/ParameterLineNumberRemover.java
index acb20ba..d274403 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/LineNumberRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/ParameterLineNumberRemover.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
package com.android.jack.shrob.obfuscation.annotation;
import com.android.jack.Jack;
-import com.android.jack.ir.ast.JDefinedClassOrInterface;
-import com.android.jack.ir.ast.JNode;
+import com.android.jack.ir.ast.JMethod;
+import com.android.jack.ir.ast.JParameter;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.ir.sourceinfo.SourceInfo;
import com.android.jack.ir.sourceinfo.SourceInfoFactory;
@@ -29,11 +29,11 @@
import javax.annotation.Nonnull;
/**
- * A {@link RunnableSchedulable} that removes line numbers.
+ * A {@link RunnableSchedulable} that removes line numbers of parameters.
*/
-@Description("Removes line numbers")
-@Support(RemoveLineNumber.class)
-public class LineNumberRemover implements RunnableSchedulable<JDefinedClassOrInterface> {
+@Description("Removes line numbers of parameters")
+@Support(RemoveParameterLineNumber.class)
+public class ParameterLineNumberRemover implements RunnableSchedulable<JMethod> {
private static class Visitor extends JVisitor {
@Nonnull
@@ -44,19 +44,20 @@
}
@Override
- public boolean visit(@Nonnull JNode node) {
+ public boolean visit(@Nonnull JParameter node) {
SourceInfo info = node.getSourceInfo();
if (info != SourceInfo.UNKNOWN) {
node.setSourceInfo(info.getFileSourceInfo());
}
- return false;
+ return true;
}
}
+
@Override
- public void run(@Nonnull JDefinedClassOrInterface type) {
+ public void run(@Nonnull JMethod method) {
Visitor visitor = new Visitor(Jack.getSession().getSourceInfoFactory());
- visitor.accept(type);
+ visitor.accept(method);
}
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/ParameterNameRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/ParameterNameRemover.java
index f876c36..1623c1c 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/ParameterNameRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/ParameterNameRemover.java
@@ -16,8 +16,11 @@
package com.android.jack.shrob.obfuscation.annotation;
+import com.android.jack.debug.DebugVariableInfoMarker;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JParameter;
+import com.android.jack.ir.ast.JParameterRef;
+import com.android.jack.ir.ast.JVisitor;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
@@ -29,14 +32,30 @@
* A {@link RunnableSchedulable} that removes parameter names.
*/
@Description("Removes parameters names")
-@Constraint(need = JParameter.class)
+@Constraint(need = {JParameter.class, DebugVariableInfoMarker.class})
@Transform(modify = JParameter.class)
public class ParameterNameRemover implements RunnableSchedulable<JMethod> {
+ private static class Visitor extends JVisitor {
+
+ @Override
+ public boolean visit(@Nonnull JParameterRef parameterRef) {
+ DebugVariableInfoMarker marker = parameterRef.getMarker(DebugVariableInfoMarker.class);
+ if (marker != null) {
+ marker.setName(null);
+ }
+ return false;
+ }
+
+ @Override
+ public boolean visit(@Nonnull JParameter node) {
+ node.setName(null);
+ return false;
+ }
+ }
+
@Override
public void run(@Nonnull JMethod t) {
- for (JParameter param : t.getParams()) {
- param.setName(null);
- }
+ new Visitor().accept(t);
}
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalLineNumber.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalLineNumber.java
new file mode 100644
index 0000000..c89588f
--- /dev/null
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalLineNumber.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.shrob.obfuscation.annotation;
+
+import com.android.sched.item.Description;
+import com.android.sched.item.Feature;
+import com.android.sched.util.config.HasKeyId;
+import com.android.sched.util.config.id.BooleanPropertyId;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Represents the removal of line numbers of local variables and 'this' in source info.
+ */
+@HasKeyId
+@Description("The removal of line numbers of local variables and 'this' in source info")
+public class RemoveLocalLineNumber implements Feature {
+
+ /**
+ * This property indicates if the line numbers of local variables and 'this' in source info must
+ * be removed.
+ * If a flags file (provided with --config-proguard) contradicts this property, the property is
+ * overridden.
+ */
+ @Nonnull
+ public static final BooleanPropertyId KEEP_LOCAL_LINE_NUMBER = BooleanPropertyId.create(
+ "jack.obfuscation.local.keep-line-number", "Keep line numbers for locals")
+ .addDefaultValue(Boolean.TRUE);
+}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalVariableGenericSignature.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalVariableGenericSignature.java
deleted file mode 100644
index 96e5795..0000000
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalVariableGenericSignature.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack.shrob.obfuscation.annotation;
-
-import com.android.sched.item.Description;
-import com.android.sched.item.Feature;
-
-/**
- * Represents the removal of the generic signatures of a local variable
- */
-@Description("The removal of the generic signatures of a local variable")
-public class RemoveLocalVariableGenericSignature implements Feature {
-
-}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalVariableName.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalVariableName.java
index b70bab2..4244912 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalVariableName.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLocalVariableName.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 The Android Open Source Project
+ * Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,11 +18,26 @@
import com.android.sched.item.Description;
import com.android.sched.item.Feature;
+import com.android.sched.util.config.HasKeyId;
+import com.android.sched.util.config.id.BooleanPropertyId;
+
+import javax.annotation.Nonnull;
/**
- * A {@link Feature} that represents the removal of local variables names.
+ * A {@link Feature} that represents the removal of local variables and 'this' names.
*/
-@Description("The removal of local variables names")
+@HasKeyId
+@Description("The removal of local variables and 'this' names")
public class RemoveLocalVariableName implements Feature {
+ /**
+ * This property indicates if the names of local variables and 'this' in source info must
+ * be removed.
+ * If a flags file (provided with --config-proguard) contradicts this property, the property is
+ * overridden.
+ */
+ @Nonnull
+ public static final BooleanPropertyId KEEP_LOCAL_NAME = BooleanPropertyId.create(
+ "jack.obfuscation.local.keep-name", "Keep names for locals")
+ .addDefaultValue(Boolean.TRUE);
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveParameterLineNumber.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveParameterLineNumber.java
new file mode 100644
index 0000000..1a3ccc5
--- /dev/null
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveParameterLineNumber.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.shrob.obfuscation.annotation;
+
+import com.android.sched.item.Description;
+import com.android.sched.item.Feature;
+import com.android.sched.util.config.HasKeyId;
+import com.android.sched.util.config.id.BooleanPropertyId;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Represents the removal of line numbers in source info for parameters.
+ */
+@HasKeyId
+@Description("The removal of line numbers in source info for parameters")
+public class RemoveParameterLineNumber implements Feature {
+
+ /**
+ * This property indicates if the line numbers of parameters in source info must be removed.
+ * If a flags file (provided with --config-proguard) contradicts this property, the property is
+ * overridden.
+ */
+ @Nonnull
+ public static final BooleanPropertyId KEEP_PARAMETER_LINE_NUMBER = BooleanPropertyId.create(
+ "jack.obfuscation.parameter.keep-line-number", "Keep line numbers for parameters")
+ .addDefaultValue(Boolean.TRUE);
+
+}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveParameterName.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveParameterName.java
index 4afd970..cf3f1ed 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveParameterName.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveParameterName.java
@@ -18,11 +18,25 @@
import com.android.sched.item.Description;
import com.android.sched.item.Feature;
+import com.android.sched.util.config.HasKeyId;
+import com.android.sched.util.config.id.BooleanPropertyId;
+
+import javax.annotation.Nonnull;
/**
* A {@link Feature} that represents the removal of parameter names.
*/
+@HasKeyId
@Description("The removal of parameter names")
public class RemoveParameterName implements Feature {
+ /**
+ * This property indicates if the names of parameters in source info must be removed.
+ * If a flags file (provided with --config-proguard) contradicts this property, the property is
+ * overridden.
+ */
+ @Nonnull
+ public static final BooleanPropertyId KEEP_PARAMETER_NAME = BooleanPropertyId.create(
+ "jack.obfuscation.parameter.keep-name", "Keep names for parameters")
+ .addDefaultValue(Boolean.TRUE);
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLineNumber.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveVariableGenericSignature.java
similarity index 79%
rename from jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLineNumber.java
rename to jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveVariableGenericSignature.java
index 4d63713..3bab585 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveLineNumber.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/RemoveVariableGenericSignature.java
@@ -20,9 +20,9 @@
import com.android.sched.item.Feature;
/**
- * Represents the removal of line numbers in source info.
+ * Represents the removal of the generic signatures of a variable
*/
-@Description("The removal of line numbers in source info")
-public class RemoveLineNumber implements Feature {
+@Description("The removal of the generic signatures of a variable")
+public class RemoveVariableGenericSignature implements Feature {
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/VariableGenericSignatureRemover.java
similarity index 86%
rename from jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java
rename to jack/src/com/android/jack/shrob/obfuscation/annotation/VariableGenericSignatureRemover.java
index a3fd7d6..1cf7a7f 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/VariableGenericSignatureRemover.java
@@ -29,12 +29,11 @@
import javax.annotation.Nonnull;
/**
- * A {@link RunnableSchedulable} that removes signatures from local variables.
+ * A {@link RunnableSchedulable} that removes signatures from variables.
*/
-@Description("Removes signatures from local variables")
-@Support(RemoveLocalVariableGenericSignature.class)
-public class LocalVariableGenericSignatureRemover implements
- RunnableSchedulable<JMethod> {
+@Description("Removes signatures from variables")
+@Support(RemoveVariableGenericSignature.class)
+public class VariableGenericSignatureRemover implements RunnableSchedulable<JMethod> {
private static class Visitor extends JVisitor {
diff --git a/jack/src/com/android/jack/shrob/proguard/GrammarActions.java b/jack/src/com/android/jack/shrob/proguard/GrammarActions.java
index 0382273..3c917b8 100644
--- a/jack/src/com/android/jack/shrob/proguard/GrammarActions.java
+++ b/jack/src/com/android/jack/shrob/proguard/GrammarActions.java
@@ -79,10 +79,10 @@
SourceFormatter.getFormatter();
enum FilterSeparator {
- GENERAL(".", "[^./]*"),
- FILE(".", "[^/]*"),
- CLASS("[^.]", "[^.]*"),
- ATTRIBUTE(".", ".*");
+ GENERAL(".", "[^./]*", ".*"),
+ FILE(".", "[^/]*", ".*"),
+ CLASS("[^.]", "[^.]*", "[^\\[\\]]*"),
+ ATTRIBUTE(".", ".*", ".*");
/**
* Represents the pattern equivalent to Proguard's "?"
@@ -96,9 +96,17 @@
@Nonnull
private final String multipleCharWildcard;
- FilterSeparator(@Nonnull String singleCharWilcard, @Nonnull String multipleCharWildcard) {
+ /**
+ * Represents the pattern equivalent to Proguard's "**"
+ */
+ @Nonnull
+ private final String multipleCharWildcardWithSeparator;
+
+ FilterSeparator(@Nonnull String singleCharWilcard, @Nonnull String multipleCharWildcard,
+ @Nonnull String multipleCharWildcardWithSeparator) {
this.singleCharWilcard = singleCharWilcard;
this.multipleCharWildcard = multipleCharWildcard;
+ this.multipleCharWildcardWithSeparator = multipleCharWildcardWithSeparator;
}
}
@@ -117,30 +125,30 @@
@Nonnull
public static String getSignature(@Nonnull String name) {
- assert name != null;
- if (name.contains("[")) {
- String nameWithoutArray = name.substring(0, name.lastIndexOf('['));
+ int lastOpeningBracketPos = name.lastIndexOf('[');
+ if (lastOpeningBracketPos != -1) {
+ String nameWithoutArray = name.substring(0, lastOpeningBracketPos);
return '[' + getSignature(nameWithoutArray);
}
StringBuilder sig = new StringBuilder();
if (name.equals("boolean")) {
- sig.append("Z");
+ sig.append('Z');
} else if (name.equals("byte")) {
- sig.append("B");
+ sig.append('B');
} else if (name.equals("char")) {
- sig.append("C");
+ sig.append('C');
} else if (name.equals("short")) {
- sig.append("S");
+ sig.append('S');
} else if (name.equals("int")) {
- sig.append("I");
+ sig.append('I');
} else if (name.equals("float")) {
- sig.append("F");
+ sig.append('F');
} else if (name.equals("double")) {
- sig.append("D");
+ sig.append('D');
} else if (name.equals("long")) {
- sig.append("J");
+ sig.append('J');
} else if (name.equals("void")) {
- sig.append("V");
+ sig.append('V');
} else {
sig.append(NamingTools.getTypeSignatureName(name));
}
@@ -148,16 +156,15 @@
return sig.toString();
}
+ private static final String PRIMITIVE_TYPE_NON_VOID =
+ "(boolean|byte|char|short|int|float|double|long)";
+
@Nonnull
- static String getSignature(@Nonnull String name, int dim) {
+ static String getSourceNamePattern(@Nonnull String name, int dim) {
assert name != null;
StringBuilder sig = new StringBuilder();
- for (int i = 0; i < dim; i++) {
- sig.append("\\[");
- }
-
// ... matches any number of arguments of any type
if (name.equals("...")) {
sig.append(".*");
@@ -166,35 +173,23 @@
sig.append(".*");
// % matches any primitive type ("boolean", "int", etc, but not "void")
} else if (name.equals("%")) {
- sig.append("(B|C|D|F|I|J|S|Z)");
- } else if (name.equals("boolean")) {
- sig.append("Z");
- } else if (name.equals("byte")) {
- sig.append("B");
- } else if (name.equals("char")) {
- sig.append("C");
- } else if (name.equals("short")) {
- sig.append("S");
- } else if (name.equals("int")) {
- sig.append("I");
- } else if (name.equals("float")) {
- sig.append("F");
- } else if (name.equals("double")) {
- sig.append("D");
- } else if (name.equals("long")) {
- sig.append("J");
- } else if (name.equals("void")) {
- sig.append("V");
+ sig.append(PRIMITIVE_TYPE_NON_VOID);
+ } else if (name.equals("**")) {
+ sig.append("[^\\[\\[]*(?<!" + PRIMITIVE_TYPE_NON_VOID + ")");
} else {
sig.append(
- convertNameToPattern(NamingTools.getTypeSignatureName(name), FilterSeparator.CLASS));
+ convertNameToRegex(name, FilterSeparator.CLASS));
+ }
+
+ for (int i = 0; i < dim; i++) {
+ sig.append("\\[\\]");
}
return sig.toString();
}
@Nonnull
- private static String convertNameToPattern(
+ private static String convertNameToRegex(
@Nonnull String name, @Nonnull FilterSeparator separator) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < name.length(); i++) {
@@ -208,7 +203,7 @@
if (j < name.length() && name.charAt(j) == '*') {
// ** matches any part of a name, possibly containing
// any number of package separators or directory separators
- sb.append(".*");
+ sb.append(separator.multipleCharWildcardWithSeparator);
i++;
} else {
// * matches any part of a name not containing
@@ -231,7 +226,7 @@
static NameSpecification name(/*@Nonnull*/ String name, @Nonnull FilterSeparator separator) {
assert name != null;
String transformedName = "^" +
- convertNameToPattern(name, separator) + "$";
+ convertNameToRegex(name, separator) + "$";
Pattern pattern = Pattern.compile(transformedName);
return new NameSpecification(pattern);
@@ -296,48 +291,55 @@
static void method(@Nonnull ClassSpecification classSpec,
@CheckForNull AnnotationSpecification annotationType,
- @CheckForNull String typeSig, /*@Nonnull*/ String name, @Nonnull String signature,
+ @CheckForNull String typeSigRegex, /*@Nonnull*/ String name, @Nonnull String signature,
@CheckForNull ModifierSpecification modifier) {
assert name != null;
- String fullName = "^" + convertNameToPattern(name, FilterSeparator.CLASS);
+ String fullName = "^" + convertNameToRegex(name, FilterSeparator.CLASS);
fullName += signature;
- if (typeSig != null) {
- fullName += typeSig;
- } else {
- fullName += "V";
+ NameSpecification typeSignature = null;
+ if (typeSigRegex != null) {
+ Pattern pattern = Pattern.compile("^" + typeSigRegex + "$");
+ typeSignature = new NameSpecification(pattern);
}
fullName += "$";
Pattern pattern = Pattern.compile(fullName);
classSpec.add(new MethodSpecification(new NameSpecification(pattern),
- modifier, annotationType));
+ modifier, typeSignature, annotationType));
}
static void fieldOrAnyMember(@Nonnull ClassSpecification classSpec,
@CheckForNull AnnotationSpecification annotationType, @CheckForNull String typeSig,
- /*@Nonnull*/ String name, @Nonnull ModifierSpecification modifier) {
+ /* @Nonnull */ String name, @Nonnull ModifierSpecification modifier,
+ @Nonnull CharStream inputStream) throws RecognitionException {
assert name != null;
if (typeSig == null) {
- assert name.equals("*");
+ if (!name.equals("*")) {
+ throw new RecognitionException(inputStream);
+ }
// This is the "any member" case, we have to handle methods as well.
method(classSpec,
annotationType,
- getSignature("***", 0),
+ getSourceNamePattern("***", 0),
"*",
- "\\(" + getSignature("...", 0) + "\\)",
+ "\\(" + getSourceNamePattern("...", 0) + "\\)",
modifier);
}
- field(classSpec, annotationType, typeSig, name, modifier);
+ field(classSpec, annotationType, typeSig, name, modifier, inputStream);
}
static void field(@Nonnull ClassSpecification classSpec,
- @CheckForNull AnnotationSpecification annotationType, @CheckForNull String typeSig,
- /*@Nonnull*/ String name, @Nonnull ModifierSpecification modifier) {
+ @CheckForNull AnnotationSpecification annotationType, @CheckForNull String typeSigRegex,
+ /* @Nonnull */ String name, @Nonnull ModifierSpecification modifier,
+ @Nonnull CharStream inputStream) throws RecognitionException {
assert name != null;
NameSpecification typeSignature = null;
- if (typeSig != null) {
- typeSignature = name(typeSig, FilterSeparator.CLASS);
+ if (typeSigRegex != null) {
+ Pattern pattern = Pattern.compile("^" + typeSigRegex + "$");
+ typeSignature = new NameSpecification(pattern);
} else {
- assert name.equals("*");
+ if (!name.equals("*")) {
+ throw new RecognitionException(inputStream);
+ }
}
classSpec.add(
new FieldSpecification(
diff --git a/jack/src/com/android/jack/shrob/proguard/Proguard.g b/jack/src/com/android/jack/shrob/proguard/Proguard.g
index bdd4a89..e045dec 100644
--- a/jack/src/com/android/jack/shrob/proguard/Proguard.g
+++ b/jack/src/com/android/jack/shrob/proguard/Proguard.g
@@ -202,11 +202,11 @@
annotation? modifiers
(
(typeSig=type)? name=(NAME|'<init>') (signature=arguments {GrammarActions.method(classSpec, $annotation.annotSpec, typeSig, $name.text, signature, $modifiers.modifiers);}
- | {GrammarActions.fieldOrAnyMember(classSpec, $annotation.annotSpec, typeSig, $name.text, $modifiers.modifiers);})
+ | {assert $name != null; GrammarActions.fieldOrAnyMember(classSpec, $annotation.annotSpec, typeSig, $name.text, $modifiers.modifiers, $name.getInputStream());})
| '<methods>' {GrammarActions.method(classSpec, $annotation.annotSpec,
- GrammarActions.getSignature("***", 0), "*", "\\("+ GrammarActions.getSignature("...", 0) + "\\)",
+ GrammarActions.getSourceNamePattern("***", 0), "*", "\\("+ GrammarActions.getSourceNamePattern("...", 0) + "\\)",
$modifiers.modifiers);}
- | '<fields>' {GrammarActions.field(classSpec, $annotation.annotSpec, null, "*", $modifiers.modifiers);}
+ | fields='<fields>' {GrammarActions.field(classSpec, $annotation.annotSpec, null, "*", $modifiers.modifiers, $fields.getInputStream());}
) ';'
;
@@ -261,20 +261,20 @@
'(' {signature = "\\(";}
(
(
- parameterSig=type {signature += parameterSig;}
- (',' parameterSig=type {signature += parameterSig;})*
+ parameterSig=type {signature += $parameterSig.typeSourceNamePattern;}
+ (',' parameterSig=type {signature += ", " + $parameterSig.typeSourceNamePattern;})*
)?
)
')' {signature += "\\)";}
;
-private type returns [String signature]
+private type returns [String typeSourceNamePattern]
@init {
int dim = 0;
}
:
(
- typeName=('%' | NAME) ('[]' {dim++;})* {String sig = $typeName.text; signature = GrammarActions.getSignature(sig == null ? "" : sig, dim);}
+ typeName=('%' | NAME) ('[]' {dim++;})* {String sig = $typeName.text; typeSourceNamePattern = GrammarActions.getSourceNamePattern(sig == null ? "" : sig, dim);}
)
;
diff --git a/jack/src/com/android/jack/shrob/proguard/ProguardFileParsingException.java b/jack/src/com/android/jack/shrob/proguard/ProguardFileParsingException.java
index 981ef07..47b559f 100644
--- a/jack/src/com/android/jack/shrob/proguard/ProguardFileParsingException.java
+++ b/jack/src/com/android/jack/shrob/proguard/ProguardFileParsingException.java
@@ -21,7 +21,7 @@
import javax.annotation.Nonnull;
/**
- * This exception is thrown if a problem occured when attempting to parse
+ * This exception is thrown if a problem occurred when attempting to parse
* a proguard flags file.
*/
public class ProguardFileParsingException extends ConfigurationException {
diff --git a/jack/src/com/android/jack/shrob/spec/ClassSpecification.java b/jack/src/com/android/jack/shrob/spec/ClassSpecification.java
index b5b9b8e..2678a07 100644
--- a/jack/src/com/android/jack/shrob/spec/ClassSpecification.java
+++ b/jack/src/com/android/jack/shrob/spec/ClassSpecification.java
@@ -185,7 +185,7 @@
sb.append('\n');
}
- sb.append("}");
+ sb.append('}');
return sb.toString();
}
diff --git a/jack/src/com/android/jack/shrob/spec/FieldSpecification.java b/jack/src/com/android/jack/shrob/spec/FieldSpecification.java
index 3b01752..5fc8427 100644
--- a/jack/src/com/android/jack/shrob/spec/FieldSpecification.java
+++ b/jack/src/com/android/jack/shrob/spec/FieldSpecification.java
@@ -65,7 +65,7 @@
}
if (type != null
- && !type.matches(GrammarActions.getSignatureFormatter().getName(f.getType()))) {
+ && !type.matches(GrammarActions.getSourceFormatter().getName(f.getType()))) {
return false;
}
diff --git a/jack/src/com/android/jack/shrob/spec/Flags.java b/jack/src/com/android/jack/shrob/spec/Flags.java
index 969adfd..b654c51 100644
--- a/jack/src/com/android/jack/shrob/spec/Flags.java
+++ b/jack/src/com/android/jack/shrob/spec/Flags.java
@@ -16,6 +16,9 @@
package com.android.jack.shrob.spec;
+import com.android.jack.ir.ast.JClassOrInterface;
+import com.android.jack.shrob.proguard.GrammarActions;
+
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -391,4 +394,10 @@
public List<FilterSpecification> getAdaptResourceFileContents() {
return adaptResourceFileContents;
}
+
+ public static boolean acceptClass(@Nonnull JClassOrInterface type,
+ @Nonnull List<FilterSpecification> specs) {
+ return specs.stream()
+ .anyMatch(x -> x.matches(GrammarActions.getSourceFormatter().getName(type)));
+ }
}
\ No newline at end of file
diff --git a/jack/src/com/android/jack/shrob/spec/MethodSpecification.java b/jack/src/com/android/jack/shrob/spec/MethodSpecification.java
index 63d2c29..9ad6790 100644
--- a/jack/src/com/android/jack/shrob/spec/MethodSpecification.java
+++ b/jack/src/com/android/jack/shrob/spec/MethodSpecification.java
@@ -34,16 +34,21 @@
@CheckForNull
private final ModifierSpecification modifier;
+ @CheckForNull
+ private final NameSpecification type;
+
@Nonnull
- private final NameSpecification sigPattern;
+ private final NameSpecification fullSourceName;
public MethodSpecification(
@Nonnull NameSpecification sigPattern,
@CheckForNull ModifierSpecification modifier,
+ @CheckForNull NameSpecification type,
@CheckForNull AnnotationSpecification annotationType) {
- this.sigPattern = sigPattern;
+ this.fullSourceName = sigPattern;
this.modifier = modifier;
this.annotationType = annotationType;
+ this.type = type;
}
@Override
@@ -56,20 +61,26 @@
return false;
}
- String signature = GrammarActions.getSignatureFormatter().getName(t);
+ if (type != null
+ && !type.matches(GrammarActions.getSourceFormatter().getName(t.getType()))) {
+ return false;
+ }
+
+ String signature =
+ GrammarActions.getSourceFormatter().getNameWithoutReturnType(t.getMethodIdWide());
if (t instanceof JConstructor) {
String methodName = signature.replace(NamingTools.INIT_NAME, t.getEnclosingType().getName());
- if (sigPattern.matches(methodName)) {
+ if (fullSourceName.matches(methodName)) {
return true;
}
methodName = signature.replace(NamingTools.INIT_NAME,
GrammarActions.getSourceFormatter().getName(t.getEnclosingType()));
- if (sigPattern.matches(methodName)) {
+ if (fullSourceName.matches(methodName)) {
return true;
}
}
- return sigPattern.matches(signature);
+ return fullSourceName.matches(signature);
}
@Override
@@ -87,7 +98,12 @@
sb.append(' ');
}
- sb.append(sigPattern);
+ if (type != null) {
+ sb.append(type);
+ sb.append(' ');
+ }
+
+ sb.append(fullSourceName);
sb.append(';');
return sb.toString();
diff --git a/jack/src/com/android/jack/tools/merger/JackMerger.java b/jack/src/com/android/jack/tools/merger/JackMerger.java
index a28cd97..5da082f 100644
--- a/jack/src/com/android/jack/tools/merger/JackMerger.java
+++ b/jack/src/com/android/jack/tools/merger/JackMerger.java
@@ -34,6 +34,8 @@
import com.android.jack.dx.rop.type.StdTypeList;
import com.android.jack.dx.rop.type.Type;
import com.android.jack.dx.rop.type.TypeList;
+import com.android.sched.util.file.CannotWriteException;
+import com.android.sched.util.location.HasLocation;
import java.io.IOException;
import java.io.OutputStream;
@@ -142,13 +144,18 @@
}
}
- public void finish(@Nonnull OutputStream out) throws IOException {
+ public void finish(@Nonnull OutputStream out, @Nonnull HasLocation locationProvider)
+ throws CannotWriteException {
dexResult.prepare(cstManager.getCstStrings(), cstManager.getCstFieldRefs(),
cstManager.getCstMethodRefs(), cstManager.getTypes(), cstManager.getCstPrototypeRefs());
if (!cstManager.validate(dexResult)) {
throw new AssertionError();
}
- dexResult.writeTo(out, null /* humanOut */, false /* verbose */);
+ try {
+ dexResult.writeTo(out, null /* humanOut */, false /* verbose */);
+ } catch (IOException e) {
+ throw new CannotWriteException(locationProvider);
+ }
finished = true;
}
diff --git a/jack/src/com/android/jack/transformations/ast/BoostLockedRegionPriority.java b/jack/src/com/android/jack/transformations/ast/BoostLockedRegionPriority.java
index 5475792..a42d235 100644
--- a/jack/src/com/android/jack/transformations/ast/BoostLockedRegionPriority.java
+++ b/jack/src/com/android/jack/transformations/ast/BoostLockedRegionPriority.java
@@ -213,6 +213,7 @@
}
JStatementList list = (JStatementList) jLock.getParent();
+ assert list != null;
int index = list.getStatements().indexOf(jLock) + 1;
if (index >= list.getStatements().size()) {
abortPass();
diff --git a/jack/src/com/android/jack/transformations/ast/ConcatRemover.java b/jack/src/com/android/jack/transformations/ast/ConcatRemover.java
index d37dea4..2edb69e 100644
--- a/jack/src/com/android/jack/transformations/ast/ConcatRemover.java
+++ b/jack/src/com/android/jack/transformations/ast/ConcatRemover.java
@@ -116,9 +116,10 @@
if (binary instanceof JConcatOperation) {
TransformationRequest tr = new TransformationRequest(method);
SourceInfo sourceInfo = binary.getSourceInfo();
- JNode parent = binary.getParent();
- if (isReplaceableAppend(parent)) {
- JMethodCall toReplace = (JMethodCall) parent;
+ final JNode binaryParent = binary.getParent();
+ assert binaryParent != null;
+ if (isReplaceableAppend(binaryParent)) {
+ JMethodCall toReplace = (JMethodCall) binaryParent;
JExpression instance = toReplace.getInstance();
assert instance != null;
diff --git a/jack/src/com/android/jack/transformations/ast/SideEffectExtractor.java b/jack/src/com/android/jack/transformations/ast/SideEffectExtractor.java
index 88050e5..b89bdb8 100644
--- a/jack/src/com/android/jack/transformations/ast/SideEffectExtractor.java
+++ b/jack/src/com/android/jack/transformations/ast/SideEffectExtractor.java
@@ -23,6 +23,7 @@
import com.android.jack.ir.ast.JLocal;
import com.android.jack.ir.ast.JLocalRef;
import com.android.jack.ir.ast.JMultiExpression;
+import com.android.jack.ir.ast.JNode;
import com.android.jack.ir.ast.JParameter;
import com.android.jack.ir.ast.JParameterRef;
import com.android.jack.ir.sourceinfo.SourceInfo;
@@ -87,7 +88,9 @@
if (!extracted.isEmpty()) {
extracted.add((JExpression) ref.getParent());
JMultiExpression multiExpression = new JMultiExpression(sourceInfo, extracted);
- tr.append(new Replace(ref.getParent(), multiExpression));
+ final JNode parent = ref.getParent();
+ assert parent != null;
+ tr.append(new Replace(parent, multiExpression));
}
return new JFieldRef(sourceInfo, newInstance, ref.getFieldId(), ref.getReceiverType());
@@ -105,7 +108,9 @@
if (!extracted.isEmpty()) {
extracted.add((JExpression) ref.getParent());
JMultiExpression multiExpression = new JMultiExpression(sourceInfo, extracted);
- tr.append(new Replace(ref.getParent(), multiExpression));
+ final JNode parent = ref.getParent();
+ assert parent != null;
+ tr.append(new Replace(parent, multiExpression));
}
assert newInstance != null;
diff --git a/jack/src/com/android/jack/transformations/ast/SynchronizeTransformer.java b/jack/src/com/android/jack/transformations/ast/SynchronizeTransformer.java
index 0a7cf3f..3b33935 100644
--- a/jack/src/com/android/jack/transformations/ast/SynchronizeTransformer.java
+++ b/jack/src/com/android/jack/transformations/ast/SynchronizeTransformer.java
@@ -74,6 +74,7 @@
@Constraint(need = {NoImplicitBlock.class})
@Transform(remove = {JSynchronizedBlock.class, ThreeAddressCodeForm.class}, add = {JBlock.class,
JTryStatement.class,
+ JTryStatement.FinallyBlock.class,
JLock.class,
JUnlock.class,
JLocalRef.class,
diff --git a/jack/src/com/android/jack/transformations/ast/inner/InnerAccessorGenerator.java b/jack/src/com/android/jack/transformations/ast/inner/InnerAccessorGenerator.java
index cb9ac87..101cbbf 100644
--- a/jack/src/com/android/jack/transformations/ast/inner/InnerAccessorGenerator.java
+++ b/jack/src/com/android/jack/transformations/ast/inner/InnerAccessorGenerator.java
@@ -304,6 +304,7 @@
// this.this$0.field = $value => $set<id>(this.this$0, $value)
JBinaryOperation binOp = (JBinaryOperation) fieldRef.getParent();
+ assert binOp != null;
JMethodId setterId = setter.getMethodId();
JMethodCall setterCall = new JMethodCall(binOp.getSourceInfo(), null, accessorClass, setterId,
diff --git a/jack/src/com/android/jack/transformations/ast/removeinit/FieldInitMethodCallRemover.java b/jack/src/com/android/jack/transformations/ast/removeinit/FieldInitMethodCallRemover.java
index d19223b..b9feea0 100644
--- a/jack/src/com/android/jack/transformations/ast/removeinit/FieldInitMethodCallRemover.java
+++ b/jack/src/com/android/jack/transformations/ast/removeinit/FieldInitMethodCallRemover.java
@@ -25,6 +25,7 @@
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JMethodBody;
import com.android.jack.ir.ast.JMethodCall;
+import com.android.jack.ir.ast.JNode;
import com.android.jack.ir.ast.JPrimitiveType.JPrimitiveTypeEnum;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.lookup.JMethodLookupException;
@@ -92,12 +93,14 @@
assert body instanceof JMethodBody;
JBlock varInitMethodBLock = ((JMethodBody) body).getBlock();
+ final JNode methodCallParent = methodCall.getParent();
+ assert methodCallParent != null;
if (varInitMethodBLock.getStatements().isEmpty()) {
- tr.append(new Remove(methodCall.getParent()));
+ tr.append(new Remove(methodCallParent));
} else {
CloneStatementVisitor csv = new CloneStatementVisitor(tr,
methodCall.getParent(JMethod.class));
- tr.append(new Replace(methodCall.getParent(), csv.cloneStatement(varInitMethodBLock)));
+ tr.append(new Replace(methodCallParent, csv.cloneStatement(varInitMethodBLock)));
}
}
super.endVisit(methodCall);
diff --git a/jack/src/com/android/jack/transformations/ast/string/FieldStringLiteralRefiner.java b/jack/src/com/android/jack/transformations/ast/string/FieldStringLiteralRefiner.java
index 7a7aab0..c60f8b9 100644
--- a/jack/src/com/android/jack/transformations/ast/string/FieldStringLiteralRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/FieldStringLiteralRefiner.java
@@ -16,14 +16,20 @@
package com.android.jack.transformations.ast.string;
+import com.android.jack.Options;
import com.android.jack.ir.ast.JField;
import com.android.jack.ir.ast.JSession;
+import com.android.jack.shrob.spec.FilterSpecification;
+import com.android.jack.shrob.spec.Flags;
import com.android.jack.transformations.request.TransformationRequest;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
import com.android.sched.schedulable.Use;
+import com.android.sched.util.config.ThreadConfig;
+
+import java.util.List;
import javax.annotation.Nonnull;
@@ -33,16 +39,22 @@
@Description("Refine JStringLiteral in fields into more specific string literals.")
@Use(StringLiteralRefinerVisitor.class)
@Transform(add = StringLiteralRefined.Field.class)
-// Uses StringLiteralRefinerVisitor which lookup types.
+// Uses StringLiteralRefinerVisitor which looks up types.
@Access(JSession.class)
public class FieldStringLiteralRefiner implements RunnableSchedulable<JField> {
+ @Nonnull
+ private final List<FilterSpecification> adaptClassStrings =
+ ThreadConfig.get(Options.FLAGS).getAdaptClassStrings();
+
@Override
public void run(@Nonnull JField field) {
- TransformationRequest tr = new TransformationRequest(field);
- StringLiteralRefinerVisitor visitor = new StringLiteralRefinerVisitor(tr);
- visitor.accept(field);
- tr.commit();
+ if (Flags.acceptClass(field.getEnclosingType(), adaptClassStrings)) {
+ TransformationRequest tr = new TransformationRequest(field);
+ StringLiteralRefinerVisitor visitor = new StringLiteralRefinerVisitor(tr);
+ visitor.accept(field);
+ tr.commit();
+ }
}
}
diff --git a/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java b/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java
index 0cc57c2..f3c02ed 100644
--- a/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java
@@ -16,14 +16,20 @@
package com.android.jack.transformations.ast.string;
+import com.android.jack.Options;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JSession;
+import com.android.jack.shrob.spec.FilterSpecification;
+import com.android.jack.shrob.spec.Flags;
import com.android.jack.transformations.request.TransformationRequest;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
import com.android.sched.schedulable.Use;
+import com.android.sched.util.config.ThreadConfig;
+
+import java.util.List;
import javax.annotation.Nonnull;
@@ -32,16 +38,23 @@
*/
@Description("Refine JStringLiteral in methods into more specific string literals.")
@Use(StringLiteralRefinerVisitor.class)
+// Uses StringLiteralRefinerVisitor which looks up types.
@Access(JSession.class)
@Transform(add = StringLiteralRefined.Method.class)
public class MethodStringLiteralRefiner implements RunnableSchedulable<JMethod> {
+ @Nonnull
+ private final List<FilterSpecification> adaptClassStrings =
+ ThreadConfig.get(Options.FLAGS).getAdaptClassStrings();
+
@Override
public void run(@Nonnull JMethod method) {
- TransformationRequest tr = new TransformationRequest(method);
- StringLiteralRefinerVisitor visitor = new StringLiteralRefinerVisitor(tr);
- visitor.accept(method);
- tr.commit();
+ if (Flags.acceptClass(method.getEnclosingType(), adaptClassStrings)) {
+ TransformationRequest tr = new TransformationRequest(method);
+ StringLiteralRefinerVisitor visitor = new StringLiteralRefinerVisitor(tr);
+ visitor.accept(method);
+ tr.commit();
+ }
}
}
diff --git a/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java b/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java
index 5c2f03d..cbefc39 100644
--- a/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java
@@ -65,6 +65,7 @@
AtomicReferenceUpdaterParameterRefiner.class,
GetMethodParameterRefiner.class,
GetDeclaredMethodParameterRefiner.class})
+// Uses refiners which look up types.
@Access(JSession.class)
public class ReflectionStringLiteralRefiner implements RunnableSchedulable<JMethod> {
diff --git a/jack/src/com/android/jack/transformations/ast/string/StringLiteralRefinerVisitor.java b/jack/src/com/android/jack/transformations/ast/string/StringLiteralRefinerVisitor.java
index 7761df3..c9c493b 100644
--- a/jack/src/com/android/jack/transformations/ast/string/StringLiteralRefinerVisitor.java
+++ b/jack/src/com/android/jack/transformations/ast/string/StringLiteralRefinerVisitor.java
@@ -62,16 +62,16 @@
@Override
public boolean visit(@Nonnull JStringLiteral stringLiteral) {
String strValue = stringLiteral.getValue();
- boolean hasDot = strValue.contains(".");
- boolean hasSlash = strValue.contains("/");
+ boolean hasDot = strValue.indexOf('.') != -1;
+ boolean hasSlash = strValue.indexOf('/') != -1;
if (hasDot && hasSlash) {
// String mixing '.' and '/' is not considered as type.
return false;
}
-
- JType type = getTypeFromString(strValue);
+ String signatureName = getSignatureName(strValue);
+ JType type = getTypeFromSignature(signatureName);
if (type != null) {
tr.append(new Replace(stringLiteral, new JTypeStringLiteral(stringLiteral.getSourceInfo(),
hasDot ? Kind.SRC_QN : Kind.BINARY_QN, type)));
@@ -80,8 +80,7 @@
}
@CheckForNull
- private JType getTypeFromString(@Nonnull String str) {
- String signatureName = getSignatureName(str);
+ private JType getTypeFromSignature(@Nonnull String signatureName) {
if (NamingTools.isTypeDescriptor(signatureName)) {
try {
JType type = lookup.getType(signatureName);
diff --git a/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java b/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java
index 81ea40c..107e691 100644
--- a/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java
@@ -16,14 +16,20 @@
package com.android.jack.transformations.ast.string;
+import com.android.jack.Options;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
import com.android.jack.ir.ast.JSession;
+import com.android.jack.shrob.spec.FilterSpecification;
+import com.android.jack.shrob.spec.Flags;
import com.android.jack.transformations.request.TransformationRequest;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
import com.android.sched.schedulable.Use;
+import com.android.sched.util.config.ThreadConfig;
+
+import java.util.List;
import javax.annotation.Nonnull;
@@ -32,16 +38,23 @@
*/
@Description("Refine JStringLiteral in types into more specific string literals.")
@Use(StringLiteralRefinerVisitor.class)
+// Uses StringLiteralRefinerVisitor which looks up types.
@Access(JSession.class)
@Transform(add = StringLiteralRefined.Type.class)
public class TypeStringLiteralRefiner implements RunnableSchedulable<JDefinedClassOrInterface> {
+ @Nonnull
+ private final List<FilterSpecification> adaptClassStrings =
+ ThreadConfig.get(Options.FLAGS).getAdaptClassStrings();
+
@Override
public void run(@Nonnull JDefinedClassOrInterface type) {
- TransformationRequest tr = new TransformationRequest(type);
- StringLiteralRefinerVisitor visitor = new StringLiteralRefinerVisitor(tr);
- visitor.accept(type);
- tr.commit();
+ if (Flags.acceptClass(type, adaptClassStrings)) {
+ TransformationRequest tr = new TransformationRequest(type);
+ StringLiteralRefinerVisitor visitor = new StringLiteralRefinerVisitor(tr);
+ visitor.accept(type.getAnnotations());
+ tr.commit();
+ }
}
}
diff --git a/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/ForNameParameterRefiner.java b/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/ForNameParameterRefiner.java
index 346bf9e..91ec8f1 100644
--- a/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/ForNameParameterRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/ForNameParameterRefiner.java
@@ -79,11 +79,11 @@
JType type;
JTypeStringLiteral strTypeLiteral = null;
- if (typeName.contains("/")) {
+ if (typeName.indexOf('/') != -1) {
return null;
}
- if (typeName.startsWith("[")) {
+ if (typeName.charAt(0) == '[') {
typeSignature = NamingTools.getBinaryName(typeName);
} else {
typeSignature = NamingTools.getTypeSignatureName(typeName);
diff --git a/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/GetMethodParameterRefiner.java b/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/GetMethodParameterRefiner.java
index f16caa0..236c28b 100644
--- a/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/GetMethodParameterRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/parameterrefiners/GetMethodParameterRefiner.java
@@ -130,7 +130,7 @@
if (parameters instanceof JNewArray) {
StringBuilder sb = new StringBuilder(methodName);
- sb.append("(");
+ sb.append('(');
for (JExpression param : ((JNewArray) parameters).getInitializers()) {
if (param instanceof JClassLiteral) {
sb.append(Jack.getLookupFormatter().getName(((JClassLiteral) param).getRefType()));
@@ -139,7 +139,7 @@
}
}
- sb.append(")");
+ sb.append(')');
return sb.toString();
}
diff --git a/jack/src/com/android/jack/transformations/enums/opt/SyntheticClassManager.java b/jack/src/com/android/jack/transformations/enums/opt/SyntheticClassManager.java
index 6b08ecc..be6bba0 100644
--- a/jack/src/com/android/jack/transformations/enums/opt/SyntheticClassManager.java
+++ b/jack/src/com/android/jack/transformations/enums/opt/SyntheticClassManager.java
@@ -364,14 +364,14 @@
sortedEnumType.getMarker(EnumFieldMarker.class);
assert enumFieldMarker != null;
sb.append(Jack.getLookupFormatter().getName(sortedEnumType));
- sb.append(":");
+ sb.append(':');
enumFieldMarker.sortEnumFields();
List<JEnumField> sortedEnumFields = enumFieldMarker.getEnumFields();
for (JEnumField enumField : sortedEnumFields) {
sb.append(enumField.getName());
- sb.append(",");
+ sb.append(',');
}
- sb.append(".");
+ sb.append('.');
}
String sig = sb.toString();
sb.delete(0, sb.length());
diff --git a/jack/src/com/android/jack/transformations/finallyblock/FinallyRemover.java b/jack/src/com/android/jack/transformations/finallyblock/FinallyRemover.java
index 0e253c5..6367c0c 100644
--- a/jack/src/com/android/jack/transformations/finallyblock/FinallyRemover.java
+++ b/jack/src/com/android/jack/transformations/finallyblock/FinallyRemover.java
@@ -268,6 +268,7 @@
// Find the previous try statement which will catch exceptions.
while (!(stmt instanceof JTryStatement) && !(stmt instanceof JMethodBody)) {
+ assert stmt != null;
previous = stmt;
stmt = stmt.getParent();
}
@@ -402,6 +403,7 @@
private boolean isBranchingOutsideOfTryStatement(@Nonnull JGoto gotoStatement) {
JNode parent = gotoStatement.getTargetBlock().getParent();
while (parent != tryStmt && !(parent instanceof JMethodBody)) {
+ assert parent != null;
parent = parent.getParent();
}
if (parent == tryStmt) {
diff --git a/jack/src/com/android/jack/transformations/lambda/LambdaCollection.java b/jack/src/com/android/jack/transformations/lambda/LambdaCollection.java
index b1e3e4e..1882659 100644
--- a/jack/src/com/android/jack/transformations/lambda/LambdaCollection.java
+++ b/jack/src/com/android/jack/transformations/lambda/LambdaCollection.java
@@ -45,11 +45,11 @@
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
-import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
/**
@@ -214,14 +214,14 @@
* </pre>
*/
void createLambdaClassGroups(@Nonnull JSession session) {
- int nextId = 0;
// Create a map sorted by key to ensure a stable order
// of the created lambda group classes
+ Map<String, Integer> typeHashConflicts = new HashMap<>();
TreeMap<Key, ConcurrentHashMap<String, JLambda>> sorted = new TreeMap<>(lambdaClassSets);
for (Map.Entry<Key, ConcurrentHashMap<String, JLambda>> entry : sorted.entrySet()) {
// Create a group class to represent lambda group
- JDefinedClass groupClass = createGroupClass(
- nextId++, session, entry.getKey().pkg, getLambdaTypesHash(entry.getValue().values()));
+ JDefinedClass groupClass = createGroupClass(session, entry.getKey().pkg,
+ getLambdaTypesHash(entry.getValue().values()), typeHashConflicts);
LambdaGroup lambdaGroup = new LambdaGroup(
entry.getValue(), groupClass, entry.getKey().captureSignature);
@@ -248,16 +248,28 @@
digest.update(name.getBytes(StandardCharsets.UTF_8));
digest.update((byte) 0);
}
- return BaseEncoding.base64Url().omitPadding().encode(digest.digest());
+ String encode = BaseEncoding.base64Url().omitPadding().encode(digest.digest());
+ assert encode != null;
+ return encode;
}
@Nonnull
- private JDefinedClass createGroupClass(@Nonnegative int id,
- @Nonnull JSession session, @Nonnull JPackage pkg, @Nonnull String typesHash) {
+ private JDefinedClass createGroupClass(@Nonnull JSession session, @Nonnull JPackage pkg,
+ @Nonnull String typesHash, @Nonnull Map<String, Integer> typeHashConflicts) {
+ String lambdaClassName =
+ NamingTools.getNonSourceConflictingName(LAMBDA_GROUP_CLASS_NAME_PREFIX + typesHash);
+ Integer count = typeHashConflicts.get(typesHash);
+ if (count == null) {
+ typeHashConflicts.put(typesHash, Integer.valueOf(0));
+ } else {
+ int nextId = count.intValue() + 1;
+ lambdaClassName += "$" + nextId;
+ typeHashConflicts.put(typesHash, Integer.valueOf(nextId));
+ }
+
// Create a class
- JDefinedClass groupClass = new JDefinedClass(SourceInfo.UNKNOWN,
- NamingTools.getNonSourceConflictingName(
- LAMBDA_GROUP_CLASS_NAME_PREFIX + id + "$" + typesHash),
+ JDefinedClass groupClass = new JDefinedClass(
+ SourceInfo.UNKNOWN, lambdaClassName,
JModifier.FINAL | JModifier.SYNTHETIC,
pkg, NopClassOrInterfaceLoader.INSTANCE);
groupClass.setSuperClass(javaLangObject);
diff --git a/jack/src/com/android/jack/transformations/request/AddNameValuePair.java b/jack/src/com/android/jack/transformations/request/AddNameValuePair.java
index 3c6fafd..cfa97d4 100644
--- a/jack/src/com/android/jack/transformations/request/AddNameValuePair.java
+++ b/jack/src/com/android/jack/transformations/request/AddNameValuePair.java
@@ -18,6 +18,7 @@
import com.android.jack.ir.ast.JAnnotation;
import com.android.jack.ir.ast.JNameValuePair;
+import com.android.jack.ir.ast.JNode;
import com.android.sched.transform.TransformStep;
import javax.annotation.Nonnull;
@@ -54,12 +55,14 @@
@Override
@Nonnull
public String toString() {
+ JNode annotationParent = annotation.getParent();
+ assert annotationParent != null;
StringBuilder sb = new StringBuilder("Add ");
sb.append(pair.toSource());
sb.append(" in ");
sb.append(annotation.toSource());
sb.append(" on ");
- sb.append(annotation.getParent().toSource());
+ sb.append(annotationParent.toSource());
return sb.toString();
}
}
diff --git a/jack/src/com/android/jack/transformations/request/AppendBefore.java b/jack/src/com/android/jack/transformations/request/AppendBefore.java
index 43969cd..25f6184 100644
--- a/jack/src/com/android/jack/transformations/request/AppendBefore.java
+++ b/jack/src/com/android/jack/transformations/request/AppendBefore.java
@@ -50,21 +50,24 @@
@Override
public void apply() throws UnsupportedOperationException {
- if (existingNode.getParent() == null) {
+ final JNode existingNodeParent = existingNode.getParent();
+ if (existingNodeParent == null) {
throw new UnsupportedOperationException();
}
- existingNode.getParent().insertBefore(existingNode, newNode);
+ existingNodeParent.insertBefore(existingNode, newNode);
}
@Override
@Nonnull
public String toString() {
+ final JNode existingNodeParent = existingNode.getParent();
+ assert existingNodeParent != null;
StringBuilder sb = new StringBuilder("Append ");
sb.append(newNode.toSource());
sb.append(" before ");
sb.append(existingNode.toSource());
sb.append(" in ");
- sb.append(existingNode.getParent().toSource());
+ sb.append(existingNodeParent.toSource());
return sb.toString();
}
diff --git a/jack/src/com/android/jack/transformations/request/PrependAfter.java b/jack/src/com/android/jack/transformations/request/PrependAfter.java
index 1b49e46..32b7903 100644
--- a/jack/src/com/android/jack/transformations/request/PrependAfter.java
+++ b/jack/src/com/android/jack/transformations/request/PrependAfter.java
@@ -50,21 +50,24 @@
@Override
public void apply() throws UnsupportedOperationException {
- if (existingNode.getParent() == null) {
+ final JNode existingNodeParent = existingNode.getParent();
+ if (existingNodeParent == null) {
throw new UnsupportedOperationException();
}
- existingNode.getParent().insertAfter(existingNode, newNode);
+ existingNodeParent.insertAfter(existingNode, newNode);
}
@Override
@Nonnull
public String toString() {
+ final JNode existingNodeParent = existingNode.getParent();
+ assert existingNodeParent != null;
StringBuilder sb = new StringBuilder("Prepend ");
sb.append(newNode.toSource());
sb.append(" after ");
sb.append(existingNode.toSource());
sb.append(" in ");
- sb.append(existingNode.getParent().toSource());
+ sb.append(existingNodeParent.toSource());
return sb.toString();
}
diff --git a/jack/src/com/android/jack/transformations/request/PutNameValuePair.java b/jack/src/com/android/jack/transformations/request/PutNameValuePair.java
index 5c98e49..aef0557 100644
--- a/jack/src/com/android/jack/transformations/request/PutNameValuePair.java
+++ b/jack/src/com/android/jack/transformations/request/PutNameValuePair.java
@@ -18,6 +18,7 @@
import com.android.jack.ir.ast.JAnnotation;
import com.android.jack.ir.ast.JNameValuePair;
+import com.android.jack.ir.ast.JNode;
import javax.annotation.Nonnull;
@@ -54,12 +55,14 @@
@Override
@Nonnull
public String toString() {
+ final JNode annotationParent = annotation.getParent();
+ assert annotationParent != null;
StringBuilder sb = new StringBuilder("Put ");
sb.append(pair.toSource());
sb.append(" in ");
sb.append(annotation.toSource());
sb.append(" on ");
- sb.append(annotation.getParent().toSource());
+ sb.append(annotationParent.toSource());
return sb.toString();
}
}
diff --git a/jack/src/com/android/jack/transformations/request/Remove.java b/jack/src/com/android/jack/transformations/request/Remove.java
index 6dd2ccb..61b9941 100644
--- a/jack/src/com/android/jack/transformations/request/Remove.java
+++ b/jack/src/com/android/jack/transformations/request/Remove.java
@@ -41,18 +41,21 @@
@Override
public void apply() throws UnsupportedOperationException {
- if (node.getParent() == null) {
+ final JNode parent = node.getParent();
+ if (parent == null) {
throw new UnsupportedOperationException();
}
- node.getParent().remove(node);
+ parent.remove(node);
}
@Override
public String toString() {
+ final JNode parent = node.getParent();
+ assert parent != null;
StringBuilder sb = new StringBuilder("Remove ");
sb.append(node.toSource());
sb.append(" in ");
- sb.append(node.getParent().toSource());
+ sb.append(parent.toSource());
return sb.toString();
}
diff --git a/jack/src/com/android/jack/transformations/request/Replace.java b/jack/src/com/android/jack/transformations/request/Replace.java
index 57a2e4f..d766999 100644
--- a/jack/src/com/android/jack/transformations/request/Replace.java
+++ b/jack/src/com/android/jack/transformations/request/Replace.java
@@ -48,21 +48,24 @@
@Override
public void apply() throws UnsupportedOperationException {
- if (existingNode.getParent() == null) {
+ final JNode existingNodeParent = existingNode.getParent();
+ if (existingNodeParent == null) {
throw new UnsupportedOperationException();
}
- existingNode.getParent().replace(existingNode, newNode);
+ existingNodeParent.replace(existingNode, newNode);
}
@Override
@Nonnull
public String toString() {
+ final JNode existingNodeParent = existingNode.getParent();
+ assert existingNodeParent != null;
StringBuilder sb = new StringBuilder("Replace ");
sb.append(existingNode.toSource());
sb.append(" with ");
sb.append(newNode.toSource());
sb.append(" in ");
- sb.append(existingNode.getParent().toSource());
+ sb.append(existingNodeParent.toSource());
return sb.toString();
}
}
diff --git a/jack/src/com/android/jack/transformations/threeaddresscode/ThreeAddressCodeChecker.java b/jack/src/com/android/jack/transformations/threeaddresscode/ThreeAddressCodeChecker.java
index e138738..cff840f 100644
--- a/jack/src/com/android/jack/transformations/threeaddresscode/ThreeAddressCodeChecker.java
+++ b/jack/src/com/android/jack/transformations/threeaddresscode/ThreeAddressCodeChecker.java
@@ -26,6 +26,7 @@
import com.android.jack.ir.ast.JLocalRef;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JMethodCall;
+import com.android.jack.ir.ast.JNode;
import com.android.jack.ir.ast.JParameterRef;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.transformations.SanityChecks;
@@ -74,7 +75,9 @@
}
private static void throwError(@Nonnull JExpression expr) {
- throw new AssertionError(expr.getParent().toSource() + " is not three address code.");
+ final JNode parent = expr.getParent();
+ assert parent != null;
+ throw new AssertionError(parent.toSource() + " is not three address code.");
}
private boolean isValidExpressionForTac(@Nonnull JExpression expr) {
diff --git a/jack/tests/com/android/jack/AllUnitTests.java b/jack/tests/com/android/jack/AllUnitTests.java
index 9042487..b0af5fb 100644
--- a/jack/tests/com/android/jack/AllUnitTests.java
+++ b/jack/tests/com/android/jack/AllUnitTests.java
@@ -20,7 +20,7 @@
import com.android.jack.ir.ast.JDefinedInterfaceTest;
import com.android.jack.ir.ast.MarkerCollectorTest;
import com.android.jack.ir.impl.ReferenceMapperTest;
-import com.android.jack.jayce.v0002.io.EscapeStringTest;
+import com.android.jack.jayce.v0004.io.EscapeStringTest;
import com.android.jack.optimizations.ExpressionSimplifierTest;
import com.android.jack.optimizations.tailrecursion.TailRecursionTest;
import com.android.jack.preprocessor.PreProcessorTest;
diff --git a/jack/tests/com/android/jack/frontend/ClinitTest.java b/jack/tests/com/android/jack/frontend/ClinitTest.java
index 7f4fac0..f88725e 100644
--- a/jack/tests/com/android/jack/frontend/ClinitTest.java
+++ b/jack/tests/com/android/jack/frontend/ClinitTest.java
@@ -36,9 +36,9 @@
public class ClinitTest {
public static final String CLASS_WITH_VARIABLE_INIT_BINARY_NAME
- = "com/android/jack/clinit/jack/ClInitWithVariableInit";
+ = "com/android/jack/clinit/test001/jack/ClInitWithVariableInit";
public static final String CLASS_BINARY_NAME
- = "com/android/jack/clinit/jack/ClInit";
+ = "com/android/jack/clinit/test001/jack/ClInit";
@After
public void tearDown() {
diff --git a/jack/tests/com/android/jack/jayce/v0003/io/EscapeStringTest.java b/jack/tests/com/android/jack/jayce/v0003/io/EscapeStringTest.java
deleted file mode 100644
index 8ee4e46..0000000
--- a/jack/tests/com/android/jack/jayce/v0003/io/EscapeStringTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack.jayce.v0003.io;
-
-import com.android.jack.IllegalOptionsException;
-import com.android.jack.Options;
-import com.android.jack.TestTools;
-import com.android.sched.util.RunnableHooks;
-import com.android.sched.util.config.ConfigurationException;
-import com.android.sched.util.config.ThreadConfig;
-import com.android.sched.util.file.CannotChangePermissionException;
-import com.android.sched.util.file.CannotCreateFileException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import javax.annotation.Nonnull;
-
-public class EscapeStringTest {
-
- @Test
- public void test001() throws Exception {
- String string = "abcd";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test002() throws Exception {
- String string = "ab\"cd\"";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test003() throws Exception {
- String string = "ab'cd'";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test004() throws Exception {
- String string = "ab\tcd";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test005() throws Exception {
- String string = "ab\rcd";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test006() throws Exception {
- String string = "ab\ncd";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test007() throws Exception {
- String string = "ab\bcd";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test008() throws Exception {
- String string = "ab\fcd";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test009() throws Exception {
- String string = "\"'\\";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test010() throws Exception {
- String string = "[ab]\\b\\\\o5\\xF9\\u1E7B\\t\\n\\f\\r\\a\\e[yz]";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test011() throws Exception {
- String string = "\uD9A0\uDE81*abc";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Test
- public void test012() throws Exception {
- String string = "\uDE81|\uD9A0\uDE81|\uD9A0";
- Assert.assertEquals(string, writeStringAndReadItAfter(string));
- }
-
- @Nonnull
- private String writeStringAndReadItAfter(@Nonnull String stringToWrite) throws IOException,
- IllegalOptionsException, CannotCreateFileException, CannotChangePermissionException {
- File tmp = TestTools.createTempFile("tmp", "");
- RunnableHooks hooks = new RunnableHooks();
- try {
- Options options = new Options();
- options.checkValidity(hooks);
- options.getConfigBuilder(hooks).getCodecContext().setDebug();
- ThreadConfig.setConfig(options.getConfig());
- FileOutputStream fos = new FileOutputStream(tmp);
- JayceInternalWriterImpl jw = new JayceInternalWriterImpl(fos);
- jw.writeString(stringToWrite);
- jw.close();
- FileInputStream fis = new FileInputStream(tmp);
- Tokenizer t = new Tokenizer(fis);
- String result = t.readString();
- fis.close();
- assert result != null;
- return result;
- } catch (ConfigurationException e) {
- throw new AssertionError(e);
- } finally {
- ThreadConfig.unsetConfig();
- hooks.runHooks();
- }
- }
-}
diff --git a/jack/tests/com/android/jack/jayce/v0002/io/EscapeStringTest.java b/jack/tests/com/android/jack/jayce/v0004/io/EscapeStringTest.java
similarity index 90%
rename from jack/tests/com/android/jack/jayce/v0002/io/EscapeStringTest.java
rename to jack/tests/com/android/jack/jayce/v0004/io/EscapeStringTest.java
index 4900be2..011b30f 100644
--- a/jack/tests/com/android/jack/jayce/v0002/io/EscapeStringTest.java
+++ b/jack/tests/com/android/jack/jayce/v0004/io/EscapeStringTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.jack.jayce.v0002.io;
+package com.android.jack.jayce.v0004.io;
import com.android.jack.IllegalOptionsException;
import com.android.jack.Options;
@@ -23,7 +23,11 @@
import com.android.sched.util.config.ConfigurationException;
import com.android.sched.util.config.ThreadConfig;
import com.android.sched.util.file.CannotChangePermissionException;
+import com.android.sched.util.file.CannotCloseException;
import com.android.sched.util.file.CannotCreateFileException;
+import com.android.sched.util.location.FileLocation;
+import com.android.sched.util.location.HasLocation;
+import com.android.sched.util.location.Location;
import junit.framework.Assert;
@@ -113,7 +117,7 @@
@Nonnull
private String writeStringAndReadItAfter(@Nonnull String stringToWrite)
throws CannotCreateFileException, CannotChangePermissionException, IllegalOptionsException,
- IOException {
+ CannotCloseException, IOException {
File tmp = TestTools.createTempFile("tmp", "");
RunnableHooks hooks = new RunnableHooks();
try {
@@ -122,7 +126,13 @@
options.getConfigBuilder(hooks).getCodecContext().setDebug();
ThreadConfig.setConfig(options.getConfig());
FileOutputStream fos = new FileOutputStream(tmp);
- JayceInternalWriterImpl jw = new JayceInternalWriterImpl(fos);
+ JayceInternalWriterImpl jw = new JayceInternalWriterImpl(fos, new HasLocation(){
+ @Override
+ @Nonnull
+ public Location getLocation() {
+ return new FileLocation(tmp);
+ }
+ });
jw.writeString(stringToWrite);
jw.close();
FileInputStream fis = new FileInputStream(tmp);
diff --git a/jill/src/com/android/jill/frontend/java/ClassNodeWriter.java b/jill/src/com/android/jill/frontend/java/ClassNodeWriter.java
index 60d56ba..1114df4 100644
--- a/jill/src/com/android/jill/frontend/java/ClassNodeWriter.java
+++ b/jill/src/com/android/jill/frontend/java/ClassNodeWriter.java
@@ -154,7 +154,6 @@
writeAnnotationMethods(cn);
annotWriter.writeAnnotations(cn);
writer.writeOpenNodeList(); // Markers
- writeGenericSignatureMarker(cn);
writeSourceNameMarker(cn);
writer.writeCloseNodeList();
sourceInfoWriter.writeDebugEnd(cn);
diff --git a/jill/src/com/android/jill/frontend/java/JavaTransformer.java b/jill/src/com/android/jill/frontend/java/JavaTransformer.java
index fcfc082..5fe7cec 100644
--- a/jill/src/com/android/jill/frontend/java/JavaTransformer.java
+++ b/jill/src/com/android/jill/frontend/java/JavaTransformer.java
@@ -50,6 +50,7 @@
import com.android.sched.vfs.VFS;
import com.android.sched.vfs.VPath;
import com.android.sched.vfs.WriteZipFS;
+import com.android.sched.vfs.WrongVFSTypeException;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.tree.ClassNode;
@@ -200,9 +201,15 @@
Service service = mdCodec.parseString(new CodecContext(), "SHA");
try {
- return new GenericOutputVFS(new DeflateFS(new MessageDigestFS(
- new PrefixedFS(baseVFS, new VPath("jayce", '/')), new MessageDigestFactory(service))));
- } catch (NotDirectoryException | CannotCreateFileException | BadVFSFormatException e) {
+ return new GenericOutputVFS(
+ new DeflateFS(
+ new MessageDigestFS(
+ new PrefixedFS(baseVFS, new VPath("jayce", '/'), Existence.MAY_EXIST),
+ new MessageDigestFactory(service))));
+ } catch (NotDirectoryException
+ | CannotCreateFileException
+ | BadVFSFormatException
+ | WrongVFSTypeException e) {
throw new JillException(e);
}
}
diff --git a/jill/src/com/android/jill/frontend/java/MethodBodyWriter.java b/jill/src/com/android/jill/frontend/java/MethodBodyWriter.java
index 401e63a..c4203ac 100644
--- a/jill/src/com/android/jill/frontend/java/MethodBodyWriter.java
+++ b/jill/src/com/android/jill/frontend/java/MethodBodyWriter.java
@@ -262,7 +262,9 @@
}
public void write() throws IOException {
- if (AsmHelper.isAnnotation(currentClass)) {
+ if (AsmHelper.isAnnotation(currentClass)
+ && AsmHelper.isAbstract(currentMethod)
+ && (currentMethod.parameters == null || currentMethod.parameters.isEmpty())) {
writeAnnotationMethod();
} else if (AsmHelper.isConstructor(currentMethod)) {
writeConstructor();
@@ -281,7 +283,7 @@
annotWriter.writeAnnotations(currentMethod);
writeMethodBody();
writer.writeOpenNodeList(); // Markers
- writeOriginalTypeInfoMarker();
+ writeGenericSignatureMarker();
writeThrownExceptionMarker();
writer.writeCloseNodeList();
sourceInfoWriter.writeDebugEnd(currentClass, endLine);
@@ -342,7 +344,7 @@
annotWriter.writeAnnotations(currentMethod);
writeMethodBody();
writer.writeOpenNodeList(); // Markers
- writeOriginalTypeInfoMarker();
+ writeGenericSignatureMarker();
writeThrownExceptionMarker();
writer.writeCloseNodeList();
sourceInfoWriter.writeDebugEnd(currentClass, endLine);
@@ -364,20 +366,18 @@
writer.writeNull();
}
writer.writeOpenNodeList(); // Markers
- writeOriginalTypeInfoMarker();
+ writeGenericSignatureMarker();
writer.writeCloseNodeList();
sourceInfoWriter.writeDebugEnd(currentClass, endLine);
writer.writeClose();
}
- private void writeOriginalTypeInfoMarker() throws IOException {
+ private void writeGenericSignatureMarker() throws IOException {
if (AsmHelper.hasValidGenericSignature(currentMethod)) {
writer.writeKeyword(Token.GENERIC_SIGNATURE);
writer.writeOpen();
writer.writeString(currentMethod.signature);
writer.writeClose();
- } else {
- writer.writeNull();
}
}
@@ -453,7 +453,7 @@
caughtType = Type.getType(Throwable.class);
}
String id = "-e_" + (unusedVarCount++);
- declaringCatchVariable = new Variable(id, id, caughtType, null);
+ declaringCatchVariable = new Variable(id, id, caughtType);
catchBlockToCatchedVariable.put(tryCatchNode, declaringCatchVariable);
}
}
@@ -1118,7 +1118,7 @@
@Nonnull IntInsnNode intInsn) throws IOException {
if (intInsn.getOpcode() == BIPUSH || intInsn.getOpcode() == SIPUSH) {
varWithCstValue.put(getStackVariable(nextFrame, TOP_OF_STACK),
- new Integer(intInsn.operand));
+ Integer.valueOf(intInsn.operand));
return;
}
@@ -1741,7 +1741,7 @@
case ICONST_5: {
assert nextFrame != null;
varWithCstValue.put(getStackVariable(nextFrame, TOP_OF_STACK),
- new Integer(insn.getOpcode() - ICONST_0));
+ Integer.valueOf(insn.getOpcode() - ICONST_0));
break;
}
case ACONST_NULL: {
@@ -1753,7 +1753,7 @@
case LCONST_1: {
assert nextFrame != null;
varWithCstValue.put(getStackVariable(nextFrame, TOP_OF_STACK),
- new Long(insn.getOpcode() - LCONST_0));
+ Long.valueOf(insn.getOpcode() - LCONST_0));
break;
}
case FCONST_0:
@@ -2182,6 +2182,7 @@
// Result of comparison must be pop
cmpOperands.remove(getStackVariable(frame, TOP_OF_STACK));
}
+ removeStackVariableConstant(frame, TOP_OF_STACK);
break;
}
case NOP:
@@ -2197,6 +2198,10 @@
// Result of comparison must be pop
cmpOperands.remove(getStackVariable(frame, TOP_OF_STACK - 1));
}
+ removeStackVariableConstant(frame, TOP_OF_STACK);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 1);
+ } else {
+ removeStackVariableConstant(frame, TOP_OF_STACK);
}
break;
}
@@ -2728,15 +2733,26 @@
private void writeDupX1(@Nonnull Frame<BasicValue> frame, @Nonnull Frame<BasicValue> nextFrame)
throws IOException {
writeAssign(frame, TOP_OF_STACK, nextFrame, TOP_OF_STACK);
+ removeStackVariableConstant(frame, TOP_OF_STACK);
writeAssign(frame, TOP_OF_STACK - 1, nextFrame, TOP_OF_STACK - 1);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 1);
writeAssign(nextFrame, TOP_OF_STACK, nextFrame, TOP_OF_STACK - 2);
}
+ private void removeStackVariableConstant(@Nonnull Frame<BasicValue> frame, int stackIdx) {
+ // Stack level will be erased by an assignment thus it is no longer a constant, it could become
+ // one again if the stack variable read is a constant
+ varWithCstValue.remove(getStackVariable(frame, stackIdx));
+ }
+
private void writeDupX2(@Nonnull Frame<BasicValue> frame, @Nonnull Frame<BasicValue> nextFrame)
throws IOException {
writeAssign(frame, TOP_OF_STACK, nextFrame, TOP_OF_STACK);
+ removeStackVariableConstant(frame, TOP_OF_STACK);
writeAssign(frame, TOP_OF_STACK - 1, nextFrame, TOP_OF_STACK - 1);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 1);
writeAssign(frame, TOP_OF_STACK - 2, nextFrame, TOP_OF_STACK - 2);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 2);
writeAssign(nextFrame, TOP_OF_STACK, nextFrame, TOP_OF_STACK - 3);
}
@@ -2767,8 +2783,11 @@
private void writeDup2X1(@Nonnull Frame<BasicValue> frame, @Nonnull Frame<BasicValue> nextFrame)
throws IOException {
writeAssign(frame, TOP_OF_STACK, nextFrame, TOP_OF_STACK);
+ removeStackVariableConstant(frame, TOP_OF_STACK);
writeAssign(frame, TOP_OF_STACK - 1, nextFrame, TOP_OF_STACK - 1);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 1);
writeAssign(frame, TOP_OF_STACK - 2, nextFrame, TOP_OF_STACK - 2);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 2);
writeAssign(nextFrame, TOP_OF_STACK, nextFrame, TOP_OF_STACK - 3);
writeAssign(nextFrame, TOP_OF_STACK - 1, nextFrame, TOP_OF_STACK - 4);
}
@@ -2776,9 +2795,13 @@
private void writeDup2X2(@Nonnull Frame<BasicValue> frame, @Nonnull Frame<BasicValue> nextFrame)
throws IOException {
writeAssign(frame, TOP_OF_STACK, nextFrame, TOP_OF_STACK);
+ removeStackVariableConstant(frame, TOP_OF_STACK);
writeAssign(frame, TOP_OF_STACK - 1, nextFrame, TOP_OF_STACK - 1);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 1);
writeAssign(frame, TOP_OF_STACK - 2, nextFrame, TOP_OF_STACK - 2);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 2);
writeAssign(frame, TOP_OF_STACK - 3, nextFrame, TOP_OF_STACK - 3);
+ removeStackVariableConstant(frame, TOP_OF_STACK - 3);
writeAssign(nextFrame, TOP_OF_STACK, nextFrame, TOP_OF_STACK - 4);
writeAssign(nextFrame, TOP_OF_STACK - 1, nextFrame, TOP_OF_STACK - 5);
}
@@ -2887,7 +2910,7 @@
private Variable getTempVarFromTopOfStackMinus1(@Nonnull Frame<BasicValue> frame) {
Variable topOfStackBeforeInst = getStackVariable(frame, TOP_OF_STACK - 1);
String tmpVarId = "-swap_tmp_" + typeToUntypedDesc(topOfStackBeforeInst.getType());
- Variable tmpVariable = getVariable(tmpVarId, tmpVarId, topOfStackBeforeInst.getType(), null);
+ Variable tmpVariable = getVariable(tmpVarId, tmpVarId, topOfStackBeforeInst.getType());
return tmpVariable;
}
@@ -3056,17 +3079,16 @@
BasicValue bv = frame.getStack(stackHeight);
assert bv != BasicValue.UNINITIALIZED_VALUE;
String id = "-s_" + stackHeight + "_" + typeToUntypedDesc(bv.getType());
- Variable variable = getVariable(id, id, typeToUntyped(bv.getType()), null);
+ Variable variable = getVariable(id, id, typeToUntyped(bv.getType()));
return variable;
}
@Nonnull
- private Variable getVariable(@Nonnull String id, @Nonnull String name, @Nonnull Type type,
- @CheckForNull String signature) {
+ private Variable getVariable(@Nonnull String id, @Nonnull String name, @Nonnull Type type) {
Variable var = nameToVar.get(id);
if (var == null) {
- var = new Variable(id, name, type, signature);
+ var = new Variable(id, name, type);
nameToVar.put(id, var);
}
@@ -3075,7 +3097,7 @@
@Nonnull
private Variable getVariableWithLocalIndex(@Nonnegative int localIdx, @Nonnull String id,
- @Nonnull String name, @Nonnull Type type, @CheckForNull String signature, int modifier) {
+ @CheckForNull String name, @Nonnull Type type, @CheckForNull String signature, int modifier) {
Variable var = nameToVar.get(id);
if (var == null) {
diff --git a/jill/src/com/android/jill/frontend/java/Variable.java b/jill/src/com/android/jill/frontend/java/Variable.java
index 04619ed..1bad9a1 100644
--- a/jill/src/com/android/jill/frontend/java/Variable.java
+++ b/jill/src/com/android/jill/frontend/java/Variable.java
@@ -51,9 +51,8 @@
/* Index of local variable, -1 means the variable does not represent a local variable. */
private final int localIdx;
- public Variable(@Nonnull String id, @CheckForNull String name, @Nonnull Type type,
- @CheckForNull String signature) {
- this(id, name, type, signature, NO_LOCAL_IDX, Opcodes.ACC_SYNTHETIC);
+ public Variable(@Nonnull String id, @CheckForNull String name, @Nonnull Type type) {
+ this(id, name, type, null, NO_LOCAL_IDX, Opcodes.ACC_SYNTHETIC);
}
public Variable(@Nonnull String id, @CheckForNull String name, @Nonnull Type type,
diff --git a/sched/build.gradle b/sched/build.gradle
index fa55937..691558c 100644
--- a/sched/build.gradle
+++ b/sched/build.gradle
@@ -96,6 +96,7 @@
java {
srcDirs = ['../src']
include 'com/android/sched/build/*'
+ include 'com/android/sched/util/findbugs/*'
}
resources {
srcDir '../rsc-ap'
diff --git a/sched/src/com/android/sched/build/SchedAnnotationProcessor.java b/sched/src/com/android/sched/build/SchedAnnotationProcessor.java
index 2f10208..64802a0 100644
--- a/sched/src/com/android/sched/build/SchedAnnotationProcessor.java
+++ b/sched/src/com/android/sched/build/SchedAnnotationProcessor.java
@@ -16,6 +16,8 @@
package com.android.sched.build;
+import com.android.sched.util.findbugs.SuppressFBWarnings;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -99,9 +101,10 @@
FILTER("com.android.sched.schedulable.ComponentFilter") {
@Override
@Nonnull
+ @SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE") // probably a FindBugs bug
public TypeMirror getTypeMirror() throws AbortException {
return env.getTypeUtils().getDeclaredType(getTypeElement(),
- env.getTypeUtils().getWildcardType(null, null));
+ env.getTypeUtils().getWildcardType(null, null));
}
},
PRODUCTION("com.android.sched.item.Production"),
@@ -145,6 +148,7 @@
if (typeElement == null) {
typeElement = env.getElementUtils().getTypeElement(getCanonicalName(fqName));
if (typeElement == null) {
+ assert env != null;
env.getMessager().printMessage(Kind.ERROR, "Can not get element type '" + fqName + "'");
throw new AbortException();
}
diff --git a/sched/src/com/android/sched/util/file/AbstractStreamFile.java b/sched/src/com/android/sched/util/file/AbstractStreamFile.java
index 580e6c9..93f9096 100644
--- a/sched/src/com/android/sched/util/file/AbstractStreamFile.java
+++ b/sched/src/com/android/sched/util/file/AbstractStreamFile.java
@@ -33,7 +33,7 @@
/**
* Abstract class representing a stream from a file path or a standard input/output.
*/
-public abstract class AbstractStreamFile extends FileOrDirectory {
+public abstract class AbstractStreamFile extends FileOrDirectory implements Statusful {
@Nonnull
private static final Logger logger = LoggerFactory.getLogger();
@CheckForNull
@@ -141,6 +141,7 @@
}
@Nonnull
+ @Override
public final synchronized StreamFileStatus getStatus() {
if (!wasUsed) {
return StreamFileStatus.NOT_USED;
diff --git a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java b/sched/src/com/android/sched/util/file/Statusful.java
similarity index 68%
copy from jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
copy to sched/src/com/android/sched/util/file/Statusful.java
index 680f9cf..d782913 100644
--- a/jack-tests/tests/com/android/jack/clinit/jack/ClInit.java
+++ b/sched/src/com/android/sched/util/file/Statusful.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,8 +14,15 @@
* limitations under the License.
*/
-package com.android.jack.clinit.jack;
+package com.android.sched.util.file;
-public class ClInit {
+import javax.annotation.Nonnull;
+/**
+ * An object that can return a {@link StreamFileStatus}.
+ */
+public interface Statusful {
+
+ @Nonnull
+ StreamFileStatus getStatus();
}
diff --git a/sched/src/com/android/sched/vfs/CachedDirectFS.java b/sched/src/com/android/sched/vfs/CachedDirectFS.java
index 6ec09b6..8a27c35 100644
--- a/sched/src/com/android/sched/vfs/CachedDirectFS.java
+++ b/sched/src/com/android/sched/vfs/CachedDirectFS.java
@@ -26,6 +26,8 @@
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileException;
+import com.android.sched.util.file.Statusful;
+import com.android.sched.util.file.StreamFileStatus;
import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.DirectoryLocation;
import com.android.sched.util.location.FileLocation;
@@ -63,7 +65,8 @@
* A {@link VFS} implementation backed by a real file system, but where directories are cached in
* memory.
*/
-public class CachedDirectFS extends BaseVFS<CachedParentVDir, CachedParentVFile> implements VFS {
+public class CachedDirectFS extends BaseVFS<CachedParentVDir, CachedParentVFile>
+ implements VFS, Statusful {
static class CachedParentVDir extends InMemoryVDir {
@@ -160,6 +163,8 @@
@CheckForNull
private String infoString;
+ private boolean used = false;
+
public CachedDirectFS(@Nonnull Directory dir, int permissions) {
this.dir = dir;
@@ -253,6 +258,9 @@
@Override
public CachedParentVDir getRootDir() {
+
+ used = true;
+
return root;
}
@@ -566,6 +574,18 @@
}
@Override
+ @Nonnull
+ public StreamFileStatus getStatus() {
+ if (!used) {
+ return StreamFileStatus.NOT_USED;
+ } else if (closed) {
+ return StreamFileStatus.CLOSED;
+ } else {
+ return StreamFileStatus.OPEN;
+ }
+ }
+
+ @Override
@CheckForNull
public String getInfoString() {
return infoString;
diff --git a/sched/src/com/android/sched/vfs/CaseInsensitiveFS.java b/sched/src/com/android/sched/vfs/CaseInsensitiveFS.java
index 046a106..01ff002 100644
--- a/sched/src/com/android/sched/vfs/CaseInsensitiveFS.java
+++ b/sched/src/com/android/sched/vfs/CaseInsensitiveFS.java
@@ -32,6 +32,8 @@
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileException;
+import com.android.sched.util.file.Statusful;
+import com.android.sched.util.file.StreamFileStatus;
import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.ColumnAndLineLocation;
import com.android.sched.util.location.Location;
@@ -64,7 +66,7 @@
*/
@HasKeyId
public class CaseInsensitiveFS extends BaseVFS<CaseInsensitiveVDir, CaseInsensitiveVFile> implements
- VFS {
+ VFS, Statusful {
static final String INDEX_NAME = "index";
static final String DEBUG_NAME = "index.dbg";
@@ -205,6 +207,8 @@
@Nonnull
private final BaseVFS<BaseVDir, BaseVFile> vfs;
+ private boolean used = false;
+
public CaseInsensitiveFS(@Nonnull VFS vfs) throws BadVFSFormatException {
this(vfs, ThreadConfig.get(NB_GROUP).intValue(), ThreadConfig.get(SZ_GROUP).intValue(),
ThreadConfig.get(ALGO), ThreadConfig.get(DEBUG).booleanValue());
@@ -341,6 +345,8 @@
@Override
@Nonnull
public CaseInsensitiveVDir getRootDir() {
+ used = true;
+
return root;
}
@@ -734,6 +740,18 @@
}
@Override
+ @Nonnull
+ public StreamFileStatus getStatus() {
+ if (!used) {
+ return StreamFileStatus.NOT_USED;
+ } else if (closed) {
+ return StreamFileStatus.CLOSED;
+ } else {
+ return StreamFileStatus.OPEN;
+ }
+ }
+
+ @Override
@CheckForNull
public String getInfoString() {
return vfs.getInfoString();
diff --git a/sched/src/com/android/sched/vfs/DeflateFS.java b/sched/src/com/android/sched/vfs/DeflateFS.java
index 90edda1..a6a5825 100644
--- a/sched/src/com/android/sched/vfs/DeflateFS.java
+++ b/sched/src/com/android/sched/vfs/DeflateFS.java
@@ -37,9 +37,7 @@
import java.util.Collection;
import java.util.List;
import java.util.Set;
-import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
-import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;
import javax.annotation.CheckForNull;
@@ -160,7 +158,7 @@
@Override
@Nonnull
InputStream openRead(@Nonnull DeflateVFile file) throws WrongPermissionException {
- return new InflaterInputStream(vfs.openRead(file.getWrappedFile()), new Inflater());
+ return new InflaterInputStream(vfs.openRead(file.getWrappedFile()));
}
@Override
@@ -173,7 +171,7 @@
@Nonnull
OutputStream openWrite(@Nonnull DeflateVFile file, boolean append)
throws WrongPermissionException {
- return new DeflaterOutputStream(vfs.openWrite(file.getWrappedFile(), append), new Deflater());
+ return new DeflaterOutputStream(vfs.openWrite(file.getWrappedFile(), append));
}
@Override
diff --git a/sched/src/com/android/sched/vfs/DirectFS.java b/sched/src/com/android/sched/vfs/DirectFS.java
index 41fa6f9..7abfff9 100644
--- a/sched/src/com/android/sched/vfs/DirectFS.java
+++ b/sched/src/com/android/sched/vfs/DirectFS.java
@@ -29,6 +29,8 @@
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileException;
+import com.android.sched.util.file.Statusful;
+import com.android.sched.util.file.StreamFileStatus;
import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.DirectoryLocation;
import com.android.sched.util.location.FileLocation;
@@ -55,7 +57,7 @@
/**
* A {@link VFS} implementation backed by a real file system.
*/
-public class DirectFS extends BaseVFS<ParentVDir, ParentVFile> implements VFS {
+public class DirectFS extends BaseVFS<ParentVDir, ParentVFile> implements VFS, Statusful {
@Nonnull
private final Directory dir;
@@ -66,6 +68,8 @@
@CheckForNull
private String infoString;
+ private boolean used = false;
+
public DirectFS(@Nonnull Directory dir, int permissions) {
this.dir = dir;
this.root = new ParentVDir(this, "");
@@ -113,6 +117,9 @@
@Override
public ParentVDir getRootDir() {
+
+ used = true;
+
return root;
}
@@ -378,6 +385,18 @@
return getPathFromDir(root, file);
}
+ @Override
+ @Nonnull
+ public StreamFileStatus getStatus() {
+ if (!used) {
+ return StreamFileStatus.NOT_USED;
+ } else if (closed) {
+ return StreamFileStatus.CLOSED;
+ } else {
+ return StreamFileStatus.OPEN;
+ }
+ }
+
public void setInfoString(@CheckForNull String infoString) {
this.infoString = infoString;
}
diff --git a/sched/src/com/android/sched/vfs/MessageDigestFS.java b/sched/src/com/android/sched/vfs/MessageDigestFS.java
index 4ebe981..7de3fe4 100644
--- a/sched/src/com/android/sched/vfs/MessageDigestFS.java
+++ b/sched/src/com/android/sched/vfs/MessageDigestFS.java
@@ -172,7 +172,7 @@
@SuppressWarnings("unchecked")
public MessageDigestFS(@Nonnull VFS vfs, @Nonnull MessageDigestFactory factory)
- throws BadVFSFormatException {
+ throws BadVFSFormatException, WrongVFSTypeException {
this.vfs = (BaseVFS<BaseVDir, BaseVFile>) vfs;
this.mdFactory = factory;
@@ -184,7 +184,7 @@
init();
}
- private void init() throws BadVFSFormatException {
+ private void init() throws BadVFSFormatException, WrongVFSTypeException {
BaseVFile digestFile;
try {
@@ -193,7 +193,7 @@
throw new BadVFSFormatException(this, vfs.getLocation(), e);
} catch (NoSuchFileException e) {
if (!vfs.getRootDir().isEmpty()) {
- throw new BadVFSFormatException(this, vfs.getLocation(), e);
+ throw new WrongVFSTypeException(vfs, vfs.getLocation(), getDescription(), e);
}
return;
diff --git a/sched/src/com/android/sched/vfs/PrefixedFS.java b/sched/src/com/android/sched/vfs/PrefixedFS.java
index d90cd0d..58da11d 100644
--- a/sched/src/com/android/sched/vfs/PrefixedFS.java
+++ b/sched/src/com/android/sched/vfs/PrefixedFS.java
@@ -19,6 +19,7 @@
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.CannotDeleteFileException;
import com.android.sched.util.file.CannotGetModificationTimeException;
+import com.android.sched.util.file.FileOrDirectory.Existence;
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileException;
@@ -44,16 +45,22 @@
private final BaseVDir rootDir;
@SuppressWarnings("unchecked")
- public PrefixedFS(@Nonnull VFS vfs, @Nonnull VPath prefix)
- throws CannotCreateFileException, NotDirectoryException {
+ public PrefixedFS(@Nonnull VFS vfs, @Nonnull VPath prefix, @Nonnull Existence existence)
+ throws CannotCreateFileException, NotDirectoryException, WrongVFSTypeException {
this.vfs = (BaseVFS<BaseVDir, BaseVFile>) vfs;
BaseVDir rootDir;
- // let's try to get the VDir before creating it because we not have write permissions.
try {
rootDir = this.vfs.getRootDir().getVDir(prefix);
+ if (existence == Existence.NOT_EXIST) {
+ throw new WrongVFSTypeException(vfs, vfs.getLocation(), getDescription());
+ }
} catch (NoSuchFileException e) {
- rootDir = this.vfs.getRootDir().createVDir(prefix);
+ if (existence == Existence.MUST_EXIST) {
+ throw new WrongVFSTypeException(vfs, vfs.getLocation(), getDescription(), e);
+ } else {
+ rootDir = this.vfs.getRootDir().createVDir(prefix);
+ }
}
this.rootDir = changeVFS(rootDir);
}
diff --git a/sched/src/com/android/sched/vfs/ReadWriteZipFS.java b/sched/src/com/android/sched/vfs/ReadWriteZipFS.java
index 5a31f9d..2ac78bc 100644
--- a/sched/src/com/android/sched/vfs/ReadWriteZipFS.java
+++ b/sched/src/com/android/sched/vfs/ReadWriteZipFS.java
@@ -33,6 +33,8 @@
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileException;
import com.android.sched.util.file.OutputZipFile;
+import com.android.sched.util.file.Statusful;
+import com.android.sched.util.file.StreamFileStatus;
import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.DirectoryLocation;
import com.android.sched.util.location.Location;
@@ -51,7 +53,7 @@
/**
* A {@link VFS} backed by a real filesystem directory, compressed into a zip archive when closed.
*/
-public class ReadWriteZipFS extends BaseVFS<BaseVDir, BaseVFile> implements VFS {
+public class ReadWriteZipFS extends BaseVFS<BaseVDir, BaseVFile> implements VFS, Statusful {
@Nonnull
private final VFSToVFSWrapper vfs;
@@ -273,4 +275,10 @@
public String toString() {
return "rwZipFS >> " + vfs.toString();
}
+
+ @Override
+ @Nonnull
+ public StreamFileStatus getStatus() {
+ return ((Statusful) vfs.getWorkVFS()).getStatus();
+ }
}
diff --git a/sched/src/com/android/sched/vfs/UnionVFS.java b/sched/src/com/android/sched/vfs/UnionVFS.java
index e3844f1..4a16e78 100644
--- a/sched/src/com/android/sched/vfs/UnionVFS.java
+++ b/sched/src/com/android/sched/vfs/UnionVFS.java
@@ -27,6 +27,8 @@
import com.android.sched.util.file.NoSuchFileException;
import com.android.sched.util.file.NotDirectoryException;
import com.android.sched.util.file.NotFileException;
+import com.android.sched.util.file.Statusful;
+import com.android.sched.util.file.StreamFileStatus;
import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.Location;
import com.android.sched.vfs.UnionVFS.UnionVDir;
@@ -49,7 +51,7 @@
* A {@link VFS} that acts as an ordered agglomerate of other VFS. Writing is done in the top VFS
* only, if it is supported. The VFS are ordered according to their priority.
*/
-public class UnionVFS extends BaseVFS<UnionVDir, UnionVFile> implements VFS {
+public class UnionVFS extends BaseVFS<UnionVDir, UnionVFile> implements VFS, Statusful {
/**
* Only delete the VFile that is on top, do not delete those that are under.
@@ -217,6 +219,8 @@
private final boolean writable;
+ private boolean used = false;
+
public UnionVFS(@Nonnull List<VFS> vfsList) {
assert !vfsList.isEmpty();
this.vfsList = vfsList;
@@ -346,6 +350,8 @@
@Override
@Nonnull
public UnionVDir getRootDir() {
+ used = true;
+
return rootDir;
}
@@ -649,6 +655,18 @@
}
@Override
+ @Nonnull
+ public StreamFileStatus getStatus() {
+ if (!used) {
+ return StreamFileStatus.NOT_USED;
+ } else if (closed) {
+ return StreamFileStatus.CLOSED;
+ } else {
+ return StreamFileStatus.OPEN;
+ }
+ }
+
+ @Override
@CheckForNull
public String getInfoString() {
return vfsList.get(0).getInfoString();
diff --git a/sched/src/com/android/sched/vfs/VFSPropertyId.java b/sched/src/com/android/sched/vfs/VFSPropertyId.java
index 5dcf778..3858a30 100644
--- a/sched/src/com/android/sched/vfs/VFSPropertyId.java
+++ b/sched/src/com/android/sched/vfs/VFSPropertyId.java
@@ -23,6 +23,8 @@
import com.android.sched.util.config.category.Category;
import com.android.sched.util.config.expression.BooleanExpression;
import com.android.sched.util.config.id.PropertyId;
+import com.android.sched.util.file.Statusful;
+import com.android.sched.util.file.StreamFileStatus;
import javax.annotation.Nonnull;
@@ -90,7 +92,14 @@
new ShutdownRunnable<VFS>() {
@Override
public void run(@Nonnull VFS vfs) {
- if (!vfs.isClosed()) {
+ boolean open;
+ if (vfs instanceof Statusful) {
+ open = ((Statusful) vfs).getStatus() == StreamFileStatus.OPEN;
+ } else {
+ open = !vfs.isClosed();
+ }
+
+ if (open) {
throw new AssertionError(
"VFS '"
+ vfs.getDescription()
diff --git a/sched/src/com/android/sched/vfs/WrongVFSTypeException.java b/sched/src/com/android/sched/vfs/WrongVFSTypeException.java
new file mode 100644
index 0000000..b01f7ff
--- /dev/null
+++ b/sched/src/com/android/sched/vfs/WrongVFSTypeException.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sched.vfs;
+
+import com.android.sched.util.file.SchedIOException;
+import com.android.sched.util.location.Location;
+
+import javax.annotation.Nonnull;
+
+/**
+ * {@link Exception} when a {@link VFS} does not match the expected VFS type, but may be a valid VFS
+ * of another type.
+ */
+public class WrongVFSTypeException extends SchedIOException {
+ private static final long serialVersionUID = 1L;
+
+ @Nonnull
+ private final VFS vfs;
+ @Nonnull
+ private final String expectedVfsDescription;
+
+ public WrongVFSTypeException(@Nonnull VFS vfs, @Nonnull Location location,
+ @Nonnull String expectedVfsDescription, @Nonnull Throwable cause) {
+ super(location, cause);
+ this.vfs = vfs;
+ this.expectedVfsDescription = expectedVfsDescription;
+ }
+
+ public WrongVFSTypeException(@Nonnull VFS vfs, @Nonnull Location location,
+ @Nonnull String expectedVfsDescription) {
+ super(location, null);
+ this.vfs = vfs;
+ this.expectedVfsDescription = expectedVfsDescription;
+ }
+
+ @Override
+ @Nonnull
+ protected String createMessage(@Nonnull String description) {
+ return "'"
+ + vfs.getDescription()
+ + "' VFS in "
+ + description
+ + " does not match the expected VFS type '"
+ + expectedVfsDescription
+ + "': "
+ + getCause().getMessage();
+ }
+}
diff --git a/sched/tests/com/android/sched/util/codec/AllTests.java b/sched/tests/com/android/sched/util/codec/AllTests.java
index db3d776..4409b61 100644
--- a/sched/tests/com/android/sched/util/codec/AllTests.java
+++ b/sched/tests/com/android/sched/util/codec/AllTests.java
@@ -21,6 +21,7 @@
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
-@SuiteClasses(value = {DurationFormatterTest.class, QuantityFormatterTest.class})
-public class AllTests {
-}
+@SuiteClasses(
+ value = {DurationFormatterTest.class, QuantityFormatterTest.class, WriterFileCodecTest.class}
+)
+public class AllTests {}
diff --git a/sched/tests/com/android/sched/util/codec/WriterFileCodecTest.java b/sched/tests/com/android/sched/util/codec/WriterFileCodecTest.java
new file mode 100644
index 0000000..e5084a7
--- /dev/null
+++ b/sched/tests/com/android/sched/util/codec/WriterFileCodecTest.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sched.util.codec;
+
+import com.android.sched.util.LineSeparator;
+import com.android.sched.util.file.CannotChangePermissionException;
+import com.android.sched.util.file.CannotCreateFileException;
+import com.android.sched.util.file.FileAlreadyExistsException;
+import com.android.sched.util.file.FileOrDirectory.ChangePermission;
+import com.android.sched.util.file.FileOrDirectory.Existence;
+import com.android.sched.util.file.NoSuchFileException;
+import com.android.sched.util.file.NotFileException;
+import com.android.sched.util.file.StandardOutputKind;
+import com.android.sched.util.file.WriterFile;
+import com.android.sched.util.file.WrongPermissionException;
+import com.android.sched.util.findbugs.SuppressFBWarnings;
+import com.android.sched.util.location.NoLocation;
+
+import junit.framework.Assert;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+public class WriterFileCodecTest {
+
+ @Test
+ public void testFormatValueStdout() {
+ String string =
+ new WriterFileCodec(Existence.MAY_EXIST)
+ .formatValue(new WriterFile(StandardOutputKind.STANDARD_OUTPUT));
+ Assert.assertEquals(FileCodec.STANDARD_IO_NAME, string);
+ }
+
+ @Test
+ public void testFormatValueStderr() {
+ String string =
+ new WriterFileCodec(Existence.MAY_EXIST)
+ .formatValue(new WriterFile(StandardOutputKind.STANDARD_ERROR));
+ Assert.assertEquals(FileCodec.STANDARD_ERROR_NAME, string);
+ }
+
+ @Test
+ @SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE")
+ public void testFormatValueFile()
+ throws NotFileException, FileAlreadyExistsException, CannotCreateFileException,
+ CannotChangePermissionException, WrongPermissionException, NoSuchFileException,
+ IOException {
+ File file = File.createTempFile("sched-test", "tmp");
+ try {
+ String string =
+ new WriterFileCodec(Existence.MAY_EXIST)
+ .formatValue(new WriterFile(/* workingDirectory = */ null,
+ file.getPath(),
+ Charset.forName("UTF-8"),
+ LineSeparator.SYSTEM,
+ /* bufferSize = */ 4 * 1024,
+ /* hooks = */ null,
+ Existence.MAY_EXIST,
+ ChangePermission.NOCHANGE,
+ /* append = */ false));
+ Assert.assertEquals(file.getPath(), string);
+ } finally {
+ file.delete();
+ }
+ }
+
+ @Test
+ @Ignore // Known Schedlib bug
+ public void testFormatValueStreamOnly() {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ String string =
+ new WriterFileCodec(Existence.MAY_EXIST)
+ .formatValue(new WriterFile(out, new NoLocation()));
+ Assert.assertEquals("TBD", string);
+ }
+}
diff --git a/sched/tests/com/android/sched/vfs/VFSTest.java b/sched/tests/com/android/sched/vfs/VFSTest.java
index 27dd9bb..fd9b0c4 100644
--- a/sched/tests/com/android/sched/vfs/VFSTest.java
+++ b/sched/tests/com/android/sched/vfs/VFSTest.java
@@ -232,7 +232,8 @@
public void testMessageDigestFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
- NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException {
+ NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException,
+ WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputOutputVFS ioVFS2 = null;
@@ -285,7 +286,8 @@
public void testMessageDigestFSWithCaseInsensitiveFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
- NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException {
+ NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException,
+ WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputOutputVFS ioVFS2 = null;
@@ -344,8 +346,9 @@
@Test
public void testDeflatePrefixedCaseInsensitiveDirectFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
- NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
- NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException {
+ NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
+ NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException,
+ WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputOutputVFS ioVFS2 = null;
@@ -358,7 +361,8 @@
Permission.READ | Permission.WRITE));
ioVFS1 =
- new GenericInputOutputVFS(new DeflateFS(new PrefixedFS(ciFS, new VPath("stuff", '/'))));
+ new GenericInputOutputVFS(
+ new DeflateFS(new PrefixedFS(ciFS, new VPath("stuff", '/'), Existence.MAY_EXIST)));
testOutputVFS(ioVFS1);
testDelete(ioVFS1);
@@ -371,7 +375,8 @@
Permission.READ | Permission.WRITE));
ioVFS2 =
- new GenericInputOutputVFS(new DeflateFS(new PrefixedFS(ciFS2, new VPath("stuff", '/'))));
+ new GenericInputOutputVFS(
+ new DeflateFS(new PrefixedFS(ciFS2, new VPath("stuff", '/'), Existence.MUST_EXIST)));
testInputVFS(ioVFS2);
ciFS2.close();
@@ -389,7 +394,8 @@
public void testMessageDigestFSWithCachedDirectFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
- NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException {
+ NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException,
+ WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputOutputVFS ioVFS2 = null;
@@ -453,7 +459,7 @@
public void testPrefixedFSWithDirectFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
NoSuchFileException, FileAlreadyExistsException, IOException, NotFileOrDirectoryException,
- CannotDeleteFileException, CannotCloseException {
+ CannotDeleteFileException, CannotCloseException, WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputOutputVFS ioVFS2 = null;
@@ -464,7 +470,7 @@
ioVFS1 =
new GenericInputOutputVFS(new PrefixedFS(new DirectFS(new Directory(path, null,
Existence.MUST_EXIST, Permission.WRITE, ChangePermission.NOCHANGE), Permission.READ
- | Permission.WRITE), new VPath("stuff", '/')));
+ | Permission.WRITE), new VPath("stuff", '/'), Existence.NOT_EXIST));
testOutputVFS(ioVFS1);
testDelete(ioVFS1);
@@ -475,7 +481,7 @@
ioVFS2 =
new GenericInputOutputVFS(new PrefixedFS(new DirectFS(new Directory(path, null,
Existence.MUST_EXIST, Permission.WRITE, ChangePermission.NOCHANGE), Permission.READ
- | Permission.WRITE), new VPath("stuff", '/')));
+ | Permission.WRITE), new VPath("stuff", '/'), Existence.MUST_EXIST));
testInputVFS(ioVFS2);
checkFileLocations(ioVFS2);
@@ -493,7 +499,7 @@
public void testPrefixedFSWithZip()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
NoSuchFileException, FileAlreadyExistsException, IOException, ZipException,
- NotFileOrDirectoryException, CannotCloseException {
+ NotFileOrDirectoryException, CannotCloseException, WrongVFSTypeException {
String prefix = "stuff";
File file = null;
InputOutputVFS ioVFS1 = null;
@@ -505,7 +511,9 @@
WriteZipFS writeZipFS = new WriteZipFS(new OutputZipFile(path, null, Existence.MAY_EXIST,
ChangePermission.NOCHANGE, Compression.COMPRESSED));
- ioVFS1 = new GenericInputOutputVFS(new PrefixedFS(writeZipFS, new VPath(prefix, '/')));
+ ioVFS1 =
+ new GenericInputOutputVFS(
+ new PrefixedFS(writeZipFS, new VPath(prefix, '/'), Existence.NOT_EXIST));
testOutputVFS(ioVFS1);
ioVFS1.close();
@@ -513,7 +521,9 @@
ReadZipFS readZipFS = new ReadZipFS(new InputZipFile(path));
- ioVFS2 = new GenericInputOutputVFS(new PrefixedFS(readZipFS, new VPath(prefix, '/')));
+ ioVFS2 =
+ new GenericInputOutputVFS(
+ new PrefixedFS(readZipFS, new VPath(prefix, '/'), Existence.MUST_EXIST));
testInputVFS(ioVFS2);
checkZipLocations(ioVFS2, prefix);
@@ -532,8 +542,9 @@
@Test
public void testPrefixedFSWithCaseInsensitiveFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
- NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
- NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException {
+ NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
+ NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException,
+ WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputOutputVFS ioVFS2 = null;
@@ -545,7 +556,9 @@
Existence.MUST_EXIST, Permission.WRITE, ChangePermission.NOCHANGE),
Permission.READ | Permission.WRITE));
- ioVFS1 = new GenericInputOutputVFS(new PrefixedFS(ciFS, new VPath("stuff", '/')));
+ ioVFS1 =
+ new GenericInputOutputVFS(
+ new PrefixedFS(ciFS, new VPath("stuff", '/'), Existence.NOT_EXIST));
testOutputVFS(ioVFS1);
testDelete(ioVFS1);
@@ -557,7 +570,9 @@
Existence.MUST_EXIST, Permission.WRITE, ChangePermission.NOCHANGE),
Permission.READ | Permission.WRITE));
- ioVFS2 = new GenericInputOutputVFS(new PrefixedFS(ciFS2, new VPath("stuff", '/')));
+ ioVFS2 =
+ new GenericInputOutputVFS(
+ new PrefixedFS(ciFS2, new VPath("stuff", '/'), Existence.MUST_EXIST));
testInputVFS(ioVFS2);
ciFS2.close();
@@ -574,8 +589,9 @@
@Test
public void testMessageDigestFSWithPrefixedFSAndCaseInsensitiveFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
- NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
- NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException {
+ NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
+ NotFileOrDirectoryException, CannotCloseException, BadVFSFormatException,
+ WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputOutputVFS ioVFS2 = null;
@@ -598,7 +614,9 @@
Existence.MUST_EXIST, Permission.WRITE, ChangePermission.NOCHANGE),
Permission.READ | Permission.WRITE), new MessageDigestFactory(sha1)));
- ioVFS1 = new GenericInputOutputVFS(new PrefixedFS(ciFS, new VPath("stuff", '/')));
+ ioVFS1 =
+ new GenericInputOutputVFS(
+ new PrefixedFS(ciFS, new VPath("stuff", '/'), Existence.NOT_EXIST));
testOutputVFS(ioVFS1);
testDelete(ioVFS1);
@@ -611,7 +629,9 @@
Existence.MUST_EXIST, Permission.WRITE, ChangePermission.NOCHANGE),
Permission.READ | Permission.WRITE), new MessageDigestFactory(sha1)));
- ioVFS2 = new GenericInputOutputVFS(new PrefixedFS(ciFS2, new VPath("stuff", '/')));
+ ioVFS2 =
+ new GenericInputOutputVFS(
+ new PrefixedFS(ciFS2, new VPath("stuff", '/'), Existence.MUST_EXIST));
testInputVFS(ioVFS2);
ciFS2.close();
@@ -775,10 +795,11 @@
@SuppressWarnings("resource")
@Test
- public void testIncrementalStack() throws IOException, CannotCreateFileException,
- WrongPermissionException, CannotChangePermissionException, NoSuchFileException,
- FileAlreadyExistsException, ZipException, NotFileOrDirectoryException,
- CannotDeleteFileException, CannotCloseException, BadVFSFormatException {
+ public void testIncrementalStack()
+ throws IOException, CannotCreateFileException, WrongPermissionException,
+ CannotChangePermissionException, NoSuchFileException, FileAlreadyExistsException,
+ ZipException, NotFileOrDirectoryException, CannotDeleteFileException,
+ CannotCloseException, BadVFSFormatException, WrongVFSTypeException {
final VPath prefix = new VPath("pre", '/');
File inputZipFile = null;
File outputZipFile = null;
@@ -796,7 +817,8 @@
ChangePermission.NOCHANGE, Compression.COMPRESSED),
/* numGroups = */ 1, /* groupSize = */ 2, new MessageDigestFactory(getSha1Service()),
/* debug = */ false);
- InputOutputVFS ioVFS1 = new GenericInputOutputVFS(new PrefixedFS(writeZipVFS, prefix));
+ InputOutputVFS ioVFS1 =
+ new GenericInputOutputVFS(new PrefixedFS(writeZipVFS, prefix, Existence.NOT_EXIST));
testOutputVFS(ioVFS1);
ioVFS1.close();
writeZipVFS.close();
@@ -806,7 +828,7 @@
VFS ciVFS = new CaseInsensitiveFS(
new CachedDirectFS(new Directory(dirPath, null, Existence.MUST_EXIST, Permission.WRITE,
ChangePermission.NOCHANGE), Permission.READ | Permission.WRITE));
- VFS prefixedFS1 = new PrefixedFS(ciVFS, prefix);
+ VFS prefixedFS1 = new PrefixedFS(ciVFS, prefix, Existence.NOT_EXIST);
prefixedFS1.close();
// create R/W output zip that uses as temp dir an UnionVFS between dir and read-only zip
@@ -822,7 +844,7 @@
VFS unionVFS = new UnionVFS(vfsList);
rwzfs.setWorkVFS(unionVFS);
}
- VFS prefixedFS = new PrefixedFS(rwzfs, prefix);
+ VFS prefixedFS = new PrefixedFS(rwzfs, prefix, Existence.MUST_EXIST);
testInputVFS(new GenericInputVFS(prefixedFS));
@@ -1026,7 +1048,8 @@
public void testDeflateFSWithMessageDigestFS()
throws CannotCreateFileException, WrongPermissionException, CannotChangePermissionException,
NoSuchFileException, FileAlreadyExistsException, IOException, CannotDeleteFileException,
- NotFileOrDirectoryException, ZipException, CannotCloseException, BadVFSFormatException {
+ NotFileOrDirectoryException, ZipException, CannotCloseException, BadVFSFormatException,
+ WrongVFSTypeException {
File file = null;
InputOutputVFS ioVFS1 = null;
InputVFS ioVFS2 = null;
diff --git a/server/jack-server/etc/jack b/server/jack-server/etc/jack
index 75aed94..0f9187e 100755
--- a/server/jack-server/etc/jack
+++ b/server/jack-server/etc/jack
@@ -26,9 +26,7 @@
JACK_HOME="${JACK_HOME:=$HOME/.jack-server}"
JACK_CLIENT_SETTING="${JACK_CLIENT_SETTING:=$HOME/.jack-settings}"
TMPDIR=${TMPDIR:=/tmp}
-# This is half the timeout since the script will make a second attempt collecting debugs when
-# the first attempt fails on connection timeout
-JACK_CONNECTION_TIMEOUT=150
+JACK_CONNECTION_TIMEOUT=300
JACK_EXTRA_CURL_OPTIONS=${JACK_EXTRA_CURL_OPTIONS:=}
JACK_ASSERTION_ENABLED="${JACK_ASSERTION_ENABLED:=false}"
@@ -112,15 +110,11 @@
# Check base64 availability
BASE64_CHECK=$((echo amFjaw==;echo LXNlcnZlcg==) | base64 --decode 2>&1)
-sendRequest() {
-RETRY_OPTION=$1
-shift
-
# Launch compilation
exec 3>&1
exec 4>&2
if [ "$BASE64_CHECK" = jack-server ]; then
- HTTP_CODE=$(curl -f $JACK_EXTRA_CURL_OPTIONS $RETRY_OPTION \
+ HTTP_CODE=$(curl -f $JACK_EXTRA_CURL_OPTIONS \
--cert "${JACK_HOME}/client.pem" \
--cacert "${JACK_HOME}/server.pem" \
--output >(tee >(sed -n -e 's/^E|\(.*\)$/\1/p' | base64 --decode >&4 ) | tee >(sed -n -e 's/^X|\(.*\)$/\1/p' >>$JACK_EXIT) | sed -n -e 's/^O|\(.*\)$/\1/p' | base64 --decode >&3) \
@@ -135,7 +129,7 @@
https://${SERVER_HOST}:$SERVER_PORT_SERVICE/jack \
)
else
- HTTP_CODE=$(curl -f $JACK_EXTRA_CURL_OPTIONS $RETRY_OPTION \
+ HTTP_CODE=$(curl -f $JACK_EXTRA_CURL_OPTIONS \
--cert "${JACK_HOME}/client.pem" \
--cacert "${JACK_HOME}/server.pem" \
--output >(tee >(sed -n -e 's/^E|\(.*\)$/\1/p' >&4 ) | tee >(sed -n -e 's/^X|\(.*\)$/\1/p' >>$JACK_EXIT) | sed -n -e 's/^O|\(.*\)$/\1/p' >&3) \
@@ -164,22 +158,9 @@
# Failed to connect
echo "No Jack server running. Try 'jack-admin start-server'" >&2
abort
-elif [ $CURL_CODE -eq 28 ]; then
- if [ "$RETRY_OPTION" == "" ]; then
- echo "Connection to the Jack server timeout, retrying with debug"
- sendRequest -v $@
- else
- echo "Connection to the Jack server timeout" >&2
- abort
- fi
elif [ $CURL_CODE -eq 35 ]; then
- if [ "$RETRY_OPTION" == "" ]; then
- echo "SSL error when connecting to the Jack server, retrying with debug"
- sendRequest -v $@
- else
- echo "SSL error when connecting to the Jack server. Try 'jack-diagnose'" >&2
- abort
- fi
+ echo "SSL error when connecting to the Jack server. Try 'jack-diagnose'" >&2
+ abort
elif [ $CURL_CODE -eq 58 ]; then
echo "Failed to contact Jack server: Problem reading ${JACK_HOME}/client.pem. Try 'jack-diagnose'" >&2
abort
@@ -204,6 +185,3 @@
echo "Communication error with Jack server ($CURL_CODE). Try 'jack-diagnose'" >&2
abort
fi
-}
-
-sendRequest "" $@
\ No newline at end of file
diff --git a/server/jack-server/etc/jack-admin b/server/jack-server/etc/jack-admin
index 0209ffc..d7fb11b 100755
--- a/server/jack-server/etc/jack-admin
+++ b/server/jack-server/etc/jack-admin
@@ -606,11 +606,21 @@
echo "\$ lsof -i TCP:$SERVER_PORT_SERVICE -l" >>"$REPORT_INFO"
lsof -i TCP:$SERVER_PORT_SERVICE -l >>"$REPORT_INFO" 2>&1
+ echo "Test if Jack server service port $SERVER_PORT_SERVICE is open..."
+ echo >>"$REPORT_INFO"
+ echo "\$ if (exec 6<> /dev/tcp/127.0.0.1/$SERVER_PORT_SERVICE) 2> /dev/null ; then echo port $SERVER_PORT_SERVICE is in use; else echo port $SERVER_PORT_SERVICE is available; fi" >>"$REPORT_INFO"
+ (if (exec 6<> /dev/tcp/127.0.0.1/$SERVER_PORT_SERVICE) 2> /dev/null ; then echo port $SERVER_PORT_SERVICE is in use; else echo port $SERVER_PORT_SERVICE is available; fi) >>"$REPORT_INFO" 2>&1
+
echo "Listing process using Jack server admin port $SERVER_PORT_ADMIN..."
echo >>"$REPORT_INFO"
echo "\$ lsof -i TCP:$SERVER_PORT_ADMIN -l" >>"$REPORT_INFO"
lsof -i TCP:$SERVER_PORT_ADMIN -l >>"$REPORT_INFO" 2>&1
+ echo "Test if Jack server admin port $SERVER_PORT_ADMIN is open..."
+ echo >>"$REPORT_INFO"
+ echo "\$ if (exec 6<> /dev/tcp/127.0.0.1/$SERVER_PORT_ADMIN) 2> /dev/null ; then echo port $SERVER_PORT_ADMIN is in use; else echo port $SERVER_PORT_ADMIN is available; fi" >>"$REPORT_INFO"
+ (if (exec 6<> /dev/tcp/127.0.0.1/$SERVER_PORT_ADMIN) 2> /dev/null ; then echo port $SERVER_PORT_ADMIN is in use; else echo port $SERVER_PORT_ADMIN is available; fi) >>"$REPORT_INFO" 2>&1
+
echo "Collecting Jack client configuration..."
echo >>"$REPORT_INFO"
echo "\$ cat \"\$JACK_CLIENT_SETTING\"" >>"$REPORT_INFO"
diff --git a/server/jack-server/etc/jack-diagnose b/server/jack-server/etc/jack-diagnose
index c8c51da..45dff60 100755
--- a/server/jack-server/etc/jack-diagnose
+++ b/server/jack-server/etc/jack-diagnose
@@ -127,6 +127,10 @@
checkport() {
PID_USING_PORT=$(lsof -F p -i TCP:$1 -sTCP:LISTEN | cut -c 2-)
if [ -z "$PID_USING_PORT" ] ; then
+ if (exec 6<> /dev/tcp/127.0.0.1/$1) 2> /dev/null ; then
+ echo "Port $1 is used by a process owned by another user. Unless this is expected, please ensure the port is free or change port configuration in '$JACK_CLIENT_SETTING' and '$JACK_HOME/config.properties'"
+ return 255
+ fi
# port is free nothing to check
return 0
fi
@@ -143,7 +147,7 @@
fi
if [ "$(echo $PS_OUT | awk '{print $2}')" -ne "$(id -u)" ] ; then
- echo "Port $1 is used b a Jack server from another user uid=$(echo $PS_OUT | awk '{print $2}'), please change port configuration in '$JACK_CLIENT_SETTING' and '$JACK_HOME/config.properties'"
+ echo "Port $1 is used by a Jack server from another user uid=$(echo $PS_OUT | awk '{print $2}'), please change port configuration in '$JACK_CLIENT_SETTING' and '$JACK_HOME/config.properties'"
return 255
fi
}