Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/EscapeAnalysisLambdaInConstructor.java
Tagir Valeev 099d5fcf7c Prevent local value leaks via non-trivial field access
IDEA-230097 Inspection incorrectly shows "The call to 'assert true' always fails" on a Junit callback test

GitOrigin-RevId: 5ae966d139391f72c7d015297b093523dba5e5e8
2020-01-20 08:01:26 +00:00

39 lines
837 B
Java

// IDEA-230097
class EscapeAnalysisLambdaInConstructor {
public void incorrectInspection() {
Callbackable callbackable = new Callbackable();
EventListenerSetup listener = new EventListenerSetup();
callbackable.setCallback(listener.listener);
if (listener.listenerHasBeenCalled) {
throw new AssertionError();
}
callbackable.callCallback();
if (!listener.listenerHasBeenCalled) {
throw new AssertionError();
}
}
}
class Callbackable {
Runnable callback;
public void setCallback(Runnable callback) {
this.callback = callback;
}
public void callCallback(){
callback.run();
}
}
class EventListenerSetup {
final Runnable listener;
boolean listenerHasBeenCalled = false;
public EventListenerSetup() {
this.listener = () -> listenerHasBeenCalled = true;
}
}