ERC20Votes and ERC20VotesComp Question

I have a question about using ERC20Votes. The documentation says the following:

"By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this will significantly increase the base gas cost of transfers."

I do not understand how overriding the {delegates} function enables self-delegation. When I look at the source code for the {delegates} method, it looks like it just reads the _delegates map and returns the value corresponding to the address that is passed.

Does the user have to call the delegate(..) method and pass its own address to be able vote? because the internal _delegate(...) method does not check that delegator and delegatee are different.

Thanks!

This was actually an error in the documentation. I've removed that recommendation now.

Does the user have to call the delegate(..) method and pass its own address to be able vote?

Yes, exactly.