1- member.adb:5 :7: rule violation: expression may be replaced by a membership test
2- 5 | if A = 0 -- FLAG
3- | _______^
4- ||
5- || ~~~ 2 other lines ~~~
6- ||
7- 8 || or (A >= 3 and A <= 5)
8- ||___________________________^
1+ member.adb:8 :7: rule violation: expression may be replaced by a membership test
2+ 8 | if A = 0 -- FLAG
3+ | _______^
4+ ||
5+ || ~~~ 2 other lines ~~~
6+ ||
7+ 11 || or (A >= 3 and A <= 5)
8+ ||___________________________^
99
10- member.adb:13 :7: rule violation: expression may be replaced by a membership test
11- 13 | if A = 0 -- FLAG if short_circuit
10+ member.adb:16 :7: rule violation: expression may be replaced by a membership test
11+ 16 | if A = 0 -- FLAG if short_circuit
1212 | _______^
13- 14 || or else (A >= 3 and A <= 5)
13+ 17 || or else (A >= 3 and A <= 5)
1414 ||________________________________^
1515
16- member.adb:39 :12: rule violation: expression may be replaced by a membership test
17- 39 | Bool := A = B or (A >= 1 and A <= B); -- FLAG
16+ member.adb:42 :12: rule violation: expression may be replaced by a membership test
17+ 42 | Bool := A = B or (A >= 1 and A <= B); -- FLAG
1818 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1919
20- member.adb:40 :12: rule violation: expression may be replaced by a membership test
21- 40 | Bool := A >= 1 and A <= B; -- FLAG
20+ member.adb:43 :12: rule violation: expression may be replaced by a membership test
21+ 43 | Bool := A >= 1 and A <= B; -- FLAG
2222 | ^^^^^^^^^^^^^^^^^
2323
24- member.adb:41 :12: rule violation: expression may be replaced by a membership test
25- 41 | Bool := A = 100 or A in S; -- FLAG
24+ member.adb:44 :12: rule violation: expression may be replaced by a membership test
25+ 44 | Bool := A = 100 or A in S; -- FLAG
2626 | ^^^^^^^^^^^^^^^^^
2727
28- member.adb:42 :12: rule violation: expression may be replaced by a membership test
29- 42 | Bool := A = 100 or A in 1 .. B; -- FLAG
28+ member.adb:45 :12: rule violation: expression may be replaced by a membership test
29+ 45 | Bool := A = 100 or A in 1 .. B; -- FLAG
3030 | ^^^^^^^^^^^^^^^^^^^^^^
3131
3232Patched "member.adb":
@@ -35,6 +35,9 @@ Patched "member.adb":
3535procedure Member (A, B : Integer) is
3636 Bool : Boolean;
3737 subtype S is Integer range 1 .. B;
38+ type E is (X, Y, Z);
39+
40+ function Func (A, B, C : Integer) return E is (X);
3841begin
3942 if A in 0 -- FLAG
4043 |Natural
7275 Bool := A in 1 ..B; -- FLAG
7376 Bool := A in 100 |S; -- FLAG
7477 Bool := A in 100 |1 .. B; -- FLAG
78+
79+ if Func (1, 2, 3) in X or -- NOFLAG
80+ Func (3, 4, 5) in Y then
81+ null;
82+ end if;
7583end Member;
7684
0 commit comments