void () { foo0(() -> "42"); foo0(() -> { return "42"; }); foo0(() -> { helper(); return "42"; }); foo1((i) -> "42"); foo1(i -> { return "42"; }); foo1((Integer i) -> { helper(); if (i > 1) { return "42"; } return "43"; }); foo2((i, j) -> "42"); foo2((Integer i, Integer j) -> { helper(); return "42"; }); Function2<Integer, Integer, String> f = (Integer i, Integer k) -> { helper(); if (i > 1) { return "42"; } return "43"; }; Function2<Integer, Integer, String> f1 = (Integer i1, Integer k1) -> { Function2<Integer, Integer, String> f2 = (Integer i2, Integer k2) -> { helper(); if (i2 > 1) { return "42"; } return "43"; }; if (i1 > 1) { return f.invoke(i1, k1); } return f.invoke(i1, k1); }; Runnable runnable = () -> { }; foo1((Integer i) -> { if (i > 1) { return "42"; } foo0(() -> { if (true) { return "42"; } return "43"; }); return "43"; }); }