classrules
cpp.ClassRules.definitions
Section titled “cpp.ClassRules.definitions”def ClassRules.definitions (items : List Item) : List (String * ClassDefinition)The class definitions among the items, by name.
cpp.ClassRules.definition
Section titled “cpp.ClassRules.definition”def ClassRules.definition (classes : List (String * ClassDefinition)) (x : String) : Option ClassDefinitionThe definition of a class of a name.
cpp.ClassRules.repeatedBase
Section titled “cpp.ClassRules.repeatedBase”def ClassRules.repeatedBase (seen : List String) (bs : List Base) : Option StringThe first name repeated among a class’s direct bases.
cpp.ClassRules.declaresVirtual
Section titled “cpp.ClassRules.declaresVirtual”def ClassRules.declaresVirtual (classes : List (String * ClassDefinition)) (aliases : List (String * TypeSyntax)) (cannotThrow : Bool) (fuel : Nat) (x : String) (key : String) : BoolWhether a class (or a base of it, within fuel levels) declares a member function of an identity that is virtual, and, when cannotThrow, declared noexcept too.
cpp.ClassRules.inBases
Section titled “cpp.ClassRules.inBases”def ClassRules.inBases (classes : List (String * ClassDefinition)) (aliases : List (String * TypeSyntax)) (cannotThrow : Bool) (bs : List Base) (key : String) : BoolWhether any base of a class (within fuel levels) declares a virtual member function of an identity (that cannot throw, when cannotThrow).
cpp.ClassRules.overriding
Section titled “cpp.ClassRules.overriding”def ClassRules.overriding (classes : List (String * ClassDefinition)) (aliases : List (String * TypeSyntax)) (bs : List Base) (ms : List Member) : Option (NodeId * String)The first member function of a class that breaks a rule on overriding: marked override without overriding, or overriding a function that cannot throw without being noexcept itself.
cpp.ClassRules.handlerReturn
Section titled “cpp.ClassRules.handlerReturn”def ClassRules.handlerReturn (ms : List Member) : Option NodeIdThe first return in a handler of a constructor’s function-try-block.
cpp.ClassRules.violation
Section titled “cpp.ClassRules.violation”def ClassRules.violation (items : List Item) : Option (NodeId * String)The first class definition among the items that breaks a rule, with its node and why.