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