blob: 1731384cc4466009bd7d70dec1e9bf64f22d409e [file] [log] [blame]
/*
* @test
* @bug 8168480
* @summary Speculative attribution of lambda causes NPE in Flow
* @compile T8168480.java
*/
import java.util.function.Supplier;
class T8168480 {
void f(Runnable r) { }
void s(Supplier<Runnable> r) { }
private void testVoid(boolean cond) {
f(() ->
new Runnable() {
public void run() {
switch (42) {
default:
break;
}
}
}.run());
f(() ->
f(() -> {
switch (42) {
default:
break;
}
}));
f(() -> {
if (cond) {
new Runnable() {
public void run() {
switch (42) {
default:
break;
}
}
}.run();
} else {
f(() -> {
switch (42) {
default:
break;
}
});
}
});
}
private void testReturn(boolean cond) {
s(() ->
new Runnable() {
public void run() {
switch (42) {
default:
break;
}
}
});
s(() ->
() -> {
switch (42) {
default:
break;
}
});
s(() -> {
if (cond) {
return new Runnable() {
public void run() {
switch (42) {
default:
break;
}
}
};
} else {
return () -> {
switch (42) {
default:
break;
}
};
}
});
s(() -> {
return cond ?
new Runnable() {
public void run() {
switch (42) {
default:
break;
}
}
} : () -> {
switch (42) {
default:
break;
}
};
});
s(() -> cond ?
new Runnable() {
public void run() {
switch (42) {
default:
break;
}
}
} : () -> {
switch (42) {
default:
break;
}
});
}
}