Skip to content

Commit 81adf52

Browse files
committed
C#: Use * ID for Locations in buildless.
1 parent 97d6295 commit 81adf52

File tree

4 files changed

+40
-7
lines changed

4 files changed

+40
-7
lines changed

csharp/extractor/Semmle.Extraction.CSharp/Entities/Assembly.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,14 @@ public static Assembly CreateOutputAssembly(Context cx)
7272

7373
public override void WriteId(EscapingTextWriter trapFile)
7474
{
75-
if (isOutputAssembly && Context.ExtractionContext.IsStandalone)
75+
if (Context.ExtractionContext.IsStandalone)
7676
{
77-
trapFile.Write("buildlessOutputAssembly");
78-
}
79-
else
80-
{
81-
trapFile.Write(assembly.ToString());
77+
WriteStarId(trapFile);
78+
return;
8279
}
8380

81+
trapFile.Write(assembly.ToString());
82+
8483
if (assemblyPath is not null)
8584
{
8685
trapFile.Write("#file:///");

csharp/extractor/Semmle.Extraction.CSharp/Entities/Locations/GeneratedLocation.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ public override void Populate(TextWriter trapFile)
1919

2020
public override void WriteId(EscapingTextWriter trapFile)
2121
{
22+
if (Context.ExtractionContext.IsStandalone)
23+
{
24+
WriteStarId(trapFile);
25+
return;
26+
}
27+
2228
trapFile.Write("loc,");
2329
trapFile.WriteSubId(generatedFile);
2430
trapFile.Write(",0,0,0,0");

csharp/extractor/Semmle.Extraction.CSharp/Entities/Locations/Location.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,29 @@ public abstract class Location : CachedEntity<Microsoft.CodeAnalysis.Location?>
55
{
66
#nullable restore warnings
77
protected Location(Context cx, Microsoft.CodeAnalysis.Location? init)
8-
: base(cx, init) { }
8+
: base(cx, init)
9+
{
10+
if (cx.ExtractionContext.IsStandalone)
11+
{
12+
cx.AddFreshLabel(this);
13+
}
14+
}
15+
16+
protected static void WriteStarId(EscapingTextWriter writer)
17+
{
18+
writer.Write('*');
19+
}
20+
21+
public sealed override void WriteQuotedId(EscapingTextWriter writer)
22+
{
23+
if (Context.ExtractionContext.IsStandalone)
24+
{
25+
WriteStarId(writer);
26+
return;
27+
}
28+
29+
base.WriteQuotedId(writer);
30+
}
931

1032
public override Microsoft.CodeAnalysis.Location? ReportingLocation => Symbol;
1133

csharp/extractor/Semmle.Extraction.CSharp/Entities/Locations/NonGeneratedSourceLocation.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ public File FileEntity
4242

4343
public override void WriteId(EscapingTextWriter trapFile)
4444
{
45+
if (Context.ExtractionContext.IsStandalone)
46+
{
47+
WriteStarId(trapFile);
48+
return;
49+
}
50+
4551
trapFile.Write("loc,");
4652
trapFile.WriteSubId(FileEntity);
4753
trapFile.Write(',');

0 commit comments

Comments
 (0)