private Expression GetLimitedSelf() {
// Convert to DynamicObject rather than LimitType, because
// the limit type might be non-public.
if (TypeUtils.AreEquivalent(Expression.Type, typeof(DynamicObject))) {
return Expression;
}
return Expression.Convert(Expression, typeof(DynamicObject));
}