C#: Construct File::TransformedPathLazy lazily

This avoids calling the path transformer for `GeneratedFile`s.
This commit is contained in:
Tom Hvitved
2020-09-14 11:00:59 +02:00
parent 4d0a1ee857
commit e549377561

View File

@@ -11,11 +11,12 @@ namespace Semmle.Extraction.Entities
: base(cx, path)
{
OriginalPath = path;
TransformedPath = Context.Extractor.PathTransformer.Transform(OriginalPath);
TransformedPathLazy = new Lazy<PathTransformer.ITransformedPath>(() => Context.Extractor.PathTransformer.Transform(OriginalPath));
}
readonly string OriginalPath;
readonly PathTransformer.ITransformedPath TransformedPath;
readonly Lazy<PathTransformer.ITransformedPath> TransformedPathLazy;
PathTransformer.ITransformedPath TransformedPath => TransformedPathLazy.Value;
public override bool NeedsPopulation => Context.DefinesFile(OriginalPath) || OriginalPath == Context.Extractor.OutputPath;