mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
C#: Extract source files generated by source generators
This commit is contained in:
@@ -381,8 +381,17 @@ namespace Semmle.Extraction.CSharp
|
|||||||
references => ResolveReferences(compilerArguments, analyser, canonicalPathCache, references),
|
references => ResolveReferences(compilerArguments, analyser, canonicalPathCache, references),
|
||||||
(analyser, syntaxTrees) =>
|
(analyser, syntaxTrees) =>
|
||||||
{
|
{
|
||||||
|
var paths = compilerArguments.SourceFiles
|
||||||
|
.Select(src => src.Path)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
if (compilerArguments.GeneratedFilesOutputDirectory is not null)
|
||||||
|
{
|
||||||
|
paths.AddRange(Directory.GetFiles(compilerArguments.GeneratedFilesOutputDirectory, "*.cs", SearchOption.AllDirectories));
|
||||||
|
}
|
||||||
|
|
||||||
return ReadSyntaxTrees(
|
return ReadSyntaxTrees(
|
||||||
compilerArguments.SourceFiles.Select(src => canonicalPathCache.GetCanonicalPath(src.Path)),
|
paths.Select(canonicalPathCache.GetCanonicalPath),
|
||||||
analyser,
|
analyser,
|
||||||
compilerArguments.ParseOptions,
|
compilerArguments.ParseOptions,
|
||||||
compilerArguments.Encoding,
|
compilerArguments.Encoding,
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ function RegisterExtractorPack(id)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if match then
|
if match then
|
||||||
local injections = { '-p:UseSharedCompilation=false' }
|
local injections = { '-p:UseSharedCompilation=false', '-p:EmitCompilerGeneratedFiles=true' }
|
||||||
if dotnetRunNeedsSeparator then
|
if dotnetRunNeedsSeparator then
|
||||||
table.insert(injections, '--')
|
table.insert(injections, '--')
|
||||||
end
|
end
|
||||||
@@ -118,7 +118,8 @@ function RegisterExtractorPack(id)
|
|||||||
compilerArguments,
|
compilerArguments,
|
||||||
nil, {
|
nil, {
|
||||||
'/p:UseSharedCompilation=false',
|
'/p:UseSharedCompilation=false',
|
||||||
'/p:MvcBuildViews=true'
|
'/p:MvcBuildViews=true',
|
||||||
|
'/p:EmitCompilerGeneratedFiles=true',
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -154,7 +155,7 @@ function RegisterExtractorPack(id)
|
|||||||
|
|
||||||
if seenCompilerCall then
|
if seenCompilerCall then
|
||||||
return {
|
return {
|
||||||
order = ORDER_BEFORE,
|
order = ORDER_AFTER,
|
||||||
invocation = {
|
invocation = {
|
||||||
path = AbsolutifyExtractorPath(id, extractor),
|
path = AbsolutifyExtractorPath(id, extractor),
|
||||||
arguments = {
|
arguments = {
|
||||||
@@ -194,7 +195,7 @@ function RegisterExtractorPack(id)
|
|||||||
|
|
||||||
if seenCompilerCall then
|
if seenCompilerCall then
|
||||||
return {
|
return {
|
||||||
order = ORDER_BEFORE,
|
order = ORDER_AFTER,
|
||||||
invocation = {
|
invocation = {
|
||||||
path = AbsolutifyExtractorPath(id, extractor),
|
path = AbsolutifyExtractorPath(id, extractor),
|
||||||
arguments = {
|
arguments = {
|
||||||
|
|||||||
Reference in New Issue
Block a user