The following table lists the LHCb coding rules which are checked, together with comments on the implementation of the checks.
Rule | Checked? |
Notes |
R1 | No | Can be checked outside scope of RuleChecker tool |
R2 | No | Can be checked outside scope of RuleChecker tool |
R3 | No | Can be checked outside scope of RuleChecker tool |
R4 | Yes | |
R5 | Yes | |
R6 | Yes | $Id: $ is also allowed |
R7 | No | Can be checked outside scope of RuleChecker tool |
R8 | No | Not implementable |
R9 | Yes | Not fully implementable. Alphanumeric characters are checked, including exceptions from R13 and R14, in names of classes, enums, types, fields, functions, parameters of functions and methods. This rule should be split into implementable and non-implementable parts. |
R10 | No | Implemented but not checked |
R11 | Yes | Partial implementation: - In a function or method, it is forbidden to have variables or parameters differing only by case - In a module (file), it is forbidden to have members or variables differing only by case - In a module (file), it is forbidden to have functions or methods differing only by case The scope of this rules should be clarified. |
R12 | Yes | Imperfect implementation: - No two or three character names are allowed - No names consisting of a single repeating letter are allowed Current version of tool cannot distinguish between loop variables and other local variables |
R13 | Yes | Not fully implementable: cannot check "Protected
variables may be used for base classes" Conflicts with R14 - static members always give error |
R14 | Yes | Conflicts with R13 - static members always give error |
R15 | Yes | |
R16 | Yes | |
R17 | Yes | Not fully implementable: cannot check verbs - Checks first letter of functions and methods (except those of friends) |
R18 | No | Not implementable (?) |
R19 | Yes | |
R20 | Yes | Partial implementation: only name of file is checked (not name of package) |
R21 | Yes | Identical to Alice rule GC2 |
R22 | Yes | Partial implementation: does not consider typedef |
R23 | Yes | Partial implementation: - do not check if inline functions are at end of file - only accessor and set functions are accepted as inline More precise definition of rule is required |
R24 | No | Implemented but not checked: - Only a simple minded implementation. Thorough implementation not easy. |
R25 | Yes | Identical to Alice rule RC10 |
R26 | Yes | Identical to Alice rule RC9 |
R27 | No | Medium difficulty to implement |
R28 | Yes | Partial implementation: - only function (not the arguments) is checked |
R29 | Yes | |
R30 | No | Medium difficulty to implement |
R31 | No | Medium difficulty to implement |
R32 | No | Medium difficulty to implement |
R33 | No | Not implementable |
R34 | No | Can be checked outside scope of RuleChecker tool |
R35 | No | Can be checked outside scope of RuleChecker tool |
R36 | Yes | |
R37 | Yes | Checks if last two lines contain author and date |
R38 | Yes | Cannot check is preceding comment applies to the function |
R39 | No | Can be checked outside scope of RuleChecker tool |
R40 | No | Hard to implement |
R41 | No | Hard to implement |
R42 | No | Hard to implement |
R43 | No | Hard to implement |
R44 | No | Can be checked outside scope of RuleChecker tool |
R45 | No | Not obvious how to implement |
R46 | No | |
R47 | No | Not implementable |
R48 | No | Medium difficulty to implement |
R49 | No | Medium difficulty to implement (with IRST tool v2) |
R50 | No | Not implementable |
R51 | Yes | |
R52 | Yes | |
R53 | No | Hard to implement |
R54 | No | |
R55 | No | |
R56 | No | Can be checked outside scope of RuleChecker tool |
R57 | No | Can be checked outside scope of RuleChecker tool |
R58 | Yes | |
R59 | No | Medium difficulty to implement |
R60 | No | Medium difficulty to implement |