Copilot also describes the function for you. It can code-complete a block of comments which describes the next many lines of code, and then also code-complete the lines of code for you.
It makes mistakes tho. For example, if you have two fields in a struct that could have been used and their names are very similar and they have the same type, then Copilot could use the wrong one. This is effectively a typo, except in code that was autogenerated, and it often takes a LONG TIME to debug a typo like this....
Ideally, you would be in a language with a more expressive type system (like Ocaml) so that those two fields have different types and such a typo cannot be valid.
It makes mistakes tho. For example, if you have two fields in a struct that could have been used and their names are very similar and they have the same type, then Copilot could use the wrong one. This is effectively a typo, except in code that was autogenerated, and it often takes a LONG TIME to debug a typo like this....
Ideally, you would be in a language with a more expressive type system (like Ocaml) so that those two fields have different types and such a typo cannot be valid.