static Result coerceUserList(
      final Collection<Expression> expressions,
      final ExpressionTypeManager typeManager
  ) {
    return coerceUserList(expressions, typeManager, Collections.emptyMap());
  }
@Test
  public void shouldCoerceArrayOfCompatibleLiterals() {
    // Given:
    final ImmutableList<Expression> expressions = ImmutableList.of(
        new CreateArrayExpression(
            ImmutableList.of(
                new IntegerLiteral(10),
                new IntegerLiteral(289476)
            )
        ),
        new CreateArrayExpression(
            ImmutableList.of(
                new StringLiteral("123456789000"),
                new StringLiteral("22"),
                new StringLiteral("\t -100 \t")
            )
        )
    );

    // When:
    final Result result = CoercionUtil.coerceUserList(expressions, typeManager);

    // Then:
    assertThat(result.commonType(), is(Optional.of(SqlTypes.array(SqlTypes.BIGINT))));
    assertThat(result.expressions(), is(ImmutableList.of(
        cast(new CreateArrayExpression(
            ImmutableList.of(
                new IntegerLiteral(10),
                new IntegerLiteral(289476)
            )
        ), SqlTypes.array(SqlTypes.BIGINT)),
        cast(new CreateArrayExpression(
            ImmutableList.of(
                new StringLiteral("123456789000"),
                new StringLiteral("22"),
                new StringLiteral("\t -100 \t")
            )
        ), SqlTypes.array(SqlTypes.BIGINT))
    )));
  }