diff --git a/abaplint.json b/abaplint.json index 0c8cbe25..88966229 100644 --- a/abaplint.json +++ b/abaplint.json @@ -12,16 +12,11 @@ "url": "https://github.com/abaplint/deps", "folder": "/deps1", "files": "/src/**/*.*" - }, - { - "url": "https://github.com/abapGit/abapGit", - "folder": "/deps2", - "files": "/src/**/*.*" } ], "syntax": { "version": "v740sp08", - "errorNamespace": "^(Z|Y|LCL_|TY_|LIF_)", + "errorNamespace": "^(Y)", "globalConstants": ["cntb_btype_button", "scan_struc_stmnt_type", "scan_stmnt_type", "scan_struc_type", "scan_token_type"], "globalMacros": [] }, @@ -29,114 +24,64 @@ "7bit_ascii": true, "abapdoc": false, "allowed_object_naming": true, - "allowed_object_types": { - "exclude": [], - "severity": "Error", - "allowed": [] - }, + "allowed_object_types": false, "ambiguous_statement": false, - "avoid_use": { - "exclude": [], - "severity": "Error", - "define": true, - "endselect": true, - "execSQL": true, - "kernelCall": true, - "communication": true, - "statics": true, - "systemCall": true, - "defaultKey": false, - "break": false, - "describeLines": false - }, + "avoid_use": false, "begin_end_names": true, "begin_single_include": true, - "call_transaction_authority_check": true, - "chain_mainly_declarations": { - "exclude": [], - "severity": "Error", - "definitions": true, - "write": true, - "move": true, - "refresh": true, - "unassign": true, - "clear": true, - "hide": true, - "free": true, - "include": true, - "check": true - }, + "call_transaction_authority_check": false, + "chain_mainly_declarations": true, "check_abstract": true, "check_comments": false, - "check_ddic": true, + "check_ddic": false, "check_include": true, "check_no_handler_pragma": true, "check_subrc": false, "check_syntax": true, "check_text_elements": false, - "check_transformation_exists": true, + "check_transformation_exists": false, "class_attribute_names": false, "cloud_types": true, "colon_missing_space": true, - "commented_code": false, + "commented_code": true, "constructor_visibility_public": true, "contains_tab": false, - "cyclomatic_complexity": { - "exclude": [], - "severity": "Error", - "max": 20 - }, - "definitions_top": false, + "cyclomatic_complexity": true, + "dangerous_statement": true, + "db_operation_in_loop": false, + "definitions_top": true, "description_empty": true, - "double_space": false, + "double_space": { + "startParen": false + }, "downport": true, "empty_line_in_statement": false, "empty_statement": true, - "empty_structure": false, + "empty_structure": true, "exit_or_check": false, - "exporting": false, - "forbidden_identifier": { - "exclude": [], - "severity": "Error", - "check": [] - }, - "forbidden_pseudo_and_pragma": { - "exclude": [], - "severity": "Error", - "pseudo": [], - "pragmas": [], - "ignoreGlobalClassDefinition": false, - "ignoreGlobalInterface": false - }, - "forbidden_void_type": { - "exclude": [], - "severity": "Error", - "check": [] - }, + "exporting": true, + "forbidden_identifier": false, + "forbidden_pseudo_and_pragma": false, + "forbidden_void_type": false, "form_tables_obsolete": true, - "fully_type_constants": { - "exclude": [], - "severity": "Error", - "checkData": true - }, + "fully_type_constants": false, "function_module_recommendations": true, - "functional_writing": { - "exclude": [], - "severity": "Error", - "ignoreExceptions": true - }, + "functional_writing": true, "global_class": true, "identical_conditions": true, "identical_contents": true, "identical_form_names": true, + "identical_descriptions": false, "if_in_if": true, "implement_methods": true, "in_statement_indentation": false, "indentation": false, "inline_data_old_versions": true, - "keep_single_parameter_on_one_line": false, - "keyword_case": false, - "line_break_multiple_parameters": false, + "intf_referencing_clas": { + "severity": "Warning" + }, + "keep_single_parameter_on_one_line": true, + "line_break_multiple_parameters": true, "line_break_style": true, "line_length": false, "line_only_punc": false, @@ -144,98 +89,76 @@ "local_testclass_location": true, "local_variable_names": false, "main_file_contents": true, - "many_parenthesis": false, + "many_parenthesis": true, + "max_one_method_parameter_per_line": true, + "method_implemented_twice": true, "max_one_statement": true, "message_exists": true, "method_length": false, - "method_overwrites_builtin": false, + "method_overwrites_builtin": true, "method_parameter_names": false, - "mix_returning": false, + "mix_returning": true, + "modify_only_own_db_tables": false, "msag_consistency": true, - "nesting": false, + "nesting": true, "names_no_dash": true, - "newline_between_methods": { - "exclude": [], - "severity": "Error", - "count": 3, - "logic": "less" - }, + "newline_between_methods": true, "no_public_attributes": false, + "no_yoda_conditions": false, "object_naming": false, - "obsolete_statement": { - "exclude": [], - "severity": "Error", - "refresh": true, - "compute": true, - "add": false, - "subtract": false, - "multiply": true, - "move": true, - "divide": true, - "requested": true, - "occurs": true, - "setExtended": true, - "withHeaderLine": true, - "fieldSymbolStructure": true, - "typePools": true, - "load": true - }, - "omit_parameter_name": false, + "obsolete_statement": true, + "omit_parameter_name": true, "omit_receiving": true, + "parser_702_chaining": false, "parser_error": true, "parser_missing_space": true, "prefer_inline": false, - "prefer_is_not": false, + "prefer_is_not": true, + "prefer_raise_exception_new": true, "prefer_returning_to_exporting": true, "prefer_xsdbool": true, - "preferred_compare_operator": false, - "prefix_is_current_class": false, + "preferred_compare_operator": true, + "prefix_is_current_class": true, "reduce_string_templates": true, "release_idoc": true, "remove_descriptions": false, - "rfc_error_handling": false, - "selection_screen_naming": { - "exclude": [], - "severity": "Error", - "patternKind": "required", - "ignoreNames": [], - "ignorePatterns": [], - "parameter": "^P_.+$", - "selectOption": "^S_.+$" - }, - "sequential_blank": false, - "short_case": { - "exclude": [], - "severity": "Error", - "length": 1, - "allow": [] + "rfc_error_handling": true, + "select_add_order_by": false, + "select_performance": { + "severity": "Warning" }, + "selection_screen_naming": false, + "sequential_blank": true, + "short_case": true, "sicf_consistency": true, "space_before_colon": true, - "space_before_dot": { - "exclude": [], - "severity": "Error", - "ignoreGlobalDefinition": true, - "ignoreExceptions": true + "space_before_dot": true, + "sql_escape_host_variables": { + "severity": "Warning" }, - "sql_escape_host_variables": false, - "start_at_tab": false, + "start_at_tab": true, "superclass_final": true, "sy_modification": true, "tabl_enhancement_category": true, "try_without_catch": true, "type_form_parameters": true, "types_naming": false, + "uncaught_exception": false, "unknown_types": true, "unreachable_code": true, - "unused_methods": false, + "unsecure_fae": false, + "unused_methods": true, "unused_types": true, - "unused_variables": false, + "unused_variables": { + "severity": "Warning" + }, "use_bool_expression": true, - "use_line_exists": false, + "use_class_based_exceptions": true, + "use_line_exists": true, "use_new": true, "when_others_last": true, "whitespace_end": true, - "xml_consistency": true + "xml_consistency": true, + "keyword_case": false } } diff --git a/src/categories/y_category_code_pal.clas.abap b/src/categories/y_category_code_pal.clas.abap index 1206d627..850b3614 100644 --- a/src/categories/y_category_code_pal.clas.abap +++ b/src/categories/y_category_code_pal.clas.abap @@ -22,7 +22,7 @@ CLASS Y_CATEGORY_CODE_PAL IMPLEMENTATION. METHOD constructor. super->constructor( ). - description = get_class_description( ). + description = get_class_description( ). category = 'CL_CI_CATEGORY_TOP'. position = '001'. ENDMETHOD. diff --git a/src/checks/y_check_check_stmnt_position.clas.abap b/src/checks/y_check_check_stmnt_position.clas.abap index dc3713c7..1d9bfbbe 100644 --- a/src/checks/y_check_check_stmnt_position.clas.abap +++ b/src/checks/y_check_check_stmnt_position.clas.abap @@ -59,15 +59,15 @@ CLASS y_check_check_stmnt_position IMPLEMENTATION. METHOD is_not_relevant_token. - result = xsdbool( token EQ 'METHOD' - OR token EQ 'FORM' - OR token EQ 'FUNCTION' - OR token EQ 'MODULE' - OR token EQ 'DATA' - OR token EQ 'TYPES' - OR token EQ 'CHECK' - OR token EQ 'FIELD-SYMBOLS' - OR token EQ 'CONSTANTS' ). + result = xsdbool( token = 'METHOD' + OR token = 'FORM' + OR token = 'FUNCTION' + OR token = 'MODULE' + OR token = 'DATA' + OR token = 'TYPES' + OR token = 'CHECK' + OR token = 'FIELD-SYMBOLS' + OR token = 'CONSTANTS' ). ENDMETHOD. diff --git a/src/checks/y_check_comment_position.clas.abap b/src/checks/y_check_comment_position.clas.abap index a3e57e3f..b4564d45 100644 --- a/src/checks/y_check_comment_position.clas.abap +++ b/src/checks/y_check_comment_position.clas.abap @@ -9,9 +9,6 @@ CLASS y_check_comment_position DEFINITION PUBLIC INHERITING FROM y_check_base CR METHODS has_wrong_position IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE abap_bool. - METHODS get_first_character IMPORTING token TYPE stokesx - RETURNING VALUE(result) TYPE char1. - METHODS is_pseudo_comment IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE abap_bool. @@ -102,15 +99,6 @@ CLASS Y_CHECK_COMMENT_POSITION IMPLEMENTATION. ENDMETHOD. - METHOD get_first_character. - TRY. - result = token-str(1). - CATCH cx_sy_range_out_of_bounds. - CLEAR result. - ENDTRY. - ENDMETHOD. - - METHOD is_pseudo_comment. TRY. result = xsdbool( token-str(4) = '"#EC' ). diff --git a/src/checks/y_check_comment_usage.clas.abap b/src/checks/y_check_comment_usage.clas.abap index ab4472be..4cbbfbef 100644 --- a/src/checks/y_check_comment_usage.clas.abap +++ b/src/checks/y_check_comment_usage.clas.abap @@ -62,7 +62,7 @@ CLASS y_check_comment_usage IMPLEMENTATION. RETURN. ENDIF. - IF statement-to EQ statement-from. + IF statement-to = statement-from. abs_statement_number = abs_statement_number + 1. ELSE. abs_statement_number = abs_statement_number + ( statement-to - statement-from ). @@ -70,14 +70,14 @@ CLASS y_check_comment_usage IMPLEMENTATION. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() FROM statement-from TO statement-to - WHERE type EQ scan_token_type-comment. - IF strlen( -str ) GE 2 AND NOT - ( -str+0(2) EQ |*"| OR - -str+0(2) EQ |"!| OR - -str+0(2) EQ |##| OR - -str+0(2) EQ |*?| OR - -str+0(2) EQ |"?| OR - ( strlen( -str ) GE 3 AND -str+0(3) EQ |"#E| ) OR + WHERE type = scan_token_type-comment. + IF strlen( -str ) >= 2 AND NOT + ( -str+0(2) = |*"| OR + -str+0(2) = |"!| OR + -str+0(2) = |##| OR + -str+0(2) = |*?| OR + -str+0(2) = |"?| OR + ( strlen( -str ) >= 3 AND -str+0(3) = |"#E| ) OR -str CP '"' && object_name && '*.' ). "#EC CI_MAGIC comment_number = comment_number + 1. ENDIF. @@ -119,15 +119,15 @@ CLASS y_check_comment_usage IMPLEMENTATION. METHOD is_code_disabled. - CHECK structure-stmnt_type EQ scan_struc_stmnt_type-function. + CHECK structure-stmnt_type = scan_struc_stmnt_type-function. - IF get_token_abs( statement-from ) EQ if_kaizen_keywords_c=>gc_function. + IF get_token_abs( statement-from ) = if_kaizen_keywords_c=>gc_function. is_function_module = abap_true. - ELSEIF get_token_abs( statement-from ) EQ if_kaizen_keywords_c=>gc_endfunction. + ELSEIF get_token_abs( statement-from ) = if_kaizen_keywords_c=>gc_endfunction. is_function_module = abap_false. ENDIF. - result = xsdbool( is_function_module EQ abap_false ). + result = xsdbool( is_function_module = abap_false ). ENDMETHOD. diff --git a/src/checks/y_check_cx_root_usage.clas.abap b/src/checks/y_check_cx_root_usage.clas.abap index 81b5cb8e..44dfebad 100644 --- a/src/checks/y_check_cx_root_usage.clas.abap +++ b/src/checks/y_check_cx_root_usage.clas.abap @@ -46,9 +46,9 @@ CLASS y_check_cx_root_usage IMPLEMENTATION. METHOD has_cx_root. - LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() + LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to - WHERE str EQ 'CX_ROOT'. + WHERE str = 'CX_ROOT'. result = abap_true. ENDLOOP. ENDMETHOD. diff --git a/src/checks/y_check_cyclomatic_complexity.clas.abap b/src/checks/y_check_cyclomatic_complexity.clas.abap index 4bf92e31..978b0490 100644 --- a/src/checks/y_check_cyclomatic_complexity.clas.abap +++ b/src/checks/y_check_cyclomatic_complexity.clas.abap @@ -1,7 +1,6 @@ CLASS y_check_cyclomatic_complexity DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. PUBLIC SECTION. CONSTANTS second_token TYPE i VALUE 2. - CONSTANTS third_token TYPE i VALUE 3. METHODS constructor. @@ -26,18 +25,27 @@ CLASS Y_CHECK_CYCLOMATIC_COMPLEXITY IMPLEMENTATION. METHOD compute_cyclomatic_complexity. CASE keyword( ). - WHEN 'IF' OR 'ELSEIF' OR 'WHILE' OR 'CHECK' OR - 'CATCH' OR 'CLEANUP' OR 'ASSERT' OR 'ENDAT' OR 'ENDSELECT' OR - 'LOOP' OR 'ON' OR 'PROVIDE'. - ADD 1 TO c_cyclo_comp. + WHEN 'IF' + OR 'ELSEIF' + OR 'WHILE' + OR 'CHECK' + OR 'CATCH' + OR 'CLEANUP' + OR 'ASSERT' + OR 'ENDAT' + OR 'ENDSELECT' + OR 'LOOP' + OR 'ON' + OR 'PROVIDE'. + c_cyclo_comp = c_cyclo_comp + 1. WHEN 'WHEN'. IF get_token_rel( second_token ) <> 'OTHERS'. - ADD 1 TO c_cyclo_comp. + c_cyclo_comp = c_cyclo_comp + 1. ENDIF. WHEN 'DO'. READ TABLE ref_scan_manager->tokens INDEX statement_wa-to INTO DATA(token). IF token-str = 'TIMES'. - ADD 1 TO c_cyclo_comp. + c_cyclo_comp = c_cyclo_comp + 1. ENDIF. ENDCASE. ENDMETHOD. @@ -70,9 +78,7 @@ CLASS Y_CHECK_CYCLOMATIC_COMPLEXITY IMPLEMENTATION. cyclo_comp = 0. ENDIF. - compute_cyclomatic_complexity( - CHANGING - c_cyclo_comp = cyclo_comp ). + compute_cyclomatic_complexity( CHANGING c_cyclo_comp = cyclo_comp ). IF index = structure-stmnt_to. DATA(check_configuration) = detect_check_configuration( error_count = cyclo_comp diff --git a/src/checks/y_check_db_access_in_ut.clas.abap b/src/checks/y_check_db_access_in_ut.clas.abap index 63b498f3..ff2bd5b3 100644 --- a/src/checks/y_check_db_access_in_ut.clas.abap +++ b/src/checks/y_check_db_access_in_ut.clas.abap @@ -54,6 +54,7 @@ CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CRE METHODS add_line_to_defined_classes IMPORTING statement TYPE sstmnt structure TYPE sstruc. + METHODS check_class IMPORTING index TYPE i statement TYPE sstmnt structure TYPE sstruc. @@ -117,13 +118,13 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. METHOD is_persistent_object. DATA(upper_name) = to_upper( obj_name ). - SELECT * FROM tadir - WHERE obj_name = @upper_name - AND object = @keys-table - AND delflag = @space - INTO TABLE @DATA(tmp). - result = xsdbool( sy-subrc = 0 ). + SELECT SINGLE @abap_true + FROM tadir + INTO @result + WHERE obj_name = @upper_name + AND object = @keys-table + AND delflag = @space. ENDMETHOD. @@ -149,7 +150,11 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. METHOD add_line_to_defined_classes. - DATA(class_config) = VALUE properties( name = get_class_name( structure ) ). + TRY. + DATA(class_config) = VALUE properties( name = get_class_name( structure ) ). + CATCH cx_sy_itab_line_not_found. + RETURN. + ENDTRY. IF line_exists( defined_classes[ name = class_config-name ] ). RETURN. @@ -164,7 +169,12 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. METHOD check_class. - DATA(class_name) = get_class_name( structure ). + TRY. + DATA(class_name) = get_class_name( structure ). + CATCH cx_sy_itab_line_not_found. + RETURN. + ENDTRY. + IF NOT line_exists( defined_classes[ name = class_name ] ). RETURN. ENDIF. @@ -228,18 +238,16 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. METHOD is_part_of_framework. LOOP AT ref_scan_manager->statements ASSIGNING FIELD-SYMBOL() - FROM structure-stmnt_from TO structure-stmnt_to. - - LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() - FROM -from TO -to - WHERE str = framework-qsql_if OR - str = framework-qsql_cl OR - str = framework-cds_if OR - str = framework-cds_cl. + FROM structure-stmnt_from TO structure-stmnt_to. + LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS + FROM -from TO -to + WHERE str = framework-qsql_if + OR str = framework-qsql_cl + OR str = framework-cds_if + OR str = framework-cds_cl. result = abap_true. RETURN. ENDLOOP. - ENDLOOP. ENDMETHOD. @@ -254,10 +262,10 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. METHOD get_risk_level. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() - FROM statement-from TO statement-to - WHERE str = risk_level-harmless - OR str = risk_level-dangerous - OR str = risk_level-critical. + FROM statement-from TO statement-to + WHERE str = risk_level-harmless + OR str = risk_level-dangerous + OR str = risk_level-critical. result = -str. ENDLOOP. ENDMETHOD. diff --git a/src/checks/y_check_empty_catches.clas.abap b/src/checks/y_check_empty_catches.clas.abap index 33694ed9..6d42844b 100644 --- a/src/checks/y_check_empty_catches.clas.abap +++ b/src/checks/y_check_empty_catches.clas.abap @@ -31,7 +31,7 @@ CLASS Y_CHECK_EMPTY_CATCHES IMPLEMENTATION. METHOD get_next_token_from_index. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() - FROM index WHERE type EQ 'I'. + FROM index WHERE type = 'I'. IF result IS INITIAL. result = . EXIT. @@ -41,9 +41,9 @@ CLASS Y_CHECK_EMPTY_CATCHES IMPLEMENTATION. METHOD inspect_tokens. - CHECK get_next_token_from_index( statement-from )-str EQ 'CATCH' AND - ( get_next_token_from_index( statement-to + 1 )-str EQ 'ENDTRY' OR - get_next_token_from_index( statement-to + 1 )-str EQ 'ENDCATCH' ). + CHECK get_next_token_from_index( statement-from )-str = 'CATCH' + AND ( get_next_token_from_index( statement-to + 1 )-str = 'ENDTRY' + OR get_next_token_from_index( statement-to + 1 )-str = 'ENDCATCH' ). DATA(check_configuration) = detect_check_configuration( statement ). diff --git a/src/checks/y_check_empty_if_branches.clas.abap b/src/checks/y_check_empty_if_branches.clas.abap index 43f38de5..fe2fe16b 100644 --- a/src/checks/y_check_empty_if_branches.clas.abap +++ b/src/checks/y_check_empty_if_branches.clas.abap @@ -94,7 +94,7 @@ CLASS y_check_empty_if_branches IMPLEMENTATION. METHOD get_first_token_from_index. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() FROM index - WHERE type EQ 'I'. + WHERE type = 'I'. IF result IS INITIAL. result = . EXIT. @@ -116,22 +116,22 @@ CLASS y_check_empty_if_branches IMPLEMENTATION. METHOD is_statement_type_excluded. - result = xsdbool( statement-type EQ scan_stmnt_type-empty OR - statement-type EQ scan_stmnt_type-comment OR - statement-type EQ scan_stmnt_type-comment_in_stmnt OR - statement-type EQ scan_stmnt_type-pragma ). + result = xsdbool( statement-type = scan_stmnt_type-empty OR + statement-type = scan_stmnt_type-comment OR + statement-type = scan_stmnt_type-comment_in_stmnt OR + statement-type = scan_stmnt_type-pragma ). ENDMETHOD. METHOD set_found_statement_to_false. - IF branch_counter LT first_if. + IF branch_counter < first_if. found_statement = abap_false. ENDIF. ENDMETHOD. METHOD set_found_statement_to_true. - IF branch_counter GT first_if. + IF branch_counter > first_if. found_statement = abap_true. ENDIF. ENDMETHOD. diff --git a/src/checks/y_check_empty_procedures.clas.abap b/src/checks/y_check_empty_procedures.clas.abap index f05a9800..7d617a64 100644 --- a/src/checks/y_check_empty_procedures.clas.abap +++ b/src/checks/y_check_empty_procedures.clas.abap @@ -37,7 +37,7 @@ CLASS y_check_empty_procedures IMPLEMENTATION. METHOD get_next_token_from_index. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() - FROM index WHERE type EQ 'I'. + FROM index WHERE type = 'I'. IF result IS INITIAL. result = . EXIT. diff --git a/src/checks/y_check_equals_sign_chaining.clas.abap b/src/checks/y_check_equals_sign_chaining.clas.abap index bcd06ece..ea137ae7 100644 --- a/src/checks/y_check_equals_sign_chaining.clas.abap +++ b/src/checks/y_check_equals_sign_chaining.clas.abap @@ -33,8 +33,8 @@ CLASS y_check_equals_sign_chaining IMPLEMENTATION. METHOD inspect_tokens. - CHECK get_second_token( statement ) EQ '='. - CHECK get_fourth_token( statement ) EQ '='. + CHECK get_second_token( statement ) = '='. + CHECK get_fourth_token( statement ) = '='. DATA(check_configuration) = detect_check_configuration( statement ). diff --git a/src/checks/y_check_external_call_in_ut.clas.abap b/src/checks/y_check_external_call_in_ut.clas.abap index f32545cc..da6c59b4 100644 --- a/src/checks/y_check_external_call_in_ut.clas.abap +++ b/src/checks/y_check_external_call_in_ut.clas.abap @@ -17,20 +17,17 @@ CLASS y_check_external_call_in_ut IMPLEMENTATION. METHOD check_if_error. - DATA check_configuration TYPE y_if_clean_code_manager=>check_configuration. - DATA(key_word) = get_token_abs( statement-from ). - - check_configuration = detect_check_configuration( statement ). + DATA(check_configuration) = detect_check_configuration( statement ). IF check_configuration IS INITIAL. RETURN. ENDIF. - raise_error( statement_level = statement-level - statement_index = index - statement_from = statement-from - error_priority = check_configuration-prio - parameter_01 = |{ key_word }| ). + raise_error( statement_level = statement-level + statement_index = index + statement_from = statement-from + error_priority = check_configuration-prio + parameter_01 = get_token_abs( statement-from ) ). ENDMETHOD. @@ -54,6 +51,8 @@ CLASS y_check_external_call_in_ut IMPLEMENTATION. METHOD inspect_tokens. + DATA has_redirection TYPE abap_bool VALUE abap_false. + DATA(token1) = get_token_abs( statement-from ). DATA(token2) = get_token_abs( statement-from + 1 ). DATA(token3) = get_token_abs( statement-from + 2 ). @@ -62,19 +61,17 @@ CLASS y_check_external_call_in_ut IMPLEMENTATION. DATA(token6) = get_token_abs( statement-from + 5 ). DATA(token4to6) = |{ token4 } { token5 } { token6 }|. - DATA has_redirection TYPE abap_bool VALUE abap_false. - CASE token1. WHEN 'SUBMIT'. has_redirection = abap_true. WHEN 'CALL'. - IF ( token2 = 'FUNCTION' ) AND - ( ( token4 = 'DESTINATION' ) OR - ( ( token4to6 = 'STARTING NEW TASK' ) ) OR - ( ( token4to6 = 'IN UPDATE TASK' ) ) ). + IF token2 = 'FUNCTION' + AND ( token4 = 'DESTINATION' + OR token4to6 = 'STARTING NEW TASK' + OR token4to6 = 'IN UPDATE TASK' ). has_redirection = abap_true. - ELSEIF ( token2 = 'METHOD' ) AND - ( token3 CS 'CL_GUI_' ). + ELSEIF token2 = 'METHOD' + AND token3 CS 'CL_GUI_'. has_redirection = abap_true. ENDIF. WHEN OTHERS. diff --git a/src/checks/y_check_function.clas.abap b/src/checks/y_check_function.clas.abap index eb1d9792..e0908de2 100644 --- a/src/checks/y_check_function.clas.abap +++ b/src/checks/y_check_function.clas.abap @@ -41,10 +41,9 @@ CLASS Y_CHECK_FUNCTION IMPLEMENTATION. CHECK get_token_abs( statement-from ) = 'FUNCTION'. - DATA fm_name TYPE c LENGTH 30. - fm_name = get_token_abs( statement-from + 1 ). + DATA(fm_name) = get_token_abs( statement-from + 1 ). - IF db_reader->is_fm_rfc_enabled( fm_name ) EQ abap_false. + IF db_reader->is_fm_rfc_enabled( CONV #( fm_name ) ) = abap_false. DATA(check_configuration) = detect_check_configuration( statement ). diff --git a/src/checks/y_check_function.clas.locals_imp.abap b/src/checks/y_check_function.clas.locals_imp.abap index e93b11a9..be7d319e 100644 --- a/src/checks/y_check_function.clas.locals_imp.abap +++ b/src/checks/y_check_function.clas.locals_imp.abap @@ -1,9 +1,11 @@ CLASS lcl_db_reader IMPLEMENTATION. + METHOD lif_db_reader~is_fm_rfc_enabled. - SELECT SINGLE fmode FROM tfdir - WHERE funcname = @function - AND fmode EQ 'R' - INTO @DATA(mode). - result = xsdbool( sy-subrc EQ 0 ). + SELECT SINGLE @abap_true + FROM tfdir + INTO @result + WHERE funcname = @function + AND fmode = 'R'. ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_is_interface_in_class.clas.abap b/src/checks/y_check_is_interface_in_class.clas.abap index 0c3ba1b1..8a165633 100644 --- a/src/checks/y_check_is_interface_in_class.clas.abap +++ b/src/checks/y_check_is_interface_in_class.clas.abap @@ -66,7 +66,7 @@ CLASS Y_CHECK_IS_INTERFACE_IN_CLASS IMPLEMENTATION. AND get_second_token( statement ) <> 'FOR' AND get_third_token( statement ) <> 'TESTING'. - ADD 1 TO public_method_counter. + public_method_counter = public_method_counter + 1. ENDMETHOD. diff --git a/src/checks/y_check_magic_number.clas.abap b/src/checks/y_check_magic_number.clas.abap index 5b0420b1..9783861f 100644 --- a/src/checks/y_check_magic_number.clas.abap +++ b/src/checks/y_check_magic_number.clas.abap @@ -39,13 +39,13 @@ CLASS Y_CHECK_MAGIC_NUMBER IMPLEMENTATION. METHOD is_exception. - IF token EQ 'ENDCASE' AND has_case_with_subrc EQ abap_true. + IF token = 'ENDCASE' AND has_case_with_subrc = abap_true. has_case_with_subrc = abap_false. ENDIF. - IF token EQ 'SY-SUBRC' OR has_case_with_subrc EQ abap_true. + IF token = 'SY-SUBRC' OR has_case_with_subrc = abap_true. result = abap_true. - ELSEIF token EQ 'CASE' AND get_token_rel( second_token ) = 'SY-SUBRC'. + ELSEIF token = 'CASE' AND get_token_rel( second_token ) = 'SY-SUBRC'. has_case_with_subrc = abap_true. ENDIF. ENDMETHOD. @@ -93,7 +93,7 @@ CLASS Y_CHECK_MAGIC_NUMBER IMPLEMENTATION. ENDIF. FIND REGEX `^(?!'?[01]'?$)'?\d+'?$` IN token_string. - IF sy-subrc EQ 0. + IF sy-subrc = 0. magic_number = token_string. result = abap_true. ENDIF. diff --git a/src/checks/y_check_max_nesting_depth.clas.abap b/src/checks/y_check_max_nesting_depth.clas.abap index 5df7b45b..d045c83f 100644 --- a/src/checks/y_check_max_nesting_depth.clas.abap +++ b/src/checks/y_check_max_nesting_depth.clas.abap @@ -25,14 +25,26 @@ CLASS y_check_max_nesting_depth IMPLEMENTATION. METHOD compute_nesting_level. CASE token_str. - WHEN 'IF' OR 'WHILE' OR 'LOOP' OR - 'DO' OR 'PROVIDE' OR 'TRY' OR 'CASE'. - ADD 1 TO curr_nesting. - WHEN 'ENDIF' OR 'ENDWHILE' OR 'ENDLOOP' OR - 'ENDDO' OR 'ENDPROVIDE' OR 'ENDTRY' OR 'ENDCASE'. - max_nesting = nmax( val1 = max_nesting val2 = curr_nesting ). - SUBTRACT 1 FROM curr_nesting. - WHEN 'ENDAT' OR 'ENDSELECT'. + WHEN 'IF' + OR 'WHILE' + OR 'LOOP' + OR 'DO' + OR 'PROVIDE' + OR 'TRY' + OR 'CASE'. + curr_nesting = curr_nesting + 1. + WHEN 'ENDIF' + OR 'ENDWHILE' + OR 'ENDLOOP' + OR 'ENDDO' + OR 'ENDPROVIDE' + OR 'ENDTRY' + OR 'ENDCASE'. + max_nesting = nmax( val1 = max_nesting + val2 = curr_nesting ). + curr_nesting = curr_nesting - 1. + WHEN 'ENDAT' + OR 'ENDSELECT'. IF curr_nesting >= max_nesting. max_nesting = curr_nesting + 1. ENDIF. diff --git a/src/checks/y_check_method_output_param.clas.abap b/src/checks/y_check_method_output_param.clas.abap index f9247080..7f9c3c1a 100644 --- a/src/checks/y_check_method_output_param.clas.abap +++ b/src/checks/y_check_method_output_param.clas.abap @@ -6,13 +6,10 @@ CLASS y_check_method_output_param DEFINITION PUBLIC INHERITING FROM y_check_bas METHODS inspect_tokens REDEFINITION. PRIVATE SECTION. - DATA has_found_methods TYPE abap_bool. DATA has_exporting_parameter TYPE abap_bool. DATA has_changing_parameter TYPE abap_bool. DATA has_returning_parameter TYPE abap_bool. - DATA has_pseudo_comment TYPE abap_bool. - METHODS check_token_content IMPORTING token TYPE stokesx. METHODS has_error RETURNING VALUE(result) TYPE abap_bool. ENDCLASS. @@ -25,13 +22,13 @@ CLASS Y_CHECK_METHOD_OUTPUT_PARAM IMPLEMENTATION. METHOD has_error. DATA(sum) = 0. IF has_exporting_parameter = abap_true. - ADD 1 TO sum. + sum = sum + 1. ENDIF. IF has_changing_parameter = abap_true. - ADD 1 TO sum. + sum = sum + 1. ENDIF. IF has_returning_parameter = abap_true. - ADD 1 TO sum. + sum = sum + 1. ENDIF. IF sum > 1. result = abap_true. @@ -39,19 +36,6 @@ CLASS Y_CHECK_METHOD_OUTPUT_PARAM IMPLEMENTATION. ENDMETHOD. - METHOD check_token_content. - IF token-str EQ 'EXPORTING'. - has_exporting_parameter = abap_true. - ENDIF. - IF token-str EQ 'CHANGING'. - has_changing_parameter = abap_true. - ENDIF. - IF token-str EQ 'RETURNING'. - has_returning_parameter = abap_true. - ENDIF. - ENDMETHOD. - - METHOD constructor. super->constructor( ). diff --git a/src/checks/y_check_method_return_bool.clas.abap b/src/checks/y_check_method_return_bool.clas.abap index 1dacd995..18fe583a 100644 --- a/src/checks/y_check_method_return_bool.clas.abap +++ b/src/checks/y_check_method_return_bool.clas.abap @@ -59,15 +59,19 @@ CLASS Y_CHECK_METHOD_RETURN_BOOL IMPLEMENTATION. method_name = get_token_abs( stmnt_index + 1 ). LOOP AT good_method_names_beginning ASSIGNING FIELD-SYMBOL(). - IF strlen( method_name ) GE strlen( ) - AND substring( val = method_name len = strlen( ) ) EQ . - result = abap_true. - RETURN. + IF strlen( method_name ) >= strlen( ). + DATA(prefix) = substring( val = method_name + len = strlen( ) ). + + IF prefix = . + result = abap_true. + RETURN. + ENDIF. ENDIF. ENDLOOP. LOOP AT good_method_names_containing ASSIGNING FIELD-SYMBOL(). - IF strlen( method_name ) GE strlen( ) + IF strlen( method_name ) >= strlen( ) AND method_name CS . result = abap_true. RETURN. @@ -84,8 +88,8 @@ CLASS Y_CHECK_METHOD_RETURN_BOOL IMPLEMENTATION. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() FROM statement-from TO statement-to. - IF -str EQ 'ABAP_BOOL' - AND get_token_abs( token_index - 3 ) EQ 'RETURNING'. "#EC CI_MAGIC + IF -str = 'ABAP_BOOL' + AND get_token_abs( token_index - 3 ) = 'RETURNING'. "#EC CI_MAGIC has_found_bool = abap_true. ENDIF. token_index = token_index + 1. diff --git a/src/checks/y_check_non_class_exception.clas.abap b/src/checks/y_check_non_class_exception.clas.abap index 2c5e42ca..422ca134 100644 --- a/src/checks/y_check_non_class_exception.clas.abap +++ b/src/checks/y_check_non_class_exception.clas.abap @@ -61,7 +61,7 @@ CLASS Y_CHECK_NON_CLASS_EXCEPTION IMPLEMENTATION. LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to - WHERE str = 'RAISING' AND type EQ 'I'. + WHERE str = 'RAISING' AND type = 'I'. checkif_error( index = index statement = statement ). diff --git a/src/checks/y_check_num_exec_statements.clas.abap b/src/checks/y_check_num_exec_statements.clas.abap index 04612c0a..8573a831 100644 --- a/src/checks/y_check_num_exec_statements.clas.abap +++ b/src/checks/y_check_num_exec_statements.clas.abap @@ -48,7 +48,7 @@ CLASS Y_CHECK_NUM_EXEC_STATEMENTS IMPLEMENTATION. RETURN. ENDIF. IF token_wa-type <> scan_token_type-comment AND token_wa-type <> scan_token_type-pragma. - ADD 1 TO no_exec_statements. + no_exec_statements = no_exec_statements + 1. ENDIF. ENDMETHOD. diff --git a/src/checks/y_check_num_public_attributes.clas.abap b/src/checks/y_check_num_public_attributes.clas.abap index cf29fd1f..7be75f4b 100644 --- a/src/checks/y_check_num_public_attributes.clas.abap +++ b/src/checks/y_check_num_public_attributes.clas.abap @@ -62,10 +62,12 @@ CLASS y_check_num_public_attributes IMPLEMENTATION. METHOD checkif_attribute_in_structure. - IF ( second_token = 'BEGIN' AND third_token = 'OF' ). - ADD 1 TO structure_depth. - ELSEIF ( second_token = 'END' AND third_token = 'OF' ). - SUBTRACT 1 FROM structure_depth. + IF second_token = 'BEGIN' + AND third_token = 'OF'. + structure_depth = structure_depth + 1. + ELSEIF second_token = 'END' + AND third_token = 'OF'. + structure_depth = structure_depth - 1. ENDIF. ENDMETHOD. @@ -78,7 +80,7 @@ CLASS y_check_num_public_attributes IMPLEMENTATION. CHECK last_token <> 'READ-ONLY'. - ADD 1 TO public_attribute_counter. + public_attribute_counter = public_attribute_counter + 1. ENDMETHOD. diff --git a/src/checks/y_check_number_attributes.clas.abap b/src/checks/y_check_number_attributes.clas.abap index ac7dadcf..cd3c6fa4 100644 --- a/src/checks/y_check_number_attributes.clas.abap +++ b/src/checks/y_check_number_attributes.clas.abap @@ -52,7 +52,7 @@ CLASS y_check_number_attributes IMPLEMENTATION. METHOD inspect_tokens. - checkif_attribute_found( first_token = get_token_abs( statement-from ) ). + checkif_attribute_found( get_token_abs( statement-from ) ). checkif_attribute_in_structure( second_token = get_token_abs( statement-from + 1 ) third_token = get_token_abs( statement-from + 2 ) ). @@ -63,17 +63,19 @@ CLASS y_check_number_attributes IMPLEMENTATION. CASE first_token. WHEN 'DATA' OR 'CLASS-DATA'. IF structure_depth <= structure_depth_threshold. - ADD 1 TO attribute_counter. + attribute_counter = attribute_counter + 1. ENDIF. ENDCASE. ENDMETHOD. METHOD checkif_attribute_in_structure. - IF ( second_token = 'BEGIN' AND third_token = 'OF' ). - ADD 1 TO structure_depth. - ELSEIF ( second_token = 'END' AND third_token = 'OF' ). - SUBTRACT 1 FROM structure_depth. + IF second_token = 'BEGIN' + AND third_token = 'OF'. + structure_depth = structure_depth + 1. + ELSEIF second_token = 'END' + AND third_token = 'OF'. + structure_depth = structure_depth - 1. ENDIF. ENDMETHOD. diff --git a/src/checks/y_check_number_events.clas.abap b/src/checks/y_check_number_events.clas.abap index f49cf36d..b1bac668 100644 --- a/src/checks/y_check_number_events.clas.abap +++ b/src/checks/y_check_number_events.clas.abap @@ -45,7 +45,7 @@ CLASS Y_CHECK_NUMBER_EVENTS IMPLEMENTATION. METHOD inspect_tokens. CASE get_token_abs( statement-from ). WHEN 'EVENTS' OR 'CLASS-EVENTS'. - ADD 1 TO event_counter. + event_counter = event_counter + 1. ENDCASE. ENDMETHOD. diff --git a/src/checks/y_check_number_interfaces.clas.abap b/src/checks/y_check_number_interfaces.clas.abap index adc4ea60..eb15e635 100644 --- a/src/checks/y_check_number_interfaces.clas.abap +++ b/src/checks/y_check_number_interfaces.clas.abap @@ -45,7 +45,7 @@ CLASS y_check_number_interfaces IMPLEMENTATION. METHOD inspect_tokens. IF get_token_abs( statement-from ) = 'INTERFACES'. - ADD 1 TO interface_counter. + interface_counter = interface_counter + 1. ENDIF. ENDMETHOD. diff --git a/src/checks/y_check_number_methods.clas.abap b/src/checks/y_check_number_methods.clas.abap index e8d8eca3..141181b3 100644 --- a/src/checks/y_check_number_methods.clas.abap +++ b/src/checks/y_check_number_methods.clas.abap @@ -47,7 +47,7 @@ CLASS Y_CHECK_NUMBER_METHODS IMPLEMENTATION. METHOD inspect_tokens. CASE get_token_abs( statement-from ). WHEN 'METHODS' OR 'CLASS-METHODS'. - ADD 1 TO method_counter. + method_counter = method_counter + 1. ENDCASE. ENDMETHOD. diff --git a/src/checks/y_check_optional_parameters.clas.abap b/src/checks/y_check_optional_parameters.clas.abap index 6a8d352e..3d8f15e1 100644 --- a/src/checks/y_check_optional_parameters.clas.abap +++ b/src/checks/y_check_optional_parameters.clas.abap @@ -46,7 +46,7 @@ CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION. ENDMETHOD. METHOD has_optional_parameter. - LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() + LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to WHERE str = 'OPTIONAL'. result = abap_true. diff --git a/src/checks/y_check_prefer_case_to_elseif.clas.abap b/src/checks/y_check_prefer_case_to_elseif.clas.abap index 34ce8b4f..4ef1e23e 100644 --- a/src/checks/y_check_prefer_case_to_elseif.clas.abap +++ b/src/checks/y_check_prefer_case_to_elseif.clas.abap @@ -109,7 +109,7 @@ CLASS y_check_prefer_case_to_elseif IMPLEMENTATION. METHOD has_multiple_conditions. - LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() + LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to WHERE str = 'AND' OR str = 'OR'. result = abap_true. diff --git a/src/checks/y_check_prefer_is_not.clas.abap b/src/checks/y_check_prefer_is_not.clas.abap index 163a8fa8..f0ab421f 100644 --- a/src/checks/y_check_prefer_is_not.clas.abap +++ b/src/checks/y_check_prefer_is_not.clas.abap @@ -31,7 +31,7 @@ CLASS y_check_prefer_is_not IMPLEMENTATION. METHOD inspect_tokens. - LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() + LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to WHERE str = 'IF' OR str = 'ELSEIF' diff --git a/src/checks/y_check_pseudo_comment_usage.clas.abap b/src/checks/y_check_pseudo_comment_usage.clas.abap index b645a7ea..54b9aa82 100644 --- a/src/checks/y_check_pseudo_comment_usage.clas.abap +++ b/src/checks/y_check_pseudo_comment_usage.clas.abap @@ -72,7 +72,7 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION. LOOP AT class_names ASSIGNING FIELD-SYMBOL(). TRY. IF token-str CS call_get_pseudo_comment( ). - ADD 1 TO pseudo_comment_counter. + pseudo_comment_counter = pseudo_comment_counter + 1. ENDIF. CATCH cx_sy_create_object_error. CONTINUE. @@ -93,8 +93,8 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION. METHOD inspect_tokens. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() FROM statement-from TO statement-to - WHERE type EQ 'C' - OR type EQ 'P'. + WHERE type = 'C' + OR type = 'P'. count_cc_pseudo_comments( ). ENDLOOP. ENDMETHOD. @@ -118,17 +118,21 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION. METHOD select_object_list. - SELECT SINGLE devclass FROM tadir - WHERE obj_name EQ @myname - INTO @DATA(packagename). + SELECT SINGLE devclass + FROM tadir + WHERE obj_name = @myname + INTO @DATA(packagename). + IF sy-subrc <> 0. RAISE EXCEPTION TYPE cx_failed. ENDIF. - SELECT obj_name FROM tadir - WHERE devclass EQ @packagename AND - obj_name NE @check_base_name - INTO TABLE @result. + SELECT obj_name + FROM tadir + WHERE devclass = @packagename + AND obj_name <> @check_base_name + INTO TABLE @result. + IF sy-subrc <> 0. RAISE EXCEPTION TYPE cx_failed. ENDIF. diff --git a/src/checks/y_check_receiving_usage.clas.abap b/src/checks/y_check_receiving_usage.clas.abap index 2cde6c6c..9d7a7b30 100644 --- a/src/checks/y_check_receiving_usage.clas.abap +++ b/src/checks/y_check_receiving_usage.clas.abap @@ -25,7 +25,7 @@ CLASS Y_CHECK_RECEIVING_USAGE IMPLEMENTATION. METHOD inspect_tokens. CHECK get_token_abs( statement-from ) CP '*(*'. - CHECK get_token_abs( statement-from ) NE 'BADI'. + CHECK get_token_abs( statement-from ) <> 'BADI'. DATA(has_receiving) = abap_false. DATA(has_classic_exception) = abap_false. @@ -35,12 +35,12 @@ CLASS Y_CHECK_RECEIVING_USAGE IMPLEMENTATION. LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() FROM statement-from TO statement-to. IF has_receiving = abap_false. - has_receiving = xsdbool( -str EQ 'RECEIVING' AND - get_token_abs( statement-from + token_index + 1 ) NE '=' ). + has_receiving = xsdbool( -str = 'RECEIVING' AND + get_token_abs( statement-from + token_index + 1 ) <> '=' ). ENDIF. IF has_classic_exception = abap_false. - has_classic_exception = xsdbool( -str EQ 'EXCEPTIONS' AND - get_token_abs( statement-from + token_index + 1 ) NE '=' ). + has_classic_exception = xsdbool( -str = 'EXCEPTIONS' AND + get_token_abs( statement-from + token_index + 1 ) <> '=' ). ENDIF. token_index = token_index + 1. diff --git a/src/checks/y_check_scope_of_variable.clas.abap b/src/checks/y_check_scope_of_variable.clas.abap index b6b3a600..2b509635 100644 --- a/src/checks/y_check_scope_of_variable.clas.abap +++ b/src/checks/y_check_scope_of_variable.clas.abap @@ -62,7 +62,7 @@ CLASS y_check_scope_of_variable IMPLEMENTATION. CONTINUE. ENDIF. - LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() + LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS FROM -from TO -to WHERE str = variable. diff --git a/src/checks/y_check_self_reference.clas.abap b/src/checks/y_check_self_reference.clas.abap index b546b3d0..e59603ef 100644 --- a/src/checks/y_check_self_reference.clas.abap +++ b/src/checks/y_check_self_reference.clas.abap @@ -49,7 +49,7 @@ CLASS y_check_self_reference IMPLEMENTATION. METHOD has_self_reference. - LOOP AT ref_scan_manager->tokens ASSIGNING FIELD-SYMBOL() + LOOP AT ref_scan_manager->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to WHERE str CP 'ME->*'. result = abap_true. diff --git a/src/checks/y_check_test_seam_usage.clas.abap b/src/checks/y_check_test_seam_usage.clas.abap index aef9e4b1..2bbae65c 100644 --- a/src/checks/y_check_test_seam_usage.clas.abap +++ b/src/checks/y_check_test_seam_usage.clas.abap @@ -25,7 +25,7 @@ CLASS Y_CHECK_TEST_SEAM_USAGE IMPLEMENTATION. METHOD inspect_tokens. - CHECK get_token_abs( statement-from ) EQ 'TEST-SEAM'. + CHECK get_token_abs( statement-from ) = 'TEST-SEAM'. DATA(check_configuration) = detect_check_configuration( statement ). @@ -33,9 +33,9 @@ CLASS Y_CHECK_TEST_SEAM_USAGE IMPLEMENTATION. RETURN. ENDIF. - raise_error( statement_level = statement-level - statement_index = index - statement_from = statement-from - error_priority = check_configuration-prio ). + raise_error( statement_level = statement-level + statement_index = index + statement_from = statement-from + error_priority = check_configuration-prio ). ENDMETHOD. ENDCLASS. diff --git a/src/checks/y_check_unit_test_assert.clas.abap b/src/checks/y_check_unit_test_assert.clas.abap index 4a7146dc..cd6b6134 100644 --- a/src/checks/y_check_unit_test_assert.clas.abap +++ b/src/checks/y_check_unit_test_assert.clas.abap @@ -50,9 +50,8 @@ CLASS y_check_unit_test_assert IMPLEMENTATION. ENDIF. IF act-str <> exp-str - AND ( is_variable( act ) = abap_true - OR is_variable( exp ) = abap_true ). - RETURN. + AND ( is_variable( act ) = abap_true OR is_variable( exp ) = abap_true ). + RETURN. ENDIF. DATA(check_configuration) = detect_check_configuration( statement ). diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap index 3b0f3e3b..a51d5d36 100644 --- a/src/foundation/y_check_base.clas.abap +++ b/src/foundation/y_check_base.clas.abap @@ -44,7 +44,6 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT CONSTANTS initial_date TYPE datum VALUE '19000101'. DATA check_configurations TYPE y_if_clean_code_manager=>check_configurations. - DATA check_name TYPE seoclsname. DATA clean_code_exemption_handler TYPE REF TO y_if_exemption. DATA clean_code_manager TYPE REF TO y_if_clean_code_manager. DATA is_testcode TYPE abap_bool. @@ -290,8 +289,7 @@ CLASS y_check_base IMPLEMENTATION. METHOD get_attributes. - DATA check_configuration TYPE y_if_clean_code_manager=>check_configuration. - READ TABLE check_configurations INTO check_configuration INDEX 1. + READ TABLE check_configurations INTO DATA(check_configuration) INDEX 1. IF sy-subrc <> 0. check_configuration-apply_on_productive_code = settings-apply_on_productive_code. check_configuration-apply_on_testcode = settings-apply_on_test_code. @@ -333,11 +331,11 @@ CLASS y_check_base IMPLEMENTATION. DO. READ TABLE tokens INDEX p_n ASSIGNING FIELD-SYMBOL(). - IF sy-subrc EQ 0 AND -row <> 0. + IF sy-subrc = 0 AND -row <> 0. p_result = -col. RETURN. ENDIF. - SUBTRACT 1 FROM p_n. + p_n = p_n - 1. ENDDO. ENDMETHOD. @@ -353,27 +351,22 @@ CLASS y_check_base IMPLEMENTATION. DO. READ TABLE tokens INDEX index ASSIGNING FIELD-SYMBOL(). - IF sy-subrc EQ 0 AND -row <> 0. + IF sy-subrc = 0 AND -row <> 0. p_result = -col. RETURN. ENDIF. - SUBTRACT 1 FROM index. + index = index - 1. ENDDO. ENDMETHOD. METHOD get_include. - DATA l_levels_wa LIKE LINE OF ref_scan->levels. - DATA l_level TYPE i. + DATA(l_level) = COND #( WHEN p_level IS SUPPLIED THEN p_level + ELSE statement_wa-level ). - IF p_level IS SUPPLIED. - l_level = p_level. - ELSE. - l_level = statement_wa-level. - ENDIF. DO. - READ TABLE ref_scan_manager->levels INDEX l_level INTO l_levels_wa. - IF sy-subrc NE 0. + READ TABLE ref_scan_manager->levels INDEX l_level INTO DATA(l_levels_wa). + IF sy-subrc <> 0. RETURN. ENDIF. IF l_levels_wa-type = 'P'. @@ -393,11 +386,11 @@ CLASS y_check_base IMPLEMENTATION. DO. READ TABLE tokens INDEX p_n ASSIGNING FIELD-SYMBOL(). - IF sy-subrc EQ 0 AND -row <> 0. + IF sy-subrc = 0 AND -row <> 0. p_result = -row. RETURN. ENDIF. - SUBTRACT 1 FROM p_n. + p_n = p_n - 1. ENDDO. ENDMETHOD. @@ -410,12 +403,12 @@ CLASS y_check_base IMPLEMENTATION. DO. READ TABLE tokens INDEX p_n ASSIGNING FIELD-SYMBOL(). - IF sy-subrc EQ 0 AND -row <> 0. + IF sy-subrc = 0 AND -row <> 0. p_column = -col. p_line = -row. RETURN. ENDIF. - SUBTRACT 1 FROM p_n. + p_n = p_n - 1. ENDDO. ENDMETHOD. @@ -430,12 +423,12 @@ CLASS y_check_base IMPLEMENTATION. DO. READ TABLE tokens INDEX p_n ASSIGNING FIELD-SYMBOL(). - IF sy-subrc EQ 0 AND -row <> 0. + IF sy-subrc = 0 AND -row <> 0. p_column = -col. p_line = -row. RETURN. ENDIF. - SUBTRACT 1 FROM p_n. + p_n = p_n - 1. ENDDO. ENDMETHOD. @@ -451,27 +444,25 @@ CLASS y_check_base IMPLEMENTATION. DO. READ TABLE tokens INDEX index ASSIGNING FIELD-SYMBOL(). - IF sy-subrc EQ 0 AND -row <> 0. + IF sy-subrc = 0 AND -row <> 0. p_result = -row. RETURN. ENDIF. - SUBTRACT 1 FROM index. + index = index - 1. ENDDO. ENDMETHOD. METHOD get_token_abs. READ TABLE ref_scan_manager->tokens INDEX p_n INTO token_wa. - IF sy-subrc EQ 0. + IF sy-subrc = 0. p_result = token_wa-str. ENDIF. ENDMETHOD. METHOD get_token_rel. - DATA l_index TYPE i. - - l_index = statement_wa-from + p_n - 1. + DATA(l_index) = statement_wa-from + p_n - 1. IF l_index > statement_wa-to. RETURN. ENDIF. @@ -655,7 +646,7 @@ CLASS y_check_base IMPLEMENTATION. suppress = settings-pseudo_comment position = statement_index ) ). - IF cl_abap_typedescr=>describe_by_object_ref( ref_scan_manager )->get_relative_name( ) EQ 'Y_REF_SCAN_MANAGER'. + IF cl_abap_typedescr=>describe_by_object_ref( ref_scan_manager )->get_relative_name( ) = 'Y_REF_SCAN_MANAGER'. inform( p_sub_obj_type = object_type p_sub_obj_name = get_include( p_level = statement_level ) p_position = statement_index @@ -680,6 +671,8 @@ CLASS y_check_base IMPLEMENTATION. METHOD run. + DATA profile_configurations TYPE y_if_clean_code_manager=>check_configurations. + instantiate_objects( ). IF attributes_maintained = abap_false AND has_attributes = abap_true. @@ -691,13 +684,11 @@ CLASS y_check_base IMPLEMENTATION. RETURN. ENDIF. - DATA profile_configurations TYPE y_if_clean_code_manager=>check_configurations. - TRY. check_start_conditions( ). profile_configurations = clean_code_manager->read_check_customizing( myname ). CATCH ycx_no_check_customizing. - IF profile_configurations IS INITIAL AND attributes_ok = abap_false. + IF profile_configurations IS INITIAL AND attributes_ok = abap_false. FREE ref_scan_manager. RETURN. ELSEIF attributes_ok = abap_true. diff --git a/src/foundation/y_ci_check_registration.prog.abap b/src/foundation/y_ci_check_registration.prog.abap index b097c24e..d112f962 100644 --- a/src/foundation/y_ci_check_registration.prog.abap +++ b/src/foundation/y_ci_check_registration.prog.abap @@ -59,17 +59,17 @@ CLASS lcl_check_registration IMPLEMENTATION. ENDMETHOD. METHOD is_check_compatible. - IF name NE get_category_name( ). - DATA code_pal_check TYPE REF TO y_check_base. "#EC DECL_IN_IF + DATA code_pal_check TYPE REF TO y_check_base. + IF name <> get_category_name( ). CREATE OBJECT code_pal_check TYPE (name). ENDIF. ENDMETHOD. METHOD select_object_list. SELECT SINGLE devclass FROM tadir - WHERE obj_name EQ @reference-check_base - AND object EQ @reference-class - AND delflag EQ @abap_false + WHERE obj_name = @reference-check_base + AND object = @reference-class + AND delflag = @abap_false INTO @DATA(packagename). IF sy-subrc <> 0. RAISE EXCEPTION TYPE cx_failed. @@ -78,9 +78,9 @@ CLASS lcl_check_registration IMPLEMENTATION. REPLACE reference-foundation IN packagename WITH reference-checks. SELECT obj_name FROM tadir - WHERE devclass EQ @packagename - AND object EQ @reference-class - AND delflag EQ @abap_false + WHERE devclass = @packagename + AND object = @reference-class + AND delflag = @abap_false INTO TABLE @result. IF sy-subrc <> 0. RAISE EXCEPTION TYPE cx_failed. @@ -93,7 +93,7 @@ CLASS lcl_check_registration IMPLEMENTATION. METHOD activate_check. is_check_compatible( name ). - INSERT scitests FROM name. + INSERT scitests FROM @name. IF sy-subrc <> 0. RAISE EXCEPTION TYPE cx_failed. ENDIF. @@ -102,7 +102,7 @@ CLASS lcl_check_registration IMPLEMENTATION. METHOD deactivate_check. is_check_compatible( name ). - DELETE FROM scitests WHERE name = name. + DELETE FROM scitests WHERE name = @name. IF sy-subrc <> 0. RAISE EXCEPTION TYPE cx_failed. ENDIF. @@ -140,12 +140,9 @@ CLASS lcl_util IMPLEMENTATION. TRY. lcl_check_registration=>activate_check( ). count_successes = count_successes + 1. - CATCH cx_failed. + CATCH cx_failed + cx_sy_create_object_error. count_errors = count_errors + 1. - - - DATA dta TYPE REF TO cl_ci_tests. - ENDTRY. ENDLOOP. WRITE: / |{ count_successes } { messages-successfully_activated }|. @@ -159,7 +156,8 @@ CLASS lcl_util IMPLEMENTATION. TRY. lcl_check_registration=>deactivate_check( ). count_successes = count_successes + 1. - CATCH cx_failed. + CATCH cx_failed + cx_sy_create_object_error. count_faults = count_faults + 1. ENDTRY. ENDLOOP. diff --git a/src/foundation/y_clean_code_manager.clas.abap b/src/foundation/y_clean_code_manager.clas.abap index 2cda64ef..6c735437 100644 --- a/src/foundation/y_clean_code_manager.clas.abap +++ b/src/foundation/y_clean_code_manager.clas.abap @@ -50,12 +50,18 @@ CLASS y_clean_code_manager IMPLEMENTATION. FIND FIRST OCCURRENCE OF `Y_CLEAN_CODE_REPORTING` IN TABLE callstack. IF sy-subrc = 0. - SELECT SINGLE obj_name FROM tadir INTO obj_name - WHERE pgmid = 'R3TR' AND - object = 'TABL' AND - obj_name = profile_db. + SELECT SINGLE obj_name + FROM tadir + INTO @obj_name + WHERE pgmid = 'R3TR' + AND object = 'TABL' + AND obj_name = @profile_db. + IF sy-subrc = 0. - SELECT profile FROM (profile_db) INTO TABLE result. + SELECT profile + FROM (profile_db) + INTO TABLE @result. + IF sy-subrc = 0. RETURN. ENDIF. diff --git a/src/foundation/y_code_pal_service.clas.abap b/src/foundation/y_code_pal_service.clas.abap index caab0bae..0eebbcd4 100644 --- a/src/foundation/y_code_pal_service.clas.abap +++ b/src/foundation/y_code_pal_service.clas.abap @@ -195,8 +195,7 @@ CLASS y_code_pal_service IMPLEMENTATION. ENDTRY. TRY. - result_access->get_findings( IMPORTING e_findings = DATA(findings) - e_findings_extension = DATA(findings_extension) ). + result_access->get_findings( IMPORTING e_findings = DATA(findings) ). CATCH cx_satc_failure. raise_internal_server_error( ). response->set_cdata( 'Result access failed (no authorization, etc.)' ). diff --git a/src/foundation/y_exemption_general.clas.abap b/src/foundation/y_exemption_general.clas.abap index 0f737f35..d569f503 100644 --- a/src/foundation/y_exemption_general.clas.abap +++ b/src/foundation/y_exemption_general.clas.abap @@ -19,8 +19,13 @@ CLASS y_exemption_general IMPLEMENTATION. METHOD y_if_exemption~is_object_exempted. - result = xsdbool( ( is_object_existing( object_type = object_type object_name = object_name ) = abap_true ) OR - ( is_tadir_generated( object_type = object_type object_name = object_name ) = abap_true ) ). + DATA(object_exists) = is_object_existing( object_type = object_type + object_name = object_name ). + + DATA(tadir_generated) = is_tadir_generated( object_type = object_type + object_name = object_name ). + + result = xsdbool( object_exists = abap_true OR tadir_generated = abap_true ). ENDMETHOD. diff --git a/src/foundation/y_exemption_of_class.clas.abap b/src/foundation/y_exemption_of_class.clas.abap index 8765fd6a..ffdaaebd 100644 --- a/src/foundation/y_exemption_of_class.clas.abap +++ b/src/foundation/y_exemption_of_class.clas.abap @@ -10,14 +10,12 @@ CLASS y_exemption_of_class DEFINITION PUBLIC CREATE PUBLIC. CLASS-METHODS is_odata_generate RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_ecatt_odata_test_generate RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_fin_infotype_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_amdp_class RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_extensibility_generate RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_shma_generate RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_proxy_generate RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_sadl_generate RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_exit_class RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_exception_class RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_xlca_generate RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS is_bcp_application RETURNING VALUE(result) TYPE abap_bool. ENDCLASS. @@ -51,34 +49,6 @@ CLASS y_exemption_of_class IMPLEMENTATION. ENDMETHOD. - METHOD is_amdp_class. - DATA: lt_interfaces TYPE seor_implementing_keys. - DATA: lv_seoclskey TYPE seoclskey. - - lv_seoclskey = class_header_data-clsname. - - CALL FUNCTION 'SEO_CLASS_ALL_IMPLEMENTG_GET' - EXPORTING - clskey = lv_seoclskey - IMPORTING - set = lt_interfaces - EXCEPTIONS - not_existing = 1 - is_interface = 2 - model_only = 3 - OTHERS = 4. - IF sy-subrc <> 0. - RETURN. - ENDIF. - - LOOP AT lt_interfaces TRANSPORTING NO FIELDS - WHERE refclsname = 'IF_AMDP_MARKER_HDB'. - result = abap_true. - RETURN. - ENDLOOP. - ENDMETHOD. - - METHOD is_bcp_application. DATA it_bsp_classes TYPE STANDARD TABLE OF seoclsname. @@ -94,7 +64,7 @@ CLASS y_exemption_of_class IMPLEMENTATION. SELECT SINGLE refclsname FROM seometarel WHERE clsname = @class_header_data-clsname AND refclsname IS NOT NULL INTO @DATA(inherited_by). - IF sy-subrc NE 0. + IF sy-subrc <> 0. RETURN. ENDIF. @@ -116,11 +86,11 @@ CLASS y_exemption_of_class IMPLEMENTATION. METHOD is_ecatt_odata_test_generate. - SELECT SINGLE s~clsname FROM seoclassdf AS s INTO @DATA(lv_odata_class) - WHERE clsname = @class_header_data-clsname AND s~author = 'eCATTClassGe'. - IF sy-subrc = 0. - result = abap_true. - ENDIF. + SELECT SINGLE @abap_true + FROM seoclassdf + INTO @result + WHERE clsname = @class_header_data-clsname + AND author = 'eCATTClassGe'. ENDMETHOD. @@ -169,32 +139,22 @@ CLASS y_exemption_of_class IMPLEMENTATION. METHOD is_fin_infotype_generate. - SELECT SINGLE idclass FROM t777ditclass INTO @DATA(lv_inftype_cl) WHERE idclass = @class_header_data-clsname. - IF sy-subrc = 0. - result = abap_true. - RETURN. - ENDIF. - - SELECT SINGLE cont_db FROM t777ditclass INTO @DATA(lv_inftype1_cl) WHERE cont_db = @class_header_data-clsname. - IF sy-subrc = 0. - result = abap_true. - RETURN. - ENDIF. - - SELECT SINGLE bl_class FROM t777ditclass INTO @DATA(lv_inftype2_cl) WHERE bl_class = @class_header_data-clsname. - IF sy-subrc = 0. - result = abap_true. - RETURN. - ENDIF. + SELECT SINGLE @abap_true + FROM t777ditclass + INTO @result + WHERE idclass = @class_header_data-clsname + OR cont_db = @class_header_data-clsname + OR bl_class = @class_header_data-clsname. ENDMETHOD. METHOD is_odata_generate. - SELECT SINGLE trobj_name FROM /iwbep/i_sbd_ga INTO @DATA(l_name) - WHERE ( gen_art_type = 'DPCB' OR gen_art_type = 'MPCB' ) AND trobj_type = 'CLAS' AND trobj_name = @class_header_data-clsname. "#EC CI_NOFIELD - IF sy-subrc = 0. - result = abap_true. - ENDIF. + SELECT SINGLE @abap_true + FROM /iwbep/i_sbd_ga + INTO @result + WHERE ( gen_art_type = 'DPCB' OR gen_art_type = 'MPCB' ) + AND trobj_type = 'CLAS' + AND trobj_name = @class_header_data-clsname. "#EC CI_NOFIELD ENDMETHOD. @@ -204,20 +164,21 @@ CLASS y_exemption_of_class IMPLEMENTATION. METHOD is_sadl_generate. - SELECT SINGLE langu FROM seoclasstx INTO @DATA(l_category) - WHERE clsname = @class_header_data-clsname AND descript = 'Generated by SADL Generation Toolkit' ##NO_TEXT. - IF sy-subrc = 0. - result = abap_true. - ENDIF. + SELECT SINGLE @abap_true + FROM seoclasstx + INTO @result + WHERE clsname = @class_header_data-clsname + AND descript = 'Generated by SADL Generation Toolkit' ##NO_TEXT. ENDMETHOD. METHOD is_shma_generate. - SELECT SINGLE obj_name FROM tadir INTO @DATA(shma_clas) - WHERE pgmid = 'R3TR' AND object = 'SHMA' AND obj_name = @class_header_data-clsname. - IF sy-subrc = 0. - result = abap_true. - ENDIF. + SELECT SINGLE @abap_true + FROM tadir + INTO @result + WHERE pgmid = 'R3TR' + AND object = 'SHMA' + AND obj_name = @class_header_data-clsname. ENDMETHOD. @@ -247,32 +208,4 @@ CLASS y_exemption_of_class IMPLEMENTATION. ENDMETHOD. - METHOD is_xlca_generate. - DATA: lt_interfaces TYPE seor_implementing_keys. - DATA: lv_seoclskey TYPE seoclskey. - - lv_seoclskey = class_header_data-clsname. - - CALL FUNCTION 'SEO_CLASS_ALL_IMPLEMENTG_GET' - EXPORTING - clskey = lv_seoclskey - IMPORTING - set = lt_interfaces - EXCEPTIONS - not_existing = 1 - is_interface = 2 - model_only = 3 - OTHERS = 4. - IF sy-subrc <> 0. - RETURN. - ENDIF. - - LOOP AT lt_interfaces TRANSPORTING NO FIELDS - WHERE refclsname = 'IF_CTS_TABLE_CONVERSION'. - result = abap_true. - RETURN. - ENDLOOP. - ENDMETHOD. - - ENDCLASS. diff --git a/src/foundation/y_exemption_of_function_group.clas.abap b/src/foundation/y_exemption_of_function_group.clas.abap index 43f274d6..d1b27004 100644 --- a/src/foundation/y_exemption_of_function_group.clas.abap +++ b/src/foundation/y_exemption_of_function_group.clas.abap @@ -35,21 +35,32 @@ CLASS y_exemption_of_function_group IMPLEMENTATION. IF name(1) = '/'. FIND FIRST OCCURRENCE OF '/' IN name+1 MATCH OFFSET DATA(l_offset). l_offset = l_offset + 2. - fugr_name = insert( val = name sub = 'SAPL' off = l_offset ). + fugr_name = insert( val = name + sub = 'SAPL' + off = l_offset ). ELSE. fugr_name = 'SAPL' && name. ENDIF. - SELECT SINGLE COUNT(*) FROM tfdir INTO fugr_func_viewframe - WHERE pname = fugr_name AND ( funcname LIKE 'VIEWFRAME%' OR funcname LIKE 'VIEWPROC%' OR funcname LIKE 'TABLEPROC%' OR funcname LIKE 'TABLEFRAME%' ). "#EC CI_BYPASS "#EC CI_GENBUFF + SELECT SINGLE COUNT(*) + FROM tfdir + INTO @fugr_func_viewframe + WHERE pname = @fugr_name + AND ( funcname LIKE 'VIEWFRAME%' + OR funcname LIKE 'VIEWPROC%' + OR funcname LIKE 'TABLEPROC%' + OR funcname LIKE 'TABLEFRAME%' ). "#EC CI_BYPASS "#EC CI_GENBUFF IF fugr_func_viewframe = 0 OR sy-subrc = 4. RETURN. ENDIF. - SELECT SINGLE COUNT(*) FROM tfdir INTO fugr_func - WHERE pname = fugr_name. "#EC CI_BYPASS. "#EC CI_GENBUFF - IF ( fugr_func = fugr_func_viewframe ). + SELECT SINGLE COUNT(*) + FROM tfdir + INTO @fugr_func + WHERE pname = @fugr_name. "#EC CI_BYPASS. "#EC CI_GENBUFF + + IF fugr_func = fugr_func_viewframe. result = abap_true. ENDIF. ENDMETHOD. @@ -60,24 +71,30 @@ CLASS y_exemption_of_function_group IMPLEMENTATION. FIND FIRST OCCURRENCE OF '/' IN name+1 MATCH OFFSET DATA(l_offset). l_offset = l_offset + 2. - DATA(fugr_name) = insert( val = name sub = 'SAPL' off = l_offset ). - - SELECT SINGLE funcname FROM tfdir INTO @DATA(rai_fugr_func) - WHERE pname = @fugr_name - AND NOT ( ( funcname LIKE '%_UPDATE' ) OR ( funcname LIKE '%_INSERT' ) OR ( funcname LIKE '%_RAI_CREATE_API' ) ). "#EC CI_GENBUFF. - - IF sy-subrc = 4. + DATA(fugr_name) = insert( val = name + sub = 'SAPL' + off = l_offset ). + + SELECT SINGLE funcname + FROM tfdir + INTO @DATA(rai_fugr_func) + WHERE pname = @fugr_name + AND NOT ( ( funcname LIKE '%_UPDATE' ) + OR ( funcname LIKE '%_INSERT' ) + OR ( funcname LIKE '%_RAI_CREATE_API' ) ). "#EC CI_GENBUFF. + + IF rai_fugr_func IS INITIAL. result = abap_true. ENDIF. ENDMETHOD. METHOD is_table_maintenance_generate. - SELECT SINGLE area AS object FROM tlibt INTO @DATA(l_area) - WHERE area = @name AND ( areat = 'Extended Table Maintenance (Generated)' ) ##NO_TEXT. "#EC CI_GENBUFF - IF sy-subrc = 0. - result = abap_true. - ENDIF. + SELECT SINGLE @abap_true + FROM tlibt + INTO @result + WHERE area = @name + AND areat = 'Extended Table Maintenance (Generated)' ##NO_TEXT. "#EC CI_GENBUFF ENDMETHOD. diff --git a/src/foundation/y_exemption_of_program.clas.abap b/src/foundation/y_exemption_of_program.clas.abap index 593b952b..8640570b 100644 --- a/src/foundation/y_exemption_of_program.clas.abap +++ b/src/foundation/y_exemption_of_program.clas.abap @@ -43,31 +43,22 @@ CLASS y_exemption_of_program IMPLEMENTATION. METHOD is_enterprise_search_generate. - SELECT * FROM trdir INTO TABLE @DATA(genprog) - WHERE name LIKE '%\_001' ESCAPE '\' - AND ( secu = 'ESH' OR name LIKE 'ESHS%' ) - AND ( subc = 'S' OR subc = '1' ) "include programs ('I') are not supported - AND name = @name. - IF sy-subrc EQ 0. - result = abap_true. - ENDIF. + SELECT SINGLE @abap_true + FROM trdir + INTO @result + WHERE name LIKE '%\_001' ESCAPE '\' + AND ( secu = 'ESH' OR name LIKE 'ESHS%' ) + AND ( subc = 'S' OR subc = '1' ) "include programs ('I') are not supported + AND name = @name. ENDMETHOD. METHOD is_fin_infotyp_generate. - SELECT SINGLE repid FROM t777d INTO @DATA(lv_inftype1_progs) - WHERE repid = @name. - IF sy-subrc = 0. - result = abap_true. - RETURN. - ENDIF. - - SELECT SINGLE btci_prog FROM t777d INTO @DATA(lv_inftype2_progs) - WHERE btci_prog = @name. - IF sy-subrc = 0. - result = abap_true. - RETURN. - ENDIF. + SELECT SINGLE @abap_true + FROM t777d + INTO @result + WHERE repid = @name + OR btci_prog = @name. ENDMETHOD. @@ -113,11 +104,10 @@ CLASS y_exemption_of_program IMPLEMENTATION. METHOD is_object_sw01_generate. - SELECT SINGLE progname FROM tojtb INTO @DATA(l_prog) - WHERE progname = @name. "#EC CI_GENBUFF - IF sy-subrc = 0. - result = abap_true. - ENDIF. + SELECT SINGLE @abap_true + FROM tojtb + INTO @result + WHERE progname = @name. "#EC CI_GENBUFF ENDMETHOD. diff --git a/src/foundation/y_object_creation_date.clas.abap b/src/foundation/y_object_creation_date.clas.abap index 88e4c128..754d9d88 100644 --- a/src/foundation/y_object_creation_date.clas.abap +++ b/src/foundation/y_object_creation_date.clas.abap @@ -86,7 +86,10 @@ CLASS y_object_creation_date IMPLEMENTATION. DELETE buffer FROM 1 TO max_entries / 2. ENDIF. - APPEND get_db_tadir_data( object_type = object_type object_name = object_name ) TO created_on_dates. + DATA(taidr) = get_db_tadir_data( object_type = object_type + object_name = object_name ). + + APPEND taidr TO created_on_dates. DATA(repo_access) = COND #( WHEN object_type = 'FUGR' THEN convert_fugr_for_db_access( object_name ) WHEN object_type = 'CLAS' THEN convert_class_for_repos_access( object_name ) @@ -178,7 +181,7 @@ CLASS y_object_creation_date IMPLEMENTATION. DATA(search_pattern) = convert_fugr_for_db_access( fugr_name ). SELECT funcname INTO TABLE @DATA(functions) FROM tfdir WHERE pname = @search_pattern. "#EC CI_GENBUFF - IF sy-subrc NE 0. + IF sy-subrc <> 0. RETURN. ENDIF. @@ -193,7 +196,7 @@ CLASS y_object_creation_date IMPLEMENTATION. objtype = 'FUNC' AND objname IN @function_search_table AND datum IS NOT NULL AND "only in HRI - datum NE '00000000' + datum <> '00000000' INTO @result. ENDMETHOD. diff --git a/src/foundation/y_pseudo_comment_detector.clas.abap b/src/foundation/y_pseudo_comment_detector.clas.abap index 31ad1b55..f65fbe8f 100644 --- a/src/foundation/y_pseudo_comment_detector.clas.abap +++ b/src/foundation/y_pseudo_comment_detector.clas.abap @@ -135,10 +135,12 @@ CLASS y_pseudo_comment_detector IMPLEMENTATION. RETURN. ENDIF. - result = has_comment( ref_scan_manager = ref_scan_manager position = position ). + result = has_comment( ref_scan_manager = ref_scan_manager + position = position ). IF result <> cl_ci_test_root=>c_pc_exceptn_exists. - result = has_inline_comment( ref_scan_manager = ref_scan_manager position = position ). + result = has_inline_comment( ref_scan_manager = ref_scan_manager + position = position ). ENDIF. ENDMETHOD. diff --git a/src/foundation/y_test_code_detector.clas.abap b/src/foundation/y_test_code_detector.clas.abap index ee11cc3f..cafc2ae2 100644 --- a/src/foundation/y_test_code_detector.clas.abap +++ b/src/foundation/y_test_code_detector.clas.abap @@ -18,7 +18,6 @@ CLASS y_test_code_detector DEFINITION PUBLIC CREATE PUBLIC. IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE abap_bool, try_testmethod - IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE abap_bool, keyword RETURNING VALUE(result) TYPE string, @@ -41,7 +40,7 @@ CLASS Y_TEST_CODE_DETECTOR IMPLEMENTATION. ENDIF. LOOP AT ref_scan_manager->structures ASSIGNING FIELD-SYMBOL() - WHERE stmnt_type EQ scan_struc_stmnt_type-class_definition. + WHERE stmnt_type = scan_struc_stmnt_type-class_definition. process_statements( ). ENDLOOP. @@ -61,10 +60,7 @@ CLASS Y_TEST_CODE_DETECTOR IMPLEMENTATION. METHOD is_test_class. IF keyword( ) = 'CLASS'. DATA(class) = get_token_rel( 2 ). "#EC DECL_IN_IF - READ TABLE test_codes TRANSPORTING NO FIELDS WITH KEY class = class. - IF sy-subrc EQ 0. - result = abap_true. - ENDIF. + result = xsdbool( line_exists( test_codes[ class = class ] ) ). ENDIF. ENDMETHOD. @@ -99,7 +95,7 @@ CLASS Y_TEST_CODE_DETECTOR IMPLEMENTATION. EXIT. ENDIF. - IF try_testmethod( ). + IF try_testmethod( ). EXIT. ENDIF. ENDLOOP. @@ -107,7 +103,7 @@ CLASS Y_TEST_CODE_DETECTOR IMPLEMENTATION. METHOD try_testclass. - IF token-str EQ 'TESTING' AND + IF token-str = 'TESTING' AND keyword( ) = 'CLASS'. test_code-class = get_token_rel( 2 ). result = abap_true. @@ -116,18 +112,16 @@ CLASS Y_TEST_CODE_DETECTOR IMPLEMENTATION. METHOD try_testmethod. - IF test_code-class IS NOT INITIAL AND ( - keyword( ) = 'METHODS' OR - keyword( ) = 'CLASS-METHODS' ). - + IF test_code-class IS NOT INITIAL + AND ( keyword( ) = 'METHODS' OR keyword( ) = 'CLASS-METHODS' ). test_code-method = get_token_rel( 2 ). APPEND test_code TO test_codes. result = abap_true. ENDIF. - IF test_code-class IS NOT INITIAL AND - test_code-method IS INITIAL AND - keyword( ) = 'ENDCLASS'. + IF test_code-class IS NOT INITIAL + AND test_code-method IS INITIAL + AND keyword( ) = 'ENDCLASS'. APPEND test_code TO test_codes. result = abap_true. ENDIF. @@ -158,7 +152,7 @@ CLASS Y_TEST_CODE_DETECTOR IMPLEMENTATION. DO. DATA(low_level_structure) = high_level_structure. "#EC DECL_IN_IF READ TABLE ref_scan_manager->structures INTO high_level_structure INDEX low_level_structure-back. - IF sy-subrc NE 0. + IF sy-subrc <> 0. EXIT. ENDIF. @@ -167,7 +161,7 @@ CLASS Y_TEST_CODE_DETECTOR IMPLEMENTATION. result = abap_true. EXIT. ENDIF. - IF low_level_structure-back EQ 0. + IF low_level_structure-back = 0. EXIT. ENDIF. ENDDO. diff --git a/src/foundation/y_test_code_detector.clas.testclasses.abap b/src/foundation/y_test_code_detector.clas.testclasses.abap index 5a3f47e5..06776146 100644 --- a/src/foundation/y_test_code_detector.clas.testclasses.abap +++ b/src/foundation/y_test_code_detector.clas.testclasses.abap @@ -76,7 +76,7 @@ CLASS ltc_test_code_detector IMPLEMENTATION. ref_scan_manager_double->set_data_without_test( ). LOOP AT ref_scan_manager_double->y_if_scan_manager~structures ASSIGNING FIELD-SYMBOL() - FROM 2 WHERE stmnt_type EQ scan_struc_stmnt_type-class_definition. + FROM 2 WHERE stmnt_type = scan_struc_stmnt_type-class_definition. cl_abap_unit_assert=>assert_equals( act = cut->y_if_testcode_detector~is_testcode( ) @@ -89,7 +89,7 @@ CLASS ltc_test_code_detector IMPLEMENTATION. ref_scan_manager_double->set_data_with_test( ). LOOP AT ref_scan_manager_double->y_if_scan_manager~structures ASSIGNING FIELD-SYMBOL() - FROM 2 WHERE stmnt_type EQ scan_struc_stmnt_type-class_definition. + FROM 2 WHERE stmnt_type = scan_struc_stmnt_type-class_definition. cl_abap_unit_assert=>assert_equals( act = cut->y_if_testcode_detector~is_testcode( ) @@ -102,7 +102,7 @@ CLASS ltc_test_code_detector IMPLEMENTATION. ref_scan_manager_double->set_data_without_test( ). LOOP AT ref_scan_manager_double->y_if_scan_manager~structures ASSIGNING FIELD-SYMBOL() - FROM 2 WHERE stmnt_type EQ scan_struc_stmnt_type-method. + FROM 2 WHERE stmnt_type = scan_struc_stmnt_type-method. cl_abap_unit_assert=>assert_equals( act = cut->y_if_testcode_detector~is_testcode( ) @@ -115,7 +115,7 @@ CLASS ltc_test_code_detector IMPLEMENTATION. ref_scan_manager_double->set_data_with_test( ). LOOP AT ref_scan_manager_double->y_if_scan_manager~structures ASSIGNING FIELD-SYMBOL() - FROM 2 WHERE stmnt_type EQ scan_struc_stmnt_type-method. + FROM 2 WHERE stmnt_type = scan_struc_stmnt_type-method. cl_abap_unit_assert=>assert_equals( act = cut->y_if_testcode_detector~is_testcode( ) @@ -128,7 +128,7 @@ CLASS ltc_test_code_detector IMPLEMENTATION. ref_scan_manager_double->set_data_with_test( ). LOOP AT ref_scan_manager_double->y_if_scan_manager~structures ASSIGNING FIELD-SYMBOL() - FROM 2 WHERE stmnt_type EQ scan_struc_stmnt_type-class_definition. + FROM 2 WHERE stmnt_type = scan_struc_stmnt_type-class_definition. cl_abap_unit_assert=>assert_equals( act = cut->y_if_testcode_detector~is_testcode( ) @@ -141,7 +141,7 @@ CLASS ltc_test_code_detector IMPLEMENTATION. ref_scan_manager_double->set_data_without_test( ). LOOP AT ref_scan_manager_double->y_if_scan_manager~structures ASSIGNING FIELD-SYMBOL() - FROM 2 WHERE stmnt_type EQ scan_struc_stmnt_type-class_definition. + FROM 2 WHERE stmnt_type = scan_struc_stmnt_type-class_definition. cl_abap_unit_assert=>assert_equals( act = cut->y_if_testcode_detector~is_testcode( ) @@ -154,7 +154,7 @@ CLASS ltc_test_code_detector IMPLEMENTATION. ref_scan_manager_double->set_data_with_test( ). LOOP AT ref_scan_manager_double->y_if_scan_manager~structures ASSIGNING FIELD-SYMBOL() - FROM 2 WHERE stmnt_type EQ scan_struc_stmnt_type-class_definition. + FROM 2 WHERE stmnt_type = scan_struc_stmnt_type-class_definition. cl_abap_unit_assert=>assert_equals( act = cut->y_if_testcode_detector~is_testcode( ) diff --git a/src/profiles/y_alv_events.clas.abap b/src/profiles/y_alv_events.clas.abap index c97f3eef..35651613 100644 --- a/src/profiles/y_alv_events.clas.abap +++ b/src/profiles/y_alv_events.clas.abap @@ -15,10 +15,10 @@ CLASS y_alv_events IMPLEMENTATION. METHOD y_if_alv_events~get_events. - IF mode EQ y_if_alv_events~mode_double_click. + IF mode = y_if_alv_events~mode_double_click. result = VALUE y_if_alv_events=>simple_events( ( eventid = cl_gui_column_tree=>eventid_node_double_click appl_event = abap_true ) ). - ELSEIF mode EQ y_if_alv_events~mode_selection_changed. + ELSEIF mode = y_if_alv_events~mode_selection_changed. result = VALUE y_if_alv_events=>simple_events( ( eventid = cl_gui_column_tree=>eventid_selection_changed appl_event = abap_true ) ). ENDIF. diff --git a/src/profiles/y_alv_tree_control.clas.abap b/src/profiles/y_alv_tree_control.clas.abap index c8872987..727162be 100644 --- a/src/profiles/y_alv_tree_control.clas.abap +++ b/src/profiles/y_alv_tree_control.clas.abap @@ -25,7 +25,6 @@ CLASS y_alv_tree_control DEFINITION PUBLIC CREATE PUBLIC. IMPORTING type_name TYPE string sort_table TYPE lvc_t_sort - events TYPE REF TO y_if_alv_events alv_tree TYPE REF TO cl_gui_alv_tree_simple alv_header TYPE slis_t_listheader RAISING @@ -55,7 +54,7 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. METHOD autosize_all_fields. DATA filler TYPE i VALUE 7. LOOP AT fieldcats ASSIGNING FIELD-SYMBOL(). - IF -dd_outlen GE strlen( -coltext ). + IF -dd_outlen >= strlen( -coltext ). -outputlen = -dd_outlen + filler. ELSE. -outputlen = strlen( -coltext ) + filler. @@ -95,7 +94,6 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. result = NEW y_alv_tree_control( type_name = type_name sort_table = sort_table - events = events alv_tree = alv_tree alv_header = alv_header ). ENDMETHOD. @@ -130,7 +128,7 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. METHOD y_if_alv_tree_control~get_selected_index. DATA index_table TYPE lvc_t_indx. CHECK y_if_alv_tree_control~list_control( )->get_line_at( 1 ) IS NOT INITIAL. - IF sy-subrc EQ 0. + IF sy-subrc = 0. alv_tree->get_selected_nodes( CHANGING ct_index_outtab = index_table ). TRY. result = index_table[ 1 ]. @@ -142,9 +140,12 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. METHOD y_if_alv_tree_control~set_selected_index. - CHECK y_if_alv_tree_control~list_control( )->get_line_at( 1 ) IS NOT INITIAL. DATA index_table TYPE lvc_t_indx. + + CHECK y_if_alv_tree_control~list_control( )->get_line_at( 1 ) IS NOT INITIAL. + APPEND index TO index_table. + alv_tree->set_selected_nodes( EXPORTING it_index_outtab = index_table @@ -196,7 +197,7 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. METHOD y_if_alv_tree_control~set_field_header_text. - LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname EQ to_upper( fieldname ). + LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname = to_upper( fieldname ). -coltext = header_text. ENDLOOP. UNASSIGN . @@ -204,8 +205,8 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. METHOD y_if_alv_tree_control~set_field_visibility. - LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname EQ to_upper( fieldname ). - -no_out = xsdbool( is_visible EQ abap_false ). + LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname = to_upper( fieldname ). + -no_out = xsdbool( is_visible = abap_false ). ENDLOOP. UNASSIGN . ENDMETHOD. @@ -213,7 +214,7 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. METHOD y_if_alv_tree_control~toolbar_control. alv_tree->get_toolbar_object( IMPORTING er_toolbar = result EXCEPTIONS OTHERS = 4 ). - IF sy-subrc NE 0. + IF sy-subrc <> 0. RAISE EXCEPTION TYPE cx_failed. ENDIF. ENDMETHOD. @@ -229,7 +230,7 @@ CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. y_if_alv_tree_control~toolbar_control( )->set_button_state( EXPORTING enabled = abap_true fcode =