File tree Expand file tree Collapse file tree
csharp/ql/test/query-tests/Bad Practices/VirtualCallInConstructorOrDestructor Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ public void f_nonvirtual() { }
1515 public void f_interface ( ) { }
1616
1717 public virtual int p_virtual { get { return 0 ; } }
18+ public virtual string p_virtual_string { get { return "" ; } }
1819 public virtual int p_sealed { get { return 0 ; } }
1920 public int p_nonvirtual { get { return 0 ; } }
2021
@@ -55,11 +56,14 @@ class C : B
5556 a = f_sealed ; // GOOD
5657 a = f_nonvirtual ; // GOOD
5758 a = f_interface ; // GOOD
59+ var f_name = nameof ( f_virtual ) ; // GOOD
5860
5961 // Property access
6062 int i = p_virtual ; // $ Alert // BAD
6163 i = p_sealed ; // GOOD
6264 i = p_nonvirtual ; // GOOD
65+ var p_name = nameof ( p_virtual_string ) ; // GOOD
66+ var p_length_name = nameof ( p_virtual_string . Length ) ; // GOOD
6367
6468 // Indexer access
6569 i = this [ 0 ] ; // $ Alert // BAD
Original file line number Diff line number Diff line change 1- | VirtualCallInConstructorOrDestructor.cs:45:13:45:23 | call to method f_virtual | Avoid virtual calls in a constructor or destructor. |
2- | VirtualCallInConstructorOrDestructor.cs:54:17:54:25 | access to method f_virtual | Avoid virtual calls in a constructor or destructor. |
3- | VirtualCallInConstructorOrDestructor.cs:60:21:60:29 | access to property p_virtual | Avoid virtual calls in a constructor or destructor. |
4- | VirtualCallInConstructorOrDestructor.cs:65:17:65:23 | access to indexer | Avoid virtual calls in a constructor or destructor. |
5- | VirtualCallInConstructorOrDestructor.cs:70:13:70:21 | access to event e_virtual | Avoid virtual calls in a constructor or destructor. |
1+ #select
2+ | VirtualCallInConstructorOrDestructor.cs:46:13:46:23 | call to method f_virtual | Avoid virtual calls in a constructor or destructor. |
3+ | VirtualCallInConstructorOrDestructor.cs:55:17:55:25 | access to method f_virtual | Avoid virtual calls in a constructor or destructor. |
4+ | VirtualCallInConstructorOrDestructor.cs:59:33:59:41 | access to method f_virtual | Avoid virtual calls in a constructor or destructor. |
5+ | VirtualCallInConstructorOrDestructor.cs:62:21:62:29 | access to property p_virtual | Avoid virtual calls in a constructor or destructor. |
6+ | VirtualCallInConstructorOrDestructor.cs:65:33:65:48 | access to property p_virtual_string | Avoid virtual calls in a constructor or destructor. |
7+ | VirtualCallInConstructorOrDestructor.cs:66:40:66:55 | access to property p_virtual_string | Avoid virtual calls in a constructor or destructor. |
8+ | VirtualCallInConstructorOrDestructor.cs:69:17:69:23 | access to indexer | Avoid virtual calls in a constructor or destructor. |
9+ | VirtualCallInConstructorOrDestructor.cs:74:13:74:21 | access to event e_virtual | Avoid virtual calls in a constructor or destructor. |
10+ testFailures
11+ | VirtualCallInConstructorOrDestructor.cs:59:33:59:41 | Avoid virtual calls in a constructor or destructor. | Unexpected result: Alert |
12+ | VirtualCallInConstructorOrDestructor.cs:65:33:65:48 | Avoid virtual calls in a constructor or destructor. | Unexpected result: Alert |
13+ | VirtualCallInConstructorOrDestructor.cs:66:40:66:55 | Avoid virtual calls in a constructor or destructor. | Unexpected result: Alert |
You can’t perform that action at this time.
0 commit comments