Skip to content

Commit a549f49

Browse files
committed
C#: Add nameof virtual method in constructor test case.
1 parent 2eb0158 commit a549f49

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

csharp/ql/test/query-tests/Bad Practices/VirtualCallInConstructorOrDestructor/VirtualCallInConstructorOrDestructor.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
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 |

0 commit comments

Comments
 (0)