ControlFlow (@NotNull ScopeOwner element, @NotNull PyControlFlowBuilder controlFlowBuilder) { SoftReference<ControlFlow> ref = element.getUserData(CONTROL_FLOW_KEY); ControlFlow flow = dereference(ref); if (flow == null) { flow = controlFlowBuilder.buildControlFlow(element); element.putUserData(CONTROL_FLOW_KEY, new SoftReference<>(flow)); } return flow; }