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

display_name

display_name : str | None = 'Switch Complexity'

Description of the metric shown in the dashboard. If None, rfg_metric_name is used.
 

max_value

max_value : int | None = None

Maximum allowed value. None if unlimited.
 

min_value

min_value : int | None = None

Minimum allowed value. None if unlimited.
 

rfg_metric_name

rfg_metric_name : str = 'Metric.Switch_Complexity'

Name of the node attribute storing the metric value in the RFG.