presto-main/src/main/java/io/prestosql/operator/scalar/ArrayHashCodeOperator.java/ArrayHashCodeOperator/hashLong
class ArrayHashCodeOperator:    @TypeParameter("T")
    @TypeParameterSpecialization(name = "T", nativeContainerType = long.class)
    @SqlType(StandardTypes.BIGINT)
    public static long hashLong(
            @OperatorDependency(operator = HASH_CODE, argumentTypes = "T") MethodHandle hashFunction,
            @TypeParameter("T") Type type,
            @SqlType("array(T)") Block block)
    {
        try {
            long hash = 0;
            for (int i = 0; i < block.getPositionCount(); i++) {
                hash = CombineHashFunction.getHash(hash, block.isNull(i) ? NULL_HASH_CODE : (long) hashFunction.invokeExact(type.getLong(block, i)));
            }
            return hash;
        }
        catch (Throwable t) {
            throw internalError(t);
        }
    }