public override Type EnsureType(ErrorCollector collector, Type type, ref bool success, bool must_unbox) { this.must_unbox |= must_unbox; if ((RealType & type) == 0) { success = false; collector.ReportLookupTypeError(Environment, Name, RealType, type); } else { RealType &= type; } return(RealType); }
public override Type EnsureType(ErrorCollector collector, Type type, ref bool success, bool must_unbox) { this.must_unbox |= must_unbox; if (ForceBack) { return(Source.EnsureType(collector, type, ref success, must_unbox)); } else { if ((Mask & type) == 0) { success = false; collector.ReportLookupTypeError(Environment, Name, Mask, type); } Mask &= type; return(Mask); } }