C#: Compare CIL entities directly by handle rather than by label.

C#: Remove IDs from the CIL extractor and make consistent with C# extractor.
C#: Fix method collisions.
This commit is contained in:
Calum Grant
2019-08-13 18:50:25 +01:00
parent 685c494bcb
commit b500a02b1e
34 changed files with 878 additions and 642 deletions

View File

@@ -8,8 +8,8 @@ namespace Semmle.Extraction.CSharp.Entities
{
class Compilation : FreshEntity
{
string cwd;
string[] args;
private readonly string cwd;
private readonly string[] args;
public Compilation(Context cx, string cwd, string[] args) : base(cx)
{

View File

@@ -235,7 +235,7 @@ namespace Semmle.Extraction.CSharp.Entities
if (method.IsVararg)
{
tb.WriteSeparator(",", index++);
tb.WriteSeparator(",", index);
tb.Write("__arglist");
}

View File

@@ -43,7 +43,7 @@ namespace Semmle.Extraction.CSharp.Entities
public override void Populate(TextWriter trapFile)
{
trapFile.Emit(new Tuple("modifiers", Label, symbol.name));
trapFile.modifiers(Label, symbol.name);
}
public static string AccessbilityModifier(Accessibility access)

View File

@@ -83,9 +83,11 @@ namespace Semmle.Extraction.CSharp.Entities
ExtractMetadataHandle(trapFile);
ExtractAttributes();
var tb = new StringWriter();
symbol.BuildDisplayName(Context, tb);
trapFile.types(this, GetClassType(Context, symbol), tb.ToString());
using (var tb = new StringWriter())
{
symbol.BuildDisplayName(Context, tb);
trapFile.types(this, GetClassType(Context, symbol), tb.ToString());
}
// Visit base types
var baseTypes = new List<Type>();

View File

@@ -16,7 +16,6 @@ namespace Semmle.Extraction.CSharp.Entities
public UsingDirective(Context cx, UsingDirectiveSyntax usingDirective, NamespaceDeclaration parent)
: base(cx)
{
var trapFile = cx.TrapWriter.Writer;
Node = usingDirective;
Parent = parent;
TryPopulate();