Metric-SwitchComplexity¶
Switch Complexity
Required inputs: RFG
Computes the number of nodes in the control flow graph of a routine that have more than one outgoing edge.
This metric does not count short circuit logical operators. In addition, the case-sections of a switch-section are not counted. Instead, each occurring switch-statement as a whole increases the value by one.
Roughly speaking, the value is computed by summing up
- the number of if-statements,
- the number of loop statements (e.g. for and while),
- the number of conditional (?) operators,
- the number of catch clauses, and
- the number of switch-statements
- plus the value one.
So value of this metric is always greater zero.
Possible Messages
This rule has no predefined messages.
Options¶
This rule shares the following common options: exclude_messages_in_system_headers, excludes, includes, justification_checker, post_processing, provider, severity
This rule shares the following common metric options: base_view_name, excluded_node_types, hierarchy_edge_name, hierarchy_view_name, propagate, report_all_values, report_propagated_values
The following places define options that affect this rule: Analysis-GlobalOptions
display_name¶
display_name : str | None = 'Switch Complexity'
max_value¶
max_value : int | None = None
min_value¶
min_value : int | None = None
rfg_metric_name¶
rfg_metric_name : str = 'Metric.Switch_Complexity'