public class CompletionConditionalExpression3 {
	int var1;
	boolean var2;
	Object var3;
	String var4
	
	void foo() {
		boolean a, b;
		int c;
		c = a == b ? var1 : (var
	}
}