Check tuples of abstract types (#15366)
The PR is quite simple (and I would like to keep it this way):
- Before we were only checking `type[]` type
- Now we also check `tuple[type[], ...]` type
There might be other types that we want to add in the future here:
`TypedDictType`, etc?
But, let's do it one by one, because smaller PRs are easier to merge :)
Closes #15264