We parse contract conditions on member functions during cp_parser_late_parsing_for_member when the body and default arguments are parsed since we need access to the completed class's members.
For defining declarations on deduced return type functions using the return value we may also need to defer contract parsing until the function body is completed so the return type can be deduced. Can we move this up in general for free functions?