It seems that Clang 11 regressed functionality that was working in Clang 10 regarding calling a few overloaded operators in an immediate context. Specifically, we were not checking for immediate invocations of array subscripting and the arrow operators, but we properly handle the other overloaded operators.
This fixes the two problematic operators and adds some test coverage to show they're equivalent to calling the operator directly. This addresses PR50779.
Wonder if as a 'while we're here' we should make this the same as the others? Does CheckForImmediateInvocation handle an invalid result without the extra check like we have here?