mirror of
https://github.com/github/codeql.git
synced 2026-05-03 12:45:27 +02:00
C#: Remove ITrapBuilder in favour of TextWriter.
This commit is contained in:
@@ -65,14 +65,15 @@ namespace Semmle.Extraction.Entities
|
||||
return AssemblyConstructorFactory.Instance.CreateEntity(cx, null);
|
||||
}
|
||||
|
||||
public override IId Id
|
||||
public override void WriteId(System.IO.TextWriter trapFile)
|
||||
{
|
||||
get
|
||||
trapFile.Write(assembly.ToString());
|
||||
if (assemblyPath is null)
|
||||
{
|
||||
return assemblyPath == null
|
||||
? new Key(assembly, ";assembly")
|
||||
: new Key(assembly, "#file:///", assemblyPath.Replace("\\", "/"), ";assembly");
|
||||
trapFile.Write("#file:///");
|
||||
trapFile.Write(assemblyPath.Replace("\\", "/"));
|
||||
}
|
||||
trapFile.Write(";assembly");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,13 +63,14 @@ namespace Semmle.Extraction.Entities
|
||||
}
|
||||
}
|
||||
|
||||
public override IId Id
|
||||
public override void WriteId(System.IO.TextWriter trapFile)
|
||||
{
|
||||
get
|
||||
if (Path is null)
|
||||
trapFile.Write("GENERATED;sourcefile");
|
||||
else
|
||||
{
|
||||
return Path == null ?
|
||||
new Key("GENERATED;sourcefile") :
|
||||
new Key(DatabasePath, ";sourcefile");
|
||||
trapFile.Write(DatabasePath);
|
||||
trapFile.Write(";sourcefile");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +105,10 @@ namespace Semmle.Extraction.Entities
|
||||
Context.TrapWriter.files(this, "", "", "");
|
||||
}
|
||||
|
||||
public override IId Id => new Key("GENERATED;sourcefile");
|
||||
public override void WriteId(TextWriter trapFile)
|
||||
{
|
||||
trapFile.Write("GENERATED;sourcefile");
|
||||
}
|
||||
|
||||
public static GeneratedFile Create(Context cx) =>
|
||||
GeneratedFileFactory.Instance.CreateEntity(cx, null);
|
||||
|
||||
@@ -36,7 +36,11 @@ namespace Semmle.Extraction.Entities
|
||||
|
||||
public override bool NeedsPopulation => true;
|
||||
|
||||
public override IId Id => new Key(DatabasePath, ";folder");
|
||||
public override void WriteId(System.IO.TextWriter trapFile)
|
||||
{
|
||||
trapFile.Write(DatabasePath);
|
||||
trapFile.Write(";folder");
|
||||
}
|
||||
|
||||
public static Folder Create(Context cx, DirectoryInfo folder) =>
|
||||
FolderFactory.Instance.CreateEntity2(cx, folder);
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
using System.IO;
|
||||
|
||||
namespace Semmle.Extraction.Entities
|
||||
{
|
||||
public class GeneratedLocation : SourceLocation
|
||||
@@ -15,7 +17,12 @@ namespace Semmle.Extraction.Entities
|
||||
Context.TrapWriter.locations_default(this, GeneratedFile, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
public override IId Id => new Key("loc,", GeneratedFile, ",0,0,0,0");
|
||||
public override void WriteId(TextWriter trapFile)
|
||||
{
|
||||
trapFile.Write("loc,");
|
||||
trapFile.WriteSubId(GeneratedFile);
|
||||
trapFile.Write(",0,0,0,0");
|
||||
}
|
||||
|
||||
public override int GetHashCode() => 98732567;
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.IO;
|
||||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace Semmle.Extraction.Entities
|
||||
@@ -31,15 +32,20 @@ namespace Semmle.Extraction.Entities
|
||||
private set;
|
||||
}
|
||||
|
||||
public override IId Id
|
||||
public override void WriteId(System.IO.TextWriter trapFile)
|
||||
{
|
||||
get
|
||||
{
|
||||
FileLinePositionSpan l = symbol.GetLineSpan();
|
||||
FileEntity = Entities.File.Create(Context, l.Path);
|
||||
return new Key("loc,", FileEntity, ",", l.Span.Start.Line + 1, ",",
|
||||
l.Span.Start.Character + 1, ",", l.Span.End.Line + 1, ",", l.Span.End.Character);
|
||||
}
|
||||
FileLinePositionSpan l = symbol.GetLineSpan();
|
||||
FileEntity = Entities.File.Create(Context, l.Path);
|
||||
trapFile.Write("loc,");
|
||||
trapFile.WriteSubId(FileEntity);
|
||||
trapFile.Write(',');
|
||||
trapFile.Write(l.Span.Start.Line + 1);
|
||||
trapFile.Write(',');
|
||||
trapFile.Write(l.Span.Start.Character + 1);
|
||||
trapFile.Write(',');
|
||||
trapFile.Write(l.Span.End.Line + 1);
|
||||
trapFile.Write(',');
|
||||
trapFile.Write(l.Span.End.Character);
|
||||
}
|
||||
|
||||
class SourceLocationFactory : ICachedEntityFactory<Microsoft.CodeAnalysis.Location, SourceLocation>
|
||||
|
||||
Reference in New Issue
Block a user