
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
77 lines
1.8 KiB
Plaintext
77 lines
1.8 KiB
Plaintext
== Why is this an issue?
|
|
|
|
Testing ``++%PARMS++`` before the use of one or more parameters is a clear indication in the code that at least some parameters are treated as optional. However, failure to actually mark those parameters as such with ``++options( *nopass )++`` denies callers the ability to treat them as optional. Since all parameters after the first one explicitly declared ``++options( *nopass )++`` are also implicitly optional, this marking is only required once. However, for clarity you should consider explicitly marking all optional parameters.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,rpg]
|
|
----
|
|
DCL-PR VIOLATION1 EXTPGM; // Noncompliant
|
|
LASTNAME Char(10);
|
|
FIRSTNAME Char(10);
|
|
END-PR;
|
|
|
|
DCL-PI VIOLATION1;
|
|
LASTNAME Char(10);
|
|
FIRSTNAME Char(10);
|
|
END-PI;
|
|
|
|
dsply FIRSTNAME;
|
|
IF %PARMS > 1;
|
|
dsply LASTNAME;
|
|
EndIf;
|
|
*inlr = *on;
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,rpg]
|
|
----
|
|
DCL-PR VIOLATION1 EXTPGM;
|
|
LASTNAME Char(10);
|
|
FIRSTNAME Char(10) options( *nopass );
|
|
END-PR;
|
|
|
|
DCL-PI VIOLATION1;
|
|
LASTNAME Char(10);
|
|
FIRSTNAME Char(10) options( *nopass );
|
|
END-PI;
|
|
|
|
dsply FIRSTNAME;
|
|
IF %PARMS > 1;
|
|
dsply LASTNAME;
|
|
EndIf;
|
|
*inlr = *on;
|
|
----
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Mark optional parameters as such.
|
|
|
|
|
|
=== Highlighting
|
|
|
|
procedure name
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
=== on 28 Oct 2015, 19:58:28 Ann Campbell wrote:
|
|
Source: User suggestion with background from \http://www.itjungle.com/fhg/fhg010505-story02.html
|
|
|
|
=== on 29 Oct 2015, 13:55:15 Pierre-Yves Nicolas wrote:
|
|
Looks good.
|
|
|
|
endif::env-github,rspecator-view[]
|