Avoid Complex Expressions in Call Arguments
Overview
Avoid complex expressions in call arguments.
ATC Finding Message:
Avoid complex expressions in call arguments; extract into a variable
Rationale
Method call arguments should be simple variables, literals, or single method calls. Nesting deep method chains or complex expressions like COND #( ... ) inside arguments reduces readability and makes debugging difficult. Extract complex expressions into local variables before the call.
Non-Compliant
abap
lo_service->process( iv_param = lo_factory->get_builder( )->build( ) ).Compliant
abap
DATA(lo_item) = lo_factory->get_builder( )->build( ).
lo_service->process( iv_param = lo_item ).Suppression
To suppress findings for this rule, append the pseudo-comment to the statement:
abap
" Standard pseudo-comment:
... "#EC NO_COMPLEX_ARG
" SAP CI_ prefix format:
... "#EC CI_NO_COMPLEX_ARGRelated Rules
- Avoid Method Call Chains Longer Than the Configured Limit —
#EC NO_METHOD_CHAIN - Enforce Cognitive Complexity Thresholds per Procedure —
#EC MAX_COGNITIVE
Technical Details
- Native ATC Class:
/SKYL/CL_NO_COMPLEX_ARG - ABAP Implementation: /skyl/cl_no_complex_arg.clas.abap
- Rule Metadata: rules-data.mjs (Line 6116)