File tree Expand file tree Collapse file tree 2 files changed +172
-0
lines changed
csharp/ql/test/query-tests/API Abuse
ClassDoesNotImplementEquals Expand file tree Collapse file tree 2 files changed +172
-0
lines changed Original file line number Diff line number Diff line change 1+ using System ;
2+
3+ #nullable enable
4+
5+ namespace Test
6+ {
7+ class TestClass1 : IEquatable < TestClass1 >
8+ {
9+ private int field1 ;
10+
11+ public bool Equals ( TestClass1 ? param1 )
12+ {
13+ return param1 != null && field1 == param1 . field1 ;
14+ }
15+
16+ public override bool Equals ( object ? param2 )
17+ {
18+ return param2 is TestClass1 tc && Equals ( tc ) ;
19+ }
20+
21+ public override int GetHashCode ( )
22+ {
23+ return field1 ;
24+ }
25+ }
26+
27+ class TestClass2 : IEquatable < TestClass2 >
28+ {
29+ private int field1 ;
30+
31+ public bool Equals ( TestClass2 param1 )
32+ {
33+ return param1 != null && field1 == param1 . field1 ;
34+ }
35+
36+ public override bool Equals ( object ? param2 )
37+ {
38+ return param2 is TestClass2 tc && Equals ( tc ) ;
39+ }
40+
41+ public override int GetHashCode ( )
42+ {
43+ return field1 ;
44+ }
45+ }
46+
47+ class TestClass3 : IEquatable < TestClass3 >
48+ {
49+ private int field1 ;
50+
51+ public bool Equals ( TestClass3 ? param1 )
52+ {
53+ return param1 != null && field1 == param1 . field1 ;
54+ }
55+
56+ public override bool Equals ( object param2 )
57+ {
58+ return param2 is TestClass3 tc && Equals ( tc ) ;
59+ }
60+
61+ public override int GetHashCode ( )
62+ {
63+ return field1 ;
64+ }
65+ }
66+
67+ class TestClass4 : IEquatable < TestClass4 >
68+ {
69+ private int field1 ;
70+
71+ public bool Equals ( TestClass4 param1 )
72+ {
73+ return param1 != null && field1 == param1 . field1 ;
74+ }
75+
76+ public override bool Equals ( object param2 )
77+ {
78+ return param2 is TestClass4 tc && Equals ( tc ) ;
79+ }
80+
81+ public override int GetHashCode ( )
82+ {
83+ return field1 ;
84+ }
85+ }
86+ }
Original file line number Diff line number Diff line change 1+ using System ;
2+
3+ #nullable enable
4+
5+ namespace Test
6+ {
7+ class TestClass1 : IEquatable < TestClass1 >
8+ {
9+ private int field1 ;
10+
11+ public bool Equals ( TestClass1 ? param1 )
12+ {
13+ return param1 != null && field1 == param1 . field1 ;
14+ }
15+
16+ public override bool Equals ( object ? param2 )
17+ {
18+ return param2 is TestClass1 tc && Equals ( tc ) ;
19+ }
20+
21+ public override int GetHashCode ( )
22+ {
23+ return field1 ;
24+ }
25+ }
26+
27+ class TestClass2 : IEquatable < TestClass2 >
28+ {
29+ private int field1 ;
30+
31+ public bool Equals ( TestClass2 param1 )
32+ {
33+ return param1 != null && field1 == param1 . field1 ;
34+ }
35+
36+ public override bool Equals ( object ? param2 )
37+ {
38+ return param2 is TestClass2 tc && Equals ( tc ) ;
39+ }
40+
41+ public override int GetHashCode ( )
42+ {
43+ return field1 ;
44+ }
45+ }
46+
47+ class TestClass3 : IEquatable < TestClass3 >
48+ {
49+ private int field1 ;
50+
51+ public bool Equals ( TestClass3 ? param1 )
52+ {
53+ return param1 != null && field1 == param1 . field1 ;
54+ }
55+
56+ public override bool Equals ( object param2 )
57+ {
58+ return param2 is TestClass3 tc && Equals ( tc ) ;
59+ }
60+
61+ public override int GetHashCode ( )
62+ {
63+ return field1 ;
64+ }
65+ }
66+
67+ class TestClass4 : IEquatable < TestClass4 >
68+ {
69+ private int field1 ;
70+
71+ public bool Equals ( TestClass4 param1 )
72+ {
73+ return param1 != null && field1 == param1 . field1 ;
74+ }
75+
76+ public override bool Equals ( object param2 )
77+ {
78+ return param2 is TestClass4 tc && Equals ( tc ) ;
79+ }
80+
81+ public override int GetHashCode ( )
82+ {
83+ return field1 ;
84+ }
85+ }
86+ }
You can’t perform that action at this time.
0 commit comments