### Description

`FROM test | eval x1 = pow(emp_no, 1), x2 = pow(x1, 1), x3 = pow(x2, 2)`

or

`FROM test | eval x1 = substring(ip1, 3), x2 = substring(x1, 2), x3 = substring(x2, 2)`

or

`FROM test | eval x1 = concat(ip1, ip2), x2 = concat(x1, "--"), x3 = concat(x2, "**")`

will fail with 

```
                "type": "verification_exception",
                "reason": "Found 1 problem\nline 1:65: Unknown column [x2], did you mean [x1]?"
```

Spawned from https://github.com/elastic/elasticsearch/issues/99472
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/AnalyzerTests.java
from test
            | eval date_parse(keyword, int)
            """, "second argument of [date_parse(keyword, int)] must be [string], found value [int] type [integer]");
    }
    public void testDateTruncOnInt() {
        verifyUnsupported("""
            from test
            | eval date_trunc("1M", int)
            """, "first argument of [date_trunc(\"1M\", int)] must be [datetime], found value [int] type [integer]");
    }
    public void testDateTruncOnFloat() {
        verifyUnsupported("""
            from test
            | eval date_trunc("1M", float)
            """, "first argument of [date_trunc(\"1M\", float)] must be [datetime], found value [float] type [double]");
    }
    public void testDateTruncOnText() {
        verifyUnsupported("""
            from test
            | eval date_trunc("1M", keyword)
            """, "first argument of [date_trunc(\"1M\", keyword)] must be [datetime], found value [keyword] type [keyword]");
    }
    public void testDateTruncWithNumericInterval() {
        verifyUnsupported("""
            from test
            | eval date_trunc(1, date)
            """, "second argument of [date_trunc(1, date)] must be [dateperiod or timeduration], found value [1] type [integer]");
    }
    public void testDateTruncWithSwappedArguments() {
        verifyUnsupported("""