<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59236>59236</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Array of shorts is detected as integerLiteral by AST matcher
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Zilleplus
      </td>
    </tr>
</table>

<pre>
    MLIR built at commit  609b95cea16ea18330ca4f4ec2edb60114cc69cf (latest main)
Reproduced with:
 
```
clang-query test.cpp
clang-query> match integerLiteral(hasType(asString("long")))
```
result:
```
Match #1:

/tmp/test.cpp:4:16: note: "root" binds here
  for(auto A : Accs) 
               ^~~~
```

With test.cpp:
```
const static short Accs[] = {}; 
void foo(){
  for(auto A : Accs) 
  {}
}
```

It doesn't seem logical that a integerLiteral would match on a short array, or am I missing something?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNk8Fu2zAMQL9GvhANbNly4oMP6dIABdpLW2DAbrLE2Bpky5PkFvn70XHSblkOMyRRMgnyiaQap4_189PjCzSTsRFkBOX63kSAMq2aSiiUWUlzk-epksWhQMVRN2WaZYVSZaUOwPjGyoghQi_NwHjF0h1Lty84eqcnhRo-TOxYvl3-wyJYmZ7H6aisHNq7XxP6I8y-Vmoc_9Gw_IFiRNWBGSK26J9MRC8tEXQyvB1HpJ0Mr9GboaUt49y6ecdnqmXcCu4xTDZ-El5pn08RGc-zL4tl5fvYj_N6Ac63Bc2spAUGF3GWFN07F0lAYwYdoEOP51TAwfkZeYoOyJKst0oFwoSLwV8fEw9sfRm3UJf1O6Ub_mC6nXA3UMVClNEoCJ3zcYkt7pnYEQrN9T1b71h-f4Z5d0YTsDsltpq1_3uJs6cF43NzC_0xgnYYqIvWBIfYg3WtUdJC7Kg35VXh4cNNVp97wg2kX24ivZdHxr-B8yB7eITehEA9AcH1GLu5O_J9gnVWllUp8ioVia5zXeWVTKKJFuvt7AHcYXEYwATQGFFFamcZrjGaI2xf3xYO9Mnkbd3FOIY5-XxPo6WSTM2K3hYdrH2_iDt6Iz_JKx2JcEJK215UPC-TrpZcCME3uMmlyous4aXUIlNZWhxSXegisbJBG-q5ZJwP-AEnF3O3i11iap5ynmV8k5WFSMVKrDMtm2qtM3XYpKViRYr0YO1q5lg53ya-PiE1UxtIaU2I4UspKYHtgFgvHZJQuSkz9Q9jLY52CskpeH2C_w0IVEUI">