include::../intro.adoc[] == Why is this an issue? include::../why.adoc[] === What is the potential impact? include::../impact.adoc[] [source,vbnet,diff-id=1,diff-type=noncompliant] ---- Function Abs(ByVal n As Integer) As Integer ' Noncompliant: cognitive complexity = 5 If n >= 0 Then ' +1 Return n Else ' +2, due to nesting If n = Integer.MinValue Then ' +1 Throw New ArgumentException("The absolute value of int.MinValue is outside of int boundaries") Else ' +1 Return -n End If End If End Function ---- They should be refactored to have lower complexity: [source,vbnet,diff-id=1,diff-type=compliant] ---- Function Abs(ByVal n As Integer) As Integer ' Compliant: cognitive complexity = 3 If n = Integer.MinValue Then ' +1 Throw New ArgumentException("The absolute value of int.MinValue is outside of int boundaries") Else If n >= 0 Then ' +1 Return n Else ' +1 Return -n End If End Function ---- include::../resources.adoc[] include::../rspecator-dotnet.adoc[]