C#: Add more conditional access tests

This commit is contained in:
Tom Hvitved
2024-04-10 13:06:19 +02:00
parent 0e67aa5baa
commit 7c43ca7001
6 changed files with 27 additions and 29 deletions

View File

@@ -0,0 +1,11 @@
memberAccess
| csharp6.cs:25:83:25:89 | access to property Length | csharp6.cs:25:79:25:81 | access to local variable bar | Conditional |
| csharp6.cs:27:77:27:83 | access to property Length | csharp6.cs:27:73:27:75 | access to local variable bar | Conditional |
| csharp6.cs:32:68:32:70 | access to indexer | csharp6.cs:32:38:32:66 | object creation of type Dictionary<Int32,String> | Conditional |
| csharp6.cs:32:68:32:73 | access to indexer | csharp6.cs:32:68:32:70 | access to indexer | Unconditional |
methodCall
| csharp6.cs:30:35:30:44 | call to method ToUpper | csharp6.cs:30:31:30:33 | access to local variable foo | Conditional |
extensionMethodCall
| csharp6.cs:29:39:29:44 | call to method Any<Char> | csharp6.cs:29:35:29:37 | access to local variable bar | Conditional |
| csharp6.cs:30:35:30:66 | call to method Select<Char,Boolean> | csharp6.cs:30:35:30:44 | call to method ToUpper | Unconditional |
| csharp6.cs:30:68:30:75 | call to method Count<Boolean> | csharp6.cs:30:35:30:66 | call to method Select<Char,Boolean> | Conditional |

View File

@@ -0,0 +1,16 @@
import csharp
query predicate memberAccess(MemberAccess ma, Expr qualifier, string conditional) {
qualifier = ma.getQualifier() and
if ma.isConditional() then conditional = "Conditional" else conditional = "Unconditional"
}
query predicate methodCall(MethodCall mc, Expr qualifier, string conditional) {
qualifier = mc.getQualifier() and
if mc.isConditional() then conditional = "Conditional" else conditional = "Unconditional"
}
query predicate extensionMethodCall(ExtensionMethodCall mc, Expr qualifier, string conditional) {
qualifier = mc.getArgument(0) and
if mc.isConditional() then conditional = "Conditional" else conditional = "Unconditional"
}

View File

@@ -1,4 +0,0 @@
| csharp6.cs:25:83:25:89 | access to property Length | csharp6.cs:25:79:25:81 | access to local variable bar | Conditional |
| csharp6.cs:27:77:27:83 | access to property Length | csharp6.cs:27:73:27:75 | access to local variable bar | Conditional |
| csharp6.cs:32:68:32:70 | access to indexer | csharp6.cs:32:38:32:66 | object creation of type Dictionary<Int32,String> | Conditional |
| csharp6.cs:32:68:32:73 | access to indexer | csharp6.cs:32:68:32:70 | access to indexer | Unconditional |

View File

@@ -1,12 +0,0 @@
/**
* @name Tests member access
*/
import csharp
from MemberAccess ma, string conditional
where
ma.isConditional() and conditional = "Conditional"
or
not ma.isConditional() and conditional = "Unconditional"
select ma, ma.getQualifier(), conditional

View File

@@ -1 +0,0 @@
| csharp6.cs:30:35:30:44 | call to method ToUpper | csharp6.cs:30:31:30:33 | access to local variable foo | Conditional |

View File

@@ -1,12 +0,0 @@
/**
* @name Tests conditional method calls
*/
import csharp
from MethodCall mc, string conditional
where
mc.isConditional() and conditional = "Conditional"
or
not mc.isConditional() and conditional = "Unconditional"
select mc, mc.getQualifier(), conditional