internal override void TranslateToILInitializer(ILGenerator il){
this.rootObject.TranslateToILInitializer(il);
if (!this.rootObjectInferredType.Equals(this.rootObject.InferType(null)))
this.InvalidateBinding();
if (this.defaultMember != null) return;
if (this.member != null)
switch(this.member.MemberType){
case MemberTypes.Constructor:
case MemberTypes.Method:
case MemberTypes.NestedType:
case MemberTypes.Property:
case MemberTypes.TypeInfo: return;
case MemberTypes.Field:
if (this.member is JSExpandoField){
this.member = null; break;
}
return;
}
this.refLoc = il.DeclareLocal(Typeob.LateBinding);
il.Emit(OpCodes.Ldstr, this.name);
il.Emit(OpCodes.Newobj, CompilerGlobals.lateBindingConstructor);
il.Emit(OpCodes.Stloc, this.refLoc);
}