//CONFORMING
public static UnaryExpression TypeAs(Expression expression, Type type)
{
RequiresCanRead(expression, "expression");
ContractUtils.RequiresNotNull(type, "type");
if (type.IsValueType && !TypeUtils.IsNullableType(type))
{
throw Error.IncorrectTypeForTypeAs(type);
}
return(new UnaryExpression(ExpressionType.TypeAs, expression, type, null));
}