From 3854b67daac14188d47a86bb6b84ccb00c087f5f Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 1 Sep 2014 15:05:08 +0400 Subject: java-decompiler: post-import cleanup (tests reorganized) --- testData/src/pkg/TestClassFields.java | 28 ++++++++++++ testData/src/pkg/TestClassLambda.java | 82 +++++++++++++++++++++++++++++++++++ testData/src/pkg/TestClassLoop.java | 63 +++++++++++++++++++++++++++ testData/src/pkg/TestClassSwitch.java | 31 +++++++++++++ testData/src/pkg/TestClassTypes.java | 69 +++++++++++++++++++++++++++++ testData/src/pkg/TestClassVar.java | 59 +++++++++++++++++++++++++ 6 files changed, 332 insertions(+) create mode 100644 testData/src/pkg/TestClassFields.java create mode 100644 testData/src/pkg/TestClassLambda.java create mode 100644 testData/src/pkg/TestClassLoop.java create mode 100644 testData/src/pkg/TestClassSwitch.java create mode 100644 testData/src/pkg/TestClassTypes.java create mode 100644 testData/src/pkg/TestClassVar.java (limited to 'testData/src/pkg') 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 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 list = new ArrayList(); + 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 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(); + } + } + } + +} -- cgit v1.2.3