-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
975c89f
commit 6d97e37
Showing
2 changed files
with
28 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,24 @@ | ||
{ | ||
"title": "FIXME", | ||
"title": "\"GoSub\" statements should not be used", | ||
"type": "CODE_SMELL", | ||
"status": "ready", | ||
"remediation": { | ||
"func": "Constant\/Issue", | ||
"constantCost": "5min" | ||
"constantCost": "10min" | ||
}, | ||
"tags": [ | ||
"brain-overload" | ||
], | ||
"defaultSeverity": "Major", | ||
"ruleSpecification": "RSPEC-7173", | ||
"sqKey": "S7173", | ||
"scope": "All", | ||
"defaultQualityProfiles": ["Sonar way"], | ||
"quickfix": "unknown", | ||
"quickfix": "infeasible", | ||
"code": { | ||
"impacts": { | ||
"MAINTAINABILITY": "HIGH", | ||
"RELIABILITY": "MEDIUM", | ||
"SECURITY": "LOW" | ||
"MAINTAINABILITY": "MEDIUM" | ||
}, | ||
"attribute": "CONVENTIONAL" | ||
"attribute": "CLEAR" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,43 @@ | ||
FIXME: add a description | ||
|
||
// If you want to factorize the description uncomment the following line and create the file. | ||
//include::../description.adoc[] | ||
|
||
== Why is this an issue? | ||
|
||
FIXME: remove the unused optional headers (that are commented out) | ||
The `GoSub` statement in VB6 is an unstructured control flow statement. It can lead to complex and difficult-to-maintain code, as well as potential stack overflow errors due to improper return handling. | ||
|
||
//=== What is the potential impact? | ||
Modern programming practices recommend using proper subroutine or function calls instead, which provide better readability, maintainability, and error handling. | ||
|
||
== How to fix it | ||
//== How to fix it in FRAMEWORK NAME | ||
|
||
Replace `GoSub` statements with proper subroutine or function calls. | ||
|
||
=== Code examples | ||
|
||
==== Noncompliant code example | ||
|
||
[source,vb6,diff-id=1,diff-type=noncompliant] | ||
---- | ||
FIXME | ||
Sub ExampleProcedure() | ||
GoSub SubRoutine | ||
Exit Sub | ||
SubRoutine: | ||
' ... | ||
Return | ||
End Sub | ||
---- | ||
|
||
==== Compliant solution | ||
|
||
[source,vb6,diff-id=1,diff-type=compliant] | ||
---- | ||
FIXME | ||
---- | ||
Sub ExampleProcedure() | ||
Call SubRoutine | ||
End Sub | ||
//=== How does this work? | ||
|
||
//=== Pitfalls | ||
|
||
//=== Going the extra mile | ||
Sub SubRoutine() | ||
' ... | ||
End Sub | ||
---- | ||
|
||
== Resources | ||
=== Documentation | ||
|
||
//== Resources | ||
//=== Documentation | ||
//=== Articles & blog posts | ||
//=== Conference presentations | ||
//=== Standards | ||
//=== External coding guidelines | ||
//=== Benchmarks | ||
* Microsoft Learn - https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/gosubreturn-statement[GoSub...Return statement] |