Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e73ced2

Browse files
committed
C#: Add sealed modifier to classes to fix dispose-pattern, remove explicit IDisposable implementations
1 parent 397be7e commit e73ced2

13 files changed

Lines changed: 23 additions & 22 deletions

File tree

csharp/extractor/Semmle.Extraction.CIL/Context.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace Semmle.Extraction.CIL
1212
/// Adds additional context that is specific for CIL extraction.
1313
/// One context = one DLL/EXE.
1414
/// </summary>
15-
partial class Context : IDisposable
15+
sealed partial class Context : IDisposable
1616
{
1717
readonly FileStream stream;
1818
Entities.Assembly? assemblyNull;
@@ -58,7 +58,7 @@ public Context(Extraction.Context cx, string assemblyPath, bool extractPdbs)
5858
}
5959
}
6060

61-
void IDisposable.Dispose()
61+
public void Dispose()
6262
{
6363
if (pdb != null)
6464
pdb.Dispose();

csharp/extractor/Semmle.Extraction.CIL/Factories.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Semmle.Extraction.CIL
99
/// <summary>
1010
/// Provides methods for creating and caching various entities.
1111
/// </summary>
12-
public partial class Context
12+
public sealed partial class Context
1313
{
1414
readonly Dictionary<object, Label> ids = new Dictionary<object, Label>();
1515

csharp/extractor/Semmle.Extraction.CIL/PDB/MetadataPdbReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Semmle.Extraction.PDB
1313
///
1414
/// PDB information can be in a separate PDB file, or embedded in the DLL.
1515
/// </summary>
16-
class MetadataPdbReader : IPdb
16+
sealed class MetadataPdbReader : IPdb
1717
{
1818
class SourceFile : ISourceFile
1919
{

csharp/extractor/Semmle.Extraction.CIL/PDB/NativePdbReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace Semmle.Extraction.PDB
1414
/// A PDB reader using Microsoft.DiaSymReader.Native.
1515
/// This is an unmanaged Windows DLL, which therefore only works on Windows.
1616
/// </summary>
17-
class NativePdbReader : IPdb
17+
sealed class NativePdbReader : IPdb
1818
{
1919
sealed class Document : ISourceFile
2020
{

csharp/extractor/Semmle.Extraction.CSharp.Standalone/BuildAnalysis.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ interface IBuildAnalysis
4646
/// <summary>
4747
/// Main implementation of the build analysis.
4848
/// </summary>
49-
class BuildAnalysis : IBuildAnalysis, IDisposable
49+
sealed class BuildAnalysis : IBuildAnalysis, IDisposable
5050
{
5151
private readonly AssemblyCache assemblyCache;
5252
private readonly IProgressMonitor progressMonitor;

csharp/extractor/Semmle.Extraction.CSharp.Standalone/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public Extraction(string directory)
2222
/// <summary>
2323
/// Searches for source/references and creates separate extractions.
2424
/// </summary>
25-
class Analysis : IDisposable
25+
sealed class Analysis : IDisposable
2626
{
2727
public Analysis(ILogger logger, Options options)
2828
{

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Semmle.Extraction.CSharp
1515
/// <summary>
1616
/// Encapsulates a C# analysis task.
1717
/// </summary>
18-
public class Analyser : IDisposable
18+
public sealed class Analyser : IDisposable
1919
{
2020
IExtractor extractor;
2121

csharp/extractor/Semmle.Extraction.Tests/Layout.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ public void InvalidLayout()
199199
new Semmle.Extraction.Layout(null, null, "layout.txt"));
200200
}
201201

202-
class LoggerMock : ILogger
202+
sealed class LoggerMock : ILogger
203203
{
204204
public void Dispose() { }
205205

csharp/extractor/Semmle.Extraction.Tests/TrapWriter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void NestedPaths()
4242
Assert.Equal(@"C:\Temp\source_archive\diskstation\share\source\def.cs", TrapWriter.NestPaths(logger, @"C:\Temp\source_archive", $@"{root3}{root3}diskstation\share\source\def.cs").Replace('/', '\\'));
4343
}
4444

45-
class LoggerMock : ILogger
45+
sealed class LoggerMock : ILogger
4646
{
4747
public void Dispose() { }
4848

csharp/extractor/Semmle.Extraction/Context.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ void ExitScope()
283283

284284
public IDisposable StackGuard => new ScopeGuard(this);
285285

286-
private class ScopeGuard : IDisposable
286+
private sealed class ScopeGuard : IDisposable
287287
{
288288
readonly Context cx;
289289

0 commit comments

Comments
 (0)