protected override CType __GetCType(IIdentifierTypeResolver Resolver) { var LeftCType = LeftExpression.GetCachedCType(Resolver); var CUnionStructType = LeftCType.GetCUnionStructType(); if (CUnionStructType != null) { return(CUnionStructType.GetFieldByName(FieldName).CType); } else { throw (new NotImplementedException(String.Format("Invalid CType '{0}', {1}", LeftCType, LeftCType.GetType()))); } }