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;
	}
}