public class X { void foo() { FlowInfo mergedInfo = FlowInfo.conditional( // merging two true initInfos for such a negative case: if ((t && (b = t)) || f) r = b; // b may not have been initialized leftInfo.initsWhenTrue().copy().unconditionalInits() .mergedWith(rightInfo.initsWhenTrue().copy() .unconditionalInits()), falseMergedInfo); mergedInitStateIndex = currentScope.methodScope() .recordInitializationStates(mergedInfo); return mergedInfo; } }