in src/Epam.GraphQL/Helpers/ExpressionEqualityComparer.cs [28:88]
private static void AddHashCode(ParameterScope? parameterScope, ref HashCode hashCode, Expression? expression)
{
if (expression == null)
{
return;
}
hashCode.Add(expression.NodeType);
hashCode.Add(expression.Type);
switch (expression)
{
case BinaryExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case ConditionalExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case ConstantExpression expr:
AddHashCode(ref hashCode, expr);
break;
case DefaultExpression expr:
AddHashCode(ref hashCode, expr);
break;
case LambdaExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case InvocationExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case ListInitExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case MemberExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case MemberInitExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case MethodCallExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case NewArrayExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case NewExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case ParameterExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case TypeBinaryExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
case UnaryExpression expr:
AddHashCode(parameterScope, ref hashCode, expr);
break;
default:
throw new NotImplementedException($"Unhandled expression node type: {expression.NodeType}");
}
}