diff --git a/changelog.txt b/changelog.txt index 2bf0a9e2..abecfcb2 100644 --- a/changelog.txt +++ b/changelog.txt @@ -18,6 +18,7 @@ Legend 2021-08-XX v.1.16.0 ------------------ +* Prefer New to Create Object: Dynamic Type (#469) * Magic Number: Table Index (#468) * Use native *_wa variables (#474) * Refactoring (#436,#452,#458) diff --git a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap index 11e09ee7..f6fe79c7 100644 --- a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap +++ b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap @@ -25,11 +25,12 @@ CLASS y_check_prefer_new_to_crt_obj IMPLEMENTATION. METHOD inspect_tokens. - CHECK get_token_abs( statement-from ) = 'CREATE' - AND get_token_abs( statement-from + 1 ) = 'OBJECT'. + CHECK get_token_abs( statement-from ) = 'CREATE' + AND get_token_abs( statement-from + 1 ) = 'OBJECT'. - CHECK get_token_abs( statement-to ) <> 'TESTING' - AND get_token_abs( statement-to - 1 ) <> 'FOR'. + CHECK get_token_abs( statement-to - 1 ) <> 'FOR' + AND get_token_abs( statement-to ) <> 'TESTING' + AND get_token_abs( statement-to ) NA '()'. DATA(check_configuration) = detect_check_configuration( statement ). diff --git a/src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap b/src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap index da741938..c81030bd 100644 --- a/src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap +++ b/src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap @@ -66,3 +66,23 @@ CLASS ltc_create_object IMPLEMENTATION. ENDMETHOD. ENDCLASS. + + +CLASS ltc_dynamic_object DEFINITION INHERITING FROM ltc_create_object FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. + PROTECTED SECTION. + METHODS get_code_without_issue REDEFINITION. +ENDCLASS. + +CLASS ltc_dynamic_object IMPLEMENTATION. + + METHOD get_code_without_issue. + result = VALUE #( + ( ' REPORT ut_test.' ) + ( ' START-OF-SELECTION.' ) + ( | DATA check TYPE REF TO y_check_base. | ) + ( | DATA(prefer_new) = 'y_check_prefer_new_to_crt_obj'. | ) + ( | CREATE OBJECT check TYPE (prefer_new). | ) + ). + ENDMETHOD. + +ENDCLASS.