public class CompletionAllocationExpressionIsParent5 {
	CompletionAllocationExpressionIsParent5(int i){}
	
	long zzlong;
	int zzint;
	double zzdouble;
	boolean zzboolean;
	Object zzObject;
	
	void foo() {
		new CompletionAllocationExpressionIsParent5(1, zz
	}
}