And I half started to defend having autocomplete type stuff for big class abstraction template blah blah 'fun', but then stopped. Yes, that's annoying to deal with, but one of the first lessons I learned was that you don't just silence a warning by doing a cast, you understand what the warning means and then fix it. So yes, you need to think through what the right thing to call (and what to pass), even more so when it's tricky.