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