The new clang-tidy pass modernize-use-trailing-return rewrites function signatures to use a trailing return type.
A fair amount of tests are included.
Does not work on return types which span locations before and after the function name (e.g. functions returning function pointers). The pass may fail if the return types are from missing headers (e.g. when clang-tidy is run without a compilation database or all needed include directories)