??の実行順序について

LeetCodeをやっている時バグを遭遇した。

dic[a] = dic[a] ?? 0 + 1

のようなコードを書いた時、dic[a]は常に1になってしまう。
原因は0 + 1はいつも先に実行される。
だから上記にコードは下記のように書かないといけない:

dic[a] = (dic[a] ?? 0) + 1