| // 5, 28 -> 5, 30 replaceAll = true, removeDeclaration = true |
| package p; |
| |
| class TestInlineMethodRef { |
| public static final FI fi = TestInlineMethodRef::m; |
| |
| private static int m(int x) { |
| return x++; |
| } |
| |
| static { |
| FI a = fi; // [1] |
| FI b; |
| b = fi; // [2] |
| } |
| |
| private FI fun1() { |
| return fi; // [3] |
| } |
| |
| FI[] c = new FI[] {fi, fi}; // [4] |
| FI[][] d = new FI[][] {{fi, fi}, {fi}}; // [5] |
| FI[] e = {fi, fi}; // [6] |
| FI[][] f = {{fi}, {fi}}; // [7] |
| |
| int g = fun2(fi); // [8] |
| TestInlineMethodRef h = new TestInlineMethodRef(fi); // [9] |
| private int fun2(FI fi) {return 0;} |
| public TestInlineMethodRef(FI fi) {} |
| |
| private void fun3() { |
| F f1 = (fi_p) -> fi; // [10] |
| F f2 = (fi_p) -> { |
| return fi; // [11] |
| }; |
| boolean flag = true; |
| FI fi4 = flag ? fi : fi; // [12] |
| } |
| } |
| |
| @FunctionalInterface |
| interface FI { |
| int foo(int x); |
| } |
| |
| @FunctionalInterface |
| interface F { |
| FI bar(Object o); |
| } |