diff options
Diffstat (limited to 'plugins/java-decompiler/engine/testData/src/pkg')
15 files changed, 633 insertions, 0 deletions
diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestClassCast.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassCast.java new file mode 100644 index 000000000000..a831e54c98c1 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestClassCast.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; + +import java.util.*; + +public class TestClassCast { + public void test(List list) { + List a = list; + if (a != null) { + (a = new ArrayList(a)).add("23"); + } + System.out.println(a.size()); + } +}
\ No newline at end of file diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestClassFields.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassFields.java new file mode 100644 index 000000000000..a1f2facaf41c --- /dev/null +++ b/plugins/java-decompiler/engine/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/plugins/java-decompiler/engine/testData/src/pkg/TestClassLambda.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassLambda.java new file mode 100644 index 000000000000..589766e36506 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestClassLambda.java @@ -0,0 +1,77 @@ +/* + * 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.*; +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 r1 = () -> { System.out.println("hello1" + a); }; + Runnable r2 = () -> { System.out.println("hello2" + 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/plugins/java-decompiler/engine/testData/src/pkg/TestClassLoop.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassLoop.java new file mode 100644 index 000000000000..0ecab7de08c3 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestClassLoop.java @@ -0,0 +1,61 @@ +/* + * 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/plugins/java-decompiler/engine/testData/src/pkg/TestClassNestedInitializer.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassNestedInitializer.java new file mode 100644 index 000000000000..ee8927aee89d --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestClassNestedInitializer.java @@ -0,0 +1,25 @@ +/* + * 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 TestClassNestedInitializer { + public String secret; + + public void test() { + TestClassNestedInitializer obj = new TestClassNestedInitializer() { {secret = "one";} }; + System.out.println(obj.secret); + } +}
\ No newline at end of file diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestClassSwitch.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassSwitch.java new file mode 100644 index 000000000000..0c95d2530e3b --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestClassSwitch.java @@ -0,0 +1,30 @@ +/* + * 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/plugins/java-decompiler/engine/testData/src/pkg/TestClassTypes.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassTypes.java new file mode 100644 index 000000000000..a745aebef600 --- /dev/null +++ b/plugins/java-decompiler/engine/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/plugins/java-decompiler/engine/testData/src/pkg/TestClassVar.java b/plugins/java-decompiler/engine/testData/src/pkg/TestClassVar.java new file mode 100644 index 000000000000..09dcded92d66 --- /dev/null +++ b/plugins/java-decompiler/engine/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(); + } + } + } +} diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestCodeConstructs.java b/plugins/java-decompiler/engine/testData/src/pkg/TestCodeConstructs.java new file mode 100644 index 000000000000..fd903e4add33 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestCodeConstructs.java @@ -0,0 +1,27 @@ +/* + * 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; + +class TestCodeConstructs { + void expressions() { + new String().hashCode(); + } + + private int count = 0; + Integer fieldIncrement() { + return new Integer(count++); + } +}
\ No newline at end of file diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestConstants.java b/plugins/java-decompiler/engine/testData/src/pkg/TestConstants.java new file mode 100644 index 000000000000..09b5419fc3e4 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestConstants.java @@ -0,0 +1,64 @@ +/* + * 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 TestConstants { + static final boolean T = true; + static final boolean F = false; + + static final char C0 = '\n'; + static final char C1 = 'a'; + static final char C2 = 512; + + static final byte BMin = Byte.MIN_VALUE; + static final byte BMax = Byte.MAX_VALUE; + + static final short SMin = Short.MIN_VALUE; + static final short SMax = Short.MAX_VALUE; + + static final int IMin = Integer.MIN_VALUE; + static final int IMax = Integer.MAX_VALUE; + + static final long LMin = Long.MIN_VALUE; + static final long LMax = Long.MAX_VALUE; + + static final float FNan = Float.NaN; + static final float FNeg = Float.NEGATIVE_INFINITY; + static final float FPos = Float.POSITIVE_INFINITY; + static final float FMin = Float.MIN_VALUE; + static final float FMax = Float.MAX_VALUE; + + static final double DNan = Double.NaN; + static final double DNeg = Double.NEGATIVE_INFINITY; + static final double DPos = Double.POSITIVE_INFINITY; + static final double DMin = Double.MIN_VALUE; + static final double DMax = Double.MAX_VALUE; + + static @interface A { + Class<?> value(); + } + + @A(byte.class) void m1() { } + @A(char.class) void m2() { } + @A(double.class) void m3() { } + @A(float.class) void m4() { } + @A(int.class) void m5() { } + @A(long.class) void m6() { } + @A(short.class) void m7() { } + @A(boolean.class) void m8() { } + @A(void.class) void m9() { } + @A(java.util.Date.class) void m10() { } +}
\ No newline at end of file diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestDebugSymbols.java b/plugins/java-decompiler/engine/testData/src/pkg/TestDebugSymbols.java new file mode 100644 index 000000000000..167351031dc8 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestDebugSymbols.java @@ -0,0 +1,27 @@ +/* + * 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; + +// need to be compiled with debug info +class TestDebugSymbols { + private int m() { + String text = "text"; + long prolonged = 42L; + float decimated = prolonged / 10.0f; + double doubled = 2 * decimated; + return (text + ":" + prolonged + ":" + decimated + ":" + doubled).length(); + } +} diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestDeprecations.java b/plugins/java-decompiler/engine/testData/src/pkg/TestDeprecations.java new file mode 100644 index 000000000000..18ba0b5f10a6 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestDeprecations.java @@ -0,0 +1,36 @@ +/* + * 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 TestDeprecations { + /** @deprecated */ + public int byComment; + + @Deprecated + public int byAnno; + + /** @deprecated */ + public void byComment() { } + + @Deprecated + public void byAnno() { } + + /** @deprecated */ + public static class ByComment { } + + @Deprecated + public static class ByAnno { } +}
\ No newline at end of file diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestEnum.java b/plugins/java-decompiler/engine/testData/src/pkg/TestEnum.java new file mode 100644 index 000000000000..43fab48355f2 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestEnum.java @@ -0,0 +1,36 @@ +/* + * 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 enum TestEnum { + E1, + E2() { + @Override + public void m() { } + }, + E3("-"), + E4("+") { + @Override + public void m() { } + }; + + public void m() { } + + private String s; + + private TestEnum() { this("?"); } + private TestEnum(@Deprecated String s) { this.s = s; } +} diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestExtendsList.java b/plugins/java-decompiler/engine/testData/src/pkg/TestExtendsList.java new file mode 100644 index 000000000000..812f83689ba6 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestExtendsList.java @@ -0,0 +1,26 @@ +/* + * 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 TestExtendsList { + static <T extends Comparable<? super T>> T m1(T t) { + return null; + } + + static <T extends Object & Comparable<? super T>> T m2(T t) { + return null; + } +}
\ No newline at end of file diff --git a/plugins/java-decompiler/engine/testData/src/pkg/TestMethodParameters.java b/plugins/java-decompiler/engine/testData/src/pkg/TestMethodParameters.java new file mode 100644 index 000000000000..b9739e9cfda4 --- /dev/null +++ b/plugins/java-decompiler/engine/testData/src/pkg/TestMethodParameters.java @@ -0,0 +1,40 @@ +/* + * 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 TestMethodParameters { + TestMethodParameters(@Deprecated int p01) { } + void m1(@Deprecated int p02) { } + static void m2(@Deprecated int p03) { } + + class C1 { + C1(@Deprecated int p11) { } + void m(@Deprecated int p12) { } + } + + static class C2 { + C2(@Deprecated int p21) { } + void m1(@Deprecated int p22) { } + static void m2(@Deprecated int p23) { } + } + + void local() { + class Local { + Local(@Deprecated int p31) { } + void m(@Deprecated int p32) { } + } + } +}
\ No newline at end of file |