summaryrefslogtreecommitdiffstats
path: root/testData/src
diff options
context:
space:
mode:
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>2014-09-01 15:05:08 +0400
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>2014-09-01 15:11:41 +0400
commit3854b67daac14188d47a86bb6b84ccb00c087f5f (patch)
tree4138065e6b5d0c1b43b6f3fa2753492cf41661d4 /testData/src
parent1a4e48d11d50b1c9367568ed60f6a43a469d4ace (diff)
downloadfernflower-3854b67daac14188d47a86bb6b84ccb00c087f5f.tar
fernflower-3854b67daac14188d47a86bb6b84ccb00c087f5f.tar.gz
fernflower-3854b67daac14188d47a86bb6b84ccb00c087f5f.tar.lz
fernflower-3854b67daac14188d47a86bb6b84ccb00c087f5f.tar.xz
fernflower-3854b67daac14188d47a86bb6b84ccb00c087f5f.zip
java-decompiler: post-import cleanup (tests reorganized)
Diffstat (limited to 'testData/src')
-rw-r--r--testData/src/pkg/TestClassFields.java28
-rw-r--r--testData/src/pkg/TestClassLambda.java82
-rw-r--r--testData/src/pkg/TestClassLoop.java63
-rw-r--r--testData/src/pkg/TestClassSwitch.java31
-rw-r--r--testData/src/pkg/TestClassTypes.java69
-rw-r--r--testData/src/pkg/TestClassVar.java59
6 files changed, 332 insertions, 0 deletions
diff --git a/testData/src/pkg/TestClassFields.java b/testData/src/pkg/TestClassFields.java
new file mode 100644
index 0000000..347b687
--- /dev/null
+++ b/testData/src/pkg/TestClassFields.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * 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 pkg;
+
+public class TestClassFields {
+
+ private static int[] sizes;
+ private static String[] names;
+
+ static {
+
+ names = new String[]{"name1", "name2"};
+ sizes = new int[names.length];
+ }
+}
diff --git a/testData/src/pkg/TestClassLambda.java b/testData/src/pkg/TestClassLambda.java
new file mode 100644
index 0000000..d3fc7f6
--- /dev/null
+++ b/testData/src/pkg/TestClassLambda.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * 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 pkg;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.OptionalInt;
+import java.util.function.IntBinaryOperator;
+import java.util.function.Supplier;
+
+public class TestClassLambda {
+
+ public int field = 0;
+
+ public void testLambda() {
+
+ List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
+ int b = (int)Math.random();
+
+ list.forEach(n -> {int a = 2 * n; System.out.println(a + b + field);});
+ }
+
+ public void testLambda1() {
+
+ int a = (int)Math.random();
+
+ Runnable r = () -> { System.out.println("hello" + a); };
+
+ Runnable r1 = () -> { System.out.println("hello1" + a); };
+ }
+
+ public void testLambda2() {
+ reduce((left, right) -> Math.max(left, right));
+ }
+
+ public void testLambda3() { // IDEA-127301
+ reduce(Math::max);
+ }
+
+ public void testLambda4() {
+ reduce(TestClassLambda::localMax);
+ }
+
+ public void testLambda5() {
+ String x = "abcd";
+ function(x::toString);
+ }
+
+ public void testLambda6() {
+ List<String> list = new ArrayList<String>();
+ int bottom = list.size() * 2;
+ int top = list.size() * 5;
+ list.removeIf( s -> (bottom >= s.length() && s.length() <= top) );
+ }
+
+ public static OptionalInt reduce(IntBinaryOperator op) {
+ return null;
+ }
+
+ public static String function(Supplier<String> supplier) {
+ return supplier.get();
+ }
+
+ public static int localMax(int first, int second) {
+ return 0;
+ }
+
+}
diff --git a/testData/src/pkg/TestClassLoop.java b/testData/src/pkg/TestClassLoop.java
new file mode 100644
index 0000000..25964d9
--- /dev/null
+++ b/testData/src/pkg/TestClassLoop.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * 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 pkg;
+
+public class TestClassLoop {
+
+ public static void testSimpleInfinite() {
+
+ while(true) {
+ System.out.println();
+ }
+
+ }
+
+ public static void testFinally() {
+
+ boolean a = (Math.random() > 0);
+
+ while(true) {
+ try {
+ if(!a) {
+ return;
+ }
+ } finally {
+ System.out.println("1");
+ }
+ }
+
+ }
+
+ public static void testFinallyContinue() {
+
+ boolean a = (Math.random() > 0);
+
+ for(;;) {
+ try {
+ System.out.println("1");
+ } finally {
+ if(a) {
+ System.out.println("3");
+ continue;
+ }
+ }
+
+ System.out.println("4");
+ }
+
+ }
+
+}
diff --git a/testData/src/pkg/TestClassSwitch.java b/testData/src/pkg/TestClassSwitch.java
new file mode 100644
index 0000000..aa49bb1
--- /dev/null
+++ b/testData/src/pkg/TestClassSwitch.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * 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 pkg;
+
+public class TestClassSwitch {
+
+ public void testCaseOrder(int a) {
+
+ switch(a) {
+ case 13:
+ System.out.println(13);
+ return;
+ case 5:
+ System.out.println(5);
+ }
+ }
+
+}
diff --git a/testData/src/pkg/TestClassTypes.java b/testData/src/pkg/TestClassTypes.java
new file mode 100644
index 0000000..70e23c3
--- /dev/null
+++ b/testData/src/pkg/TestClassTypes.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * 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 pkg;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestClassTypes {
+
+ public void testBoolean() {
+
+ byte var7 = 0;
+ long time = System.currentTimeMillis();
+
+ if(time % 2 > 0) {
+ var7 = 1;
+ } else if(time % 3 > 0) {
+ var7 = 2;
+ }
+
+ if(var7 == 1) {
+ System.out.println();
+ }
+ }
+
+ public boolean testBit(int var0) {
+ return (var0 & 1) == 1;
+ }
+
+ public void testSwitchConsts(int a) {
+
+ switch (a) {
+ case 88:
+ System.out.println("1");
+ break;
+ case 656:
+ System.out.println("2");
+ break;
+ case 65201:
+ case 65489:
+ System.out.println("3");
+ }
+ }
+
+ public void testAssignmentType(List list) {
+
+ List a = list;
+
+ if(a != null) {
+ (a = new ArrayList(a)).add("23");
+ }
+
+ System.out.println(a.size());
+ }
+
+}
diff --git a/testData/src/pkg/TestClassVar.java b/testData/src/pkg/TestClassVar.java
new file mode 100644
index 0000000..9f8fcac
--- /dev/null
+++ b/testData/src/pkg/TestClassVar.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * 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 pkg;
+
+
+public class TestClassVar {
+
+ private boolean field_boolean = (Math.random() > 0);
+ public int field_int = 0;
+
+ public void testFieldSSAU() {
+
+ for(int i = 0; i < 10; i++) {
+
+ try {
+ System.out.println();
+ } finally {
+ if (field_boolean) {
+ System.out.println();
+ }
+ }
+
+ }
+ }
+
+ public Long testFieldSSAU1() { // IDEA-127466
+ return new Long(field_int++);
+ }
+
+ public void testComplexPropagation() {
+
+ int a = 0;
+
+ while (a < 10) {
+
+ int b = a;
+
+ for(; a < 10 && a == 0; a++) {}
+
+ if (b != a) {
+ System.out.println();
+ }
+ }
+ }
+
+}