Skip to content

Commit 5e7761d

Browse files
lucasborinLucas Borin
andauthored
Prefer New to Create Object: Dynamic Type (#478)
* Fixes #469 * changelog Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
1 parent 95b6306 commit 5e7761d

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Legend
1818

1919
2021-08-XX v.1.16.0
2020
------------------
21+
* Prefer New to Create Object: Dynamic Type (#469)
2122
* Magic Number: Table Index (#468)
2223
* Use native *_wa variables (#474)
2324
* Refactoring (#436,#452,#458)

src/checks/y_check_prefer_new_to_crt_obj.clas.abap

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,12 @@ CLASS y_check_prefer_new_to_crt_obj IMPLEMENTATION.
2525

2626

2727
METHOD inspect_tokens.
28-
CHECK get_token_abs( statement-from ) = 'CREATE'
29-
AND get_token_abs( statement-from + 1 ) = 'OBJECT'.
28+
CHECK get_token_abs( statement-from ) = 'CREATE'
29+
AND get_token_abs( statement-from + 1 ) = 'OBJECT'.
3030

31-
CHECK get_token_abs( statement-to ) <> 'TESTING'
32-
AND get_token_abs( statement-to - 1 ) <> 'FOR'.
31+
CHECK get_token_abs( statement-to - 1 ) <> 'FOR'
32+
AND get_token_abs( statement-to ) <> 'TESTING'
33+
AND get_token_abs( statement-to ) NA '()'.
3334

3435
DATA(check_configuration) = detect_check_configuration( statement ).
3536

src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,23 @@ CLASS ltc_create_object IMPLEMENTATION.
6666
ENDMETHOD.
6767

6868
ENDCLASS.
69+
70+
71+
CLASS ltc_dynamic_object DEFINITION INHERITING FROM ltc_create_object FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
72+
PROTECTED SECTION.
73+
METHODS get_code_without_issue REDEFINITION.
74+
ENDCLASS.
75+
76+
CLASS ltc_dynamic_object IMPLEMENTATION.
77+
78+
METHOD get_code_without_issue.
79+
result = VALUE #(
80+
( ' REPORT ut_test.' )
81+
( ' START-OF-SELECTION.' )
82+
( | DATA check TYPE REF TO y_check_base. | )
83+
( | DATA(prefer_new) = 'y_check_prefer_new_to_crt_obj'. | )
84+
( | CREATE OBJECT check TYPE (prefer_new). | )
85+
).
86+
ENDMETHOD.
87+
88+
ENDCLASS.

0 commit comments

Comments
 (0)