Skip to content

Commit d8a806a

Browse files
committed
C#: Refactor and regenerate stubs
1 parent f07d02b commit d8a806a

File tree

63 files changed

+147
-163
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+147
-163
lines changed

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

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
using System;
21
using System.Collections.Concurrent;
32
using System.Collections.Generic;
43
using System.IO;
54
using System.Linq;
65
using System.Text;
76
using System.Threading.Tasks;
7+
88
using Microsoft.CodeAnalysis;
99
using Microsoft.CodeAnalysis.CSharp;
10+
1011
using Semmle.Util;
1112
using Semmle.Util.Logging;
1213

@@ -56,20 +57,18 @@ private static void StubReference(ILogger logger, CSharpCompilation compilation,
5657
if (compilation.GetAssemblyOrModuleSymbol(reference) is not IAssemblySymbol assembly)
5758
return;
5859

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);
60+
var relevantSymbol = new RelevantSymbol(assembly);
6761

68-
if (!assembly.Modules.Any(m => visitor.IsRelevantNamespace(m.GlobalNamespace)))
62+
if (!assembly.Modules.Any(m => relevantSymbol.IsRelevantNamespace(m.GlobalNamespace)))
6963
return;
7064

71-
visitor.StubWriter.WriteLine("// This file contains auto-generated code.");
72-
visitor.StubWriter.WriteLine($"// Generated from `{assembly.Identity}`.");
65+
using var fileStream = new FileStream(FileUtils.NestPaths(logger, outputPath, path.Replace(".dll", ".cs")), FileMode.Create, FileAccess.Write);
66+
using var writer = new StreamWriter(fileStream, new UTF8Encoding(false));
67+
68+
var visitor = new StubVisitor(writer, relevantSymbol);
69+
70+
writer.WriteLine("// This file contains auto-generated code.");
71+
writer.WriteLine($"// Generated from `{assembly.Identity}`.");
7372

7473
visitor.StubAttributes(assembly.GetAttributes(), "assembly: ");
7574

0 commit comments

Comments
 (0)