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

    <tr>
        <th>Summary</th>
        <td>
            HeuristicResolver incorrectly applies const-checking to static methods called through an instance
        </td>
    </tr>

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

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

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

<pre>
    In the following code:

```c++
template <typename T>
struct Waldo {
  static void find();
};

template <typename T>
void foo(const Waldo<T>& t) {
 t.find();
}
```

HeuristicResolver fails to resolve the call to `t.find()` to `Waldo::find()` because it's applying const-checking even though that doesn't apply to static methods (even if you call them through an instance, as in this example).
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8Uk2P2zgM_TX0hZhAlr8PPmQyG8xeFwv0rEiMrVaWDInONP--sOOinc6gAAHbfOZ75CNVSnbwRD1UzyDlqx3GU5gm5Q3FEqSE6iVTC48h9u-x7BLMvf_XI4-E1-BceLN-QB0MQXEEsUUtHqFBPq8hjkzT7BQTQnHi-0xeTYT_Q_EPiGPiuGjGL8qZgNCsvyMmVmw13oI1eLXegGxBdlCsKDQv-8vfiR_FIYBsdfBpl4DitOGyRgbZ_VTkw2cyvw3z0HulJdrEVv9HKbgbRbwq6xJywPjIbM5o5dyag1q8I67Fnt1bOUJxfA9fSKslEVoG2SRU8-zuD4d94ic9kv62ftKN1h2EZRiRR8VoAiUPsuFHySqzezgRj8EkBNluVfaK97DsLY40IY9x41EerU-svCaQJ1QJ7aphE9J3Nc2OQHaHzPSF6YpOZdTnTdHKrs2bNht7KlWb59ecLtW1akTX1lVOoszLTom6KqrM9lLISuRFLsqizttDIVVlmrJWbV6a1mgoBU3KuoNzt-kQ4pDZlBbqc1nldZk5dSGX9ov19IYbuh9r7Neip8syJCiFs4nTLxq27Kj_uDrrdYiRNLv75pql9KfPH21cfSPzmWnZEl0_Ms9pXaw8gzwPlsflctBhAnle-9kfT3MMX0kzyPM2RQJ53se89fJHAAAA___N6Cd4">