Skip to content

Commit a6d847b

Browse files
committed
C#: Make support for FileScoped namespace declaration in the extrator.
1 parent 94c1a48 commit a6d847b

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

csharp/extractor/Semmle.Extraction.CSharp/Entities/NamespaceDeclaration.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88

99
namespace Semmle.Extraction.CSharp.Entities
1010
{
11-
internal class NamespaceDeclaration : CachedEntity<NamespaceDeclarationSyntax>
11+
internal class NamespaceDeclaration : CachedEntity<BaseNamespaceDeclarationSyntax>
1212
{
1313
private readonly NamespaceDeclaration parent;
14-
private readonly NamespaceDeclarationSyntax node;
14+
private readonly BaseNamespaceDeclarationSyntax node;
1515

16-
public NamespaceDeclaration(Context cx, NamespaceDeclarationSyntax node, NamespaceDeclaration parent)
16+
public NamespaceDeclaration(Context cx, BaseNamespaceDeclarationSyntax node, NamespaceDeclaration parent)
1717
: base(cx, node)
1818
{
1919
this.node = node;
@@ -46,17 +46,17 @@ public override void Populate(TextWriter trapFile)
4646
}
4747
}
4848

49-
public static NamespaceDeclaration Create(Context cx, NamespaceDeclarationSyntax decl, NamespaceDeclaration parent)
49+
public static NamespaceDeclaration Create(Context cx, BaseNamespaceDeclarationSyntax decl, NamespaceDeclaration parent)
5050
{
5151
var init = (decl, parent);
5252
return NamespaceDeclarationFactory.Instance.CreateEntity(cx, decl, init);
5353
}
5454

55-
private class NamespaceDeclarationFactory : CachedEntityFactory<(NamespaceDeclarationSyntax decl, NamespaceDeclaration parent), NamespaceDeclaration>
55+
private class NamespaceDeclarationFactory : CachedEntityFactory<(BaseNamespaceDeclarationSyntax decl, NamespaceDeclaration parent), NamespaceDeclaration>
5656
{
5757
public static readonly NamespaceDeclarationFactory Instance = new NamespaceDeclarationFactory();
5858

59-
public override NamespaceDeclaration Create(Context cx, (NamespaceDeclarationSyntax decl, NamespaceDeclaration parent) init) =>
59+
public override NamespaceDeclaration Create(Context cx, (BaseNamespaceDeclarationSyntax decl, NamespaceDeclaration parent) init) =>
6060
new NamespaceDeclaration(cx, init.decl, init.parent);
6161
}
6262

csharp/extractor/Semmle.Extraction.CSharp/Populators/TypeOrNamespaceVisitor.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,13 @@ public override void VisitUsingDirective(UsingDirectiveSyntax usingDirective)
1616
new UsingDirective(Cx, usingDirective, (NamespaceDeclaration)Parent);
1717
}
1818

19-
public override void VisitNamespaceDeclaration(NamespaceDeclarationSyntax node)
20-
{
19+
private void CreateNamespaceDeclaration(BaseNamespaceDeclarationSyntax node) =>
2120
NamespaceDeclaration.Create(Cx, node, (NamespaceDeclaration)Parent);
22-
}
21+
22+
public override void VisitNamespaceDeclaration(NamespaceDeclarationSyntax node) =>
23+
CreateNamespaceDeclaration(node);
24+
25+
public override void VisitFileScopedNamespaceDeclaration(FileScopedNamespaceDeclarationSyntax node) =>
26+
CreateNamespaceDeclaration(node);
2327
}
2428
}

0 commit comments

Comments
 (0)