# Pull request checklist Please review the following items before submitting a pull request. This list can also be used when reviewing pull requests. * Verify that new files have a license with correct file name. * Run `git diff` on all modified files to look for spurious changes such as `#include `. * If you added code that causes the compiler to emit a new error message, make sure that you also added a test that causes that error message to appear and verifies its correctness. * Annotate the code and tests with appropriate references to constraint and requirement numbers from the Fortran standard. Do not include the text of the constraint or requirement, just its number. * Alphabetize arbitrary lists of names. * Check dereferences of pointers and optionals where necessary. * Ensure that the scopes of all functions and variables are as local as possible. * Try to make all functions fit on a screen (40 lines). * Build and test with both GNU and clang compilers. * When submitting an update to a pull request, review previous pull request comments and make sure that you've actually made all of the changes that were requested. ## Follow the style guide The following items are taken from the [C++ style guide](C++style.md). But even though I've read the style guide, they regularly trip me up. * Run clang-format using the git-clang-format script from LLVM HEAD. * Make sure that all source lines have 80 or fewer characters. Note that clang-format will do this for most code. But you may need to break up long strings. * Review declarations for proper use of `constexpr` and `const`. * Follow the C++ [naming guidelines](C++style.html#naming) * Ensure that the names evoke their purpose and are consistent with existing code. * Used braced initializers. * Review pointer and reference types to make sure that you're using them appropriately. Note that the [C++ style guide](C++style.md) contains a section that describes all of the pointer types along with their characteristics. * Declare non-member functions ```static``` when possible. Prefer ```static``` functions over functions in anonymous namespaces.