@@ -3,17 +3,17 @@ CLASS y_check_empty_catches DEFINITION PUBLIC INHERITING FROM y_check_base CREAT
3
3
METHODS constructor .
4
4
5
5
PROTECTED SECTION .
6
- METHODS inspect_tokens REDEFINITION .
6
+ METHODS inspect_tokens REDEFINITION .
7
+ METHODS get_token_abs REDEFINITION .
7
8
8
9
PRIVATE SECTION .
9
- METHODS get_next_token_from_index IMPORTING index TYPE i
10
- RETURNING VALUE (result ) TYPE stokesx.
10
+ METHODS is_test_double_framework RETURNING VALUE (result ) TYPE abap_bool .
11
11
12
12
ENDCLASS .
13
13
14
14
15
15
16
- CLASS Y_CHECK_EMPTY_CATCHES IMPLEMENTATION .
16
+ CLASS y_check_empty_catches IMPLEMENTATION .
17
17
18
18
19
19
METHOD constructor .
@@ -28,21 +28,13 @@ CLASS Y_CHECK_EMPTY_CATCHES IMPLEMENTATION.
28
28
ENDMETHOD .
29
29
30
30
31
- METHOD get_next_token_from_index .
32
- LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL (<token> )
33
- FROM index WHERE type = 'I' .
34
- IF result IS INITIAL .
35
- result = <token> .
36
- EXIT .
37
- ENDIF .
38
- ENDLOOP .
39
- ENDMETHOD .
31
+ METHOD inspect_tokens .
32
+ CHECK keyword( ) = 'CATCH' .
40
33
34
+ CHECK get_token_abs( statement-to + 1 ) = if_kaizen_keywords_c=>gc_endtry
35
+ OR get_token_abs( statement-to + 1 ) = 'ENDCATCH' .
41
36
42
- METHOD inspect_tokens .
43
- CHECK get_next_token_from_index( statement-from )-str = 'CATCH'
44
- AND ( get_next_token_from_index( statement-to + 1 )-str = 'ENDTRY'
45
- OR get_next_token_from_index( statement-to + 1 )-str = 'ENDCATCH' ).
37
+ CHECK is_test_double_framework( ) = abap_false .
46
38
47
39
DATA (check_configuration ) = detect_check_configuration( statement ).
48
40
@@ -51,4 +43,24 @@ CLASS Y_CHECK_EMPTY_CATCHES IMPLEMENTATION.
51
43
statement_from = statement-from
52
44
check_configuration = check_configuration ).
53
45
ENDMETHOD .
46
+
47
+
48
+ METHOD get_token_abs .
49
+ p_result = super ->get_token_abs( p_n ).
50
+ if token_wa-type = scan_token_type-comment.
51
+ p_result = get_token_abs( p_n + 1 ).
52
+ endif .
53
+ ENDMETHOD .
54
+
55
+
56
+ METHOD is_test_double_framework .
57
+ DATA (catch_structure ) = ref_scan->structures[ statement_wa-struc ].
58
+ DATA (before_try_structure ) = ref_scan->structures[ catch_structure-back - 1 ].
59
+ DATA (search_from_token ) = ref_scan->statements[ before_try_structure-stmnt_from ]-from.
60
+ DATA (search_to_token ) = ref_scan->statements[ before_try_structure-stmnt_to ]-to.
61
+ DATA (range_tokens ) = VALUE stokesx_tab( FOR token IN ref_scan->tokens FROM search_from_token TO search_to_token ( token ) ).
62
+ result = xsdbool ( line_exists ( range_tokens[ str = 'CL_ABAP_TESTDOUBLE=>CONFIGURE_CALL(' ] ) ).
63
+ ENDMETHOD .
64
+
65
+
54
66
ENDCLASS .
0 commit comments