Skip to content

Commit 5613769

Browse files
committed
C#: Add NamespaceAccess, and make namespaces declarations.
1 parent 0e62377 commit 5613769

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

csharp/ql/src/semmle/code/csharp/Namespace.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class TypeContainer extends DotNet::NamedElement, Element, @type_container { }
1818
* }
1919
* ```
2020
*/
21-
class Namespace extends DotNet::Namespace, TypeContainer, @namespace {
21+
class Namespace extends DotNet::Namespace, TypeContainer, Declaration, @namespace {
2222
/** Gets the simple name of this namespace, for example `IO` in `System.IO`. */
2323
override string getName() { namespaces(this, result) }
2424

@@ -117,6 +117,10 @@ class Namespace extends DotNet::Namespace, TypeContainer, @namespace {
117117
NamespaceDeclaration getADeclaration() { result.getNamespace() = this }
118118

119119
override Location getALocation() { result = this.getADeclaration().getALocation() }
120+
121+
override string toString() { result = DotNet::Namespace.super.toString() }
122+
123+
override predicate hasQualifiedName(string a, string b) { DotNet::Namespace.super.hasQualifiedName(a, b) }
120124
}
121125

122126
/**

csharp/ql/src/semmle/code/csharp/exprs/Access.qll

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -826,3 +826,12 @@ class ArrayRead extends ArrayAccess, AssignableRead { }
826826
* ```
827827
*/
828828
class ArrayWrite extends ArrayAccess, AssignableWrite { }
829+
830+
/**
831+
* An access to a namespace, for example `System` in `nameof(System)`.
832+
*/
833+
class NamespaceAccess extends Access, @namespace_access_expr {
834+
override Namespace getTarget() { expr_access(this, result) }
835+
836+
override string toString() { result = "access to namespace " + this.getTarget().getName() }
837+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
| Program.cs:62:17:62:35 | nameof(...) | Program.cs:62:24:62:34 | access to method MethodGroup |
22
| Program.cs:63:13:63:50 | nameof(...) | Program.cs:63:20:63:49 | access to method MethodGroup |
3+
| Program.cs:169:16:169:29 | nameof(...) | Program.cs:169:23:169:28 | access to namespace System |

0 commit comments

Comments
 (0)