public static DefiniteAssignmentBitSet operator |(DefiniteAssignmentBitSet a, DefiniteAssignmentBitSet b)
{
if (AreEqual(a, b))
{
return(a);
}
DefiniteAssignmentBitSet res;
if (a.large_bits == null)
{
res = new DefiniteAssignmentBitSet(a);
res.bits |= b.bits;
res.bits &= ~copy_on_write_flag;
return(res);
}
res = new DefiniteAssignmentBitSet(a);
res.Clone();
var dest = res.large_bits;
var src = b.large_bits;
for (int i = 0; i < dest.Length; ++i)
{
dest[i] |= src[i];
}
return(res);
}