check_migration_list.md
August 28, 2023 ยท View on GitHub
Legend:
- TBM = To be migrated
- TBD = To be discussed
| Legacy check | Cloud check | Quickfixes | Additional info |
|---|---|---|---|
| Avoid default table keys | "Internal table definitions with default key" (/cc4a/avoid_default_key) | yes | |
| Boolean input parameter | "Method Signature" (/cc4a/method_signature), parameter CheckInputParamBoolean | no | |
| CALL METHOD usage | TBM (#1) | yes | |
| Chain declaration usage | "Chained declarations" (/cc4a/chain_declaration) | yes | |
| CHECK statement position | no | n/a | This check is a subset of the SAP-delivered Extended Program Check |
| CHECK in LOOP | TBM (#5) | yes | |
| COLLECT usage | TBM (#6) | no | not relevant for ABAP Cloud (COLLECT is forbidden) |
| Combination of output parameters | "Method Signature" (/cc4a/method_signature), parameter CheckOutputParamType | no | |
| Comment position | TBD | no | The Cloud API for ABAP code analysis currently does not support comments |
| Comment type | TBD | no | The Cloud API for ABAP code analysis currently does not support comments |
| Comment usage | TBD | no | The Cloud API for ABAP code analysis currently does not support comments |
| Constant interface | "Constants in Interfaces" (/cc4a/check_constant_interface) | no | |
| Cyclomatic complexity | none | n/a | This is a subset of the SAP-delivered check "Procedural metrics" |
| CX_ROOT usage | none | n/a | This is a subset of the SAP-delivered Extended Program Check |
| Database access in unit tests | "Database access in unit tests" (/cc4a/db_access_in_ut) | no | |
| Deprecated classes | TBD | yes | Currently this check only searches for two specific classes/interfaces, and it does not follow any explicit recommendation in the style guide |
| Deprecated key words | TBM (#1) | yes | |
| Empty catch | none | n/a | This is a subset of the SAP-delivered Extended Program Check |
| Empty IF branches | none | n/a | This is a subset of the SAP-delivered Extended Program Check |
| Empty procedure | none | n/a | This is a subset of the SAP-delivered Extended Program Check |
| Assignment chaining | "Assignment Chaining" (/cc4a/equals_sign_chaining) | yes | |
| External call in unit test | none | n/a | Does not correspond to any section in the style guide |
| FORM usage | TBM (#10) | no | not relevant for ABAP Cloud (PERFORM is forbidden) |
| FUNCTION usage | TBM (#10) | no | not relevant for ABAP Cloud (non-RFC function module cannot be used anyway) |
| Magic numbers | none | n/a | This is a subset of the SAP-delivered Extended Program Check |
| Message easy to find | TBM (#11) | perhaps | currently blocked because there is no released remote API to find out whether a message class exists |
| Message translation | none | n/a | This is a subset of the SAP-delivered Extended Program Check |
| Boolean method names | TBD | no | While this seems to be "in the spirit" of Clean ABAP, it does not actually correspond to any section in the style guide |
| Missing interface | "Method Signature" (/cc4a/method_signature), parameter CheckPubMethodNoInterface | no | Creating a new global interface is not currently possible via the quick fix API |
| Nesting depth | none | n/a | Subset of SAP-delivered "Procedural metrics" check |
| Classic exception usage | none | n/a | Subset of SAP-delivered Extended Program Check |
| Number of attributes | none | n/a | Subset of SAP-delivered "Object-oriented metrics" check |
| Number of events | none | n/a | Subset of SAP-delivered "Object-oriented metrics" check |
| Number of executable statements | none | n/a | Subset of SAP-delivered "Procedural metrics" check |
| Number of interfaces | none | n/a | Subset of SAP-delivered "Object-oriented metrics" check |
| Number of methods | none | n/a | Subset of SAP-delivered "Object-oriented metrics" check |
| Number of public attributes | none | n/a | Subset of SAP-delivered "Object-oriented metrics" check |
| Number of output parameters | "Method Signature" (/cc4a/method_signature), parameter CheckOutputParamNumber | no | Should be merged with "Combination of output parameters" check |
| Prefer CASE to ELSEIF | TBM (#12) | yes | |
| Prefer RETURNING to EXPORTING | "Method Signature" (/cc4a/method_signature) | yes | |
| Prefer IS NOT to NOT IS | ""NOT IS" in logical expressions" (/cc4a/prefer_is_not ) | yes | |
| Prefer line_* over READ TABLE/LOOP AT ... WHERE | TBM (#1) | yes | Consider merging into "deprecated keywords" |
| Prefer NEW to CREATE OBJECT | TBM (#1) | yes | Consider merging into "deprecated keywords" |
| Prefer pragmas to pseudo comments | TBD | n/a | The Cloud API for ABAP code analysis currently does not support pragmas |
| Pseudo comment usage | TBD | no | The ATC already offers the option to not consider pseudo comments, so the stated purpose of this check doesn't need a check. However, one could see a use case for actually finding all locations where pseudo comments are used. |
| Omit optional EXPORTING | TBM (#1) | yes | |
| Optional parameters | "Method Signature" (/cc4a/method_signature), parameter CheckInputParamOptional | no | |
| READ TABLE into field symbols | TBD | no | The Extended Program Check has a similar but not identical check |
| RECEIVING usage | TBM (#1) | yes | |
| Returning name | "Method Signature" (/cc4a/method_signature), parameter CheckRetParamNotNamedResult | yes | |
| Scope of variable | TBM (#14) | yes | |
| Self-reference | "Find unnecessary self-references" (/cc4a/avoid_self_reference) | yes | |
| TEST-SEAM usage | "Usage of TEST-SEAM" (/cc4a/avoid_test_seam) | yes | |
| Text assembly | TBM (#1) | yes | |
| Unit test coverage | none | n/a | There is no Cloud API for executing unit tests (yet) and since unit tests are often executed during an ATC run anyway, coverage should be measured in that step and not by an additional ATC check - executing unit tests twice may lead to performance degradation. |