Skip to content

Commit 4805e2a

Browse files
committed
Address more review comments
1 parent 04c4e73 commit 4805e2a

File tree

2 files changed

+160
-142
lines changed

2 files changed

+160
-142
lines changed

csharp/extractor/Semmle.Extraction.CSharp.StubGenerator/StubGenerator.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,20 @@ private static void StubReference(ILogger logger, CSharpCompilation compilation,
5656
if (compilation.GetAssemblyOrModuleSymbol(reference) is not IAssemblySymbol assembly)
5757
return;
5858

59-
using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write);
60-
using var writer = new StreamWriter(fileStream, new UTF8Encoding(false));
59+
Func<StreamWriter> makeWriter = () =>
60+
{
61+
var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write);
62+
var writer = new StreamWriter(fileStream, new UTF8Encoding(false));
63+
return writer;
64+
};
65+
66+
using var visitor = new StubVisitor(assembly, makeWriter);
6167

62-
writer.WriteLine("// This file contains auto-generated code.");
63-
writer.WriteLine($"// Generated from `{assembly.Identity}`.");
68+
if (!assembly.Modules.Any(m => visitor.IsRelevantNamespace(m.GlobalNamespace)))
69+
return;
6470

65-
var visitor = new StubVisitor(assembly, writer);
71+
visitor.StubWriter.WriteLine("// This file contains auto-generated code.");
72+
visitor.StubWriter.WriteLine($"// Generated from `{assembly.Identity}`.");
6673

6774
visitor.StubAttributes(assembly.GetAttributes(), "assembly: ");
6875

0 commit comments

Comments
 (0)