internal CodeGenerationUnit(CodeGenerationUnitSyntax syntax, IReadOnlyList<string> codeUsings, IReadOnlySymbolCollection<ITaskDeclarationSymbol> taskDeclarations, IReadOnlySymbolCollection<ITaskDefinitionSymbol> taskDefinitions, IReadOnlySymbolCollection<IIncludeSymbol> includes, IEnumerable<ISymbol> symbols, IReadOnlyList<Diagnostic> diagnostics) { if(syntax == null) { throw new ArgumentNullException(nameof(syntax)); } Syntax = syntax; CodeUsings = codeUsings ?? new List<string>(); TaskDeclarations = taskDeclarations ?? new SymbolCollection<ITaskDeclarationSymbol>(); TaskDefinitions = taskDefinitions ?? new SymbolCollection<ITaskDefinitionSymbol>(); Diagnostics = diagnostics ?? new List<Diagnostic>(); Includes = includes ?? new SymbolCollection<IIncludeSymbol>(); Symbols = new SymbolList(symbols ?? Enumerable.Empty<IIncludeSymbol>()); }
public static TaskDefinitionBuilderResult Build(TaskDefinitionSyntax taskDefinitionSyntax, IReadOnlySymbolCollection<TaskDeclarationSymbol> taskDeklarations) { var builder = new TaskDefinitionSymbolBuilder(taskDeklarations); builder.Visit(taskDefinitionSyntax); return new TaskDefinitionBuilderResult(builder._taskDefinition, builder._diagnostics); }
TaskDefinitionSymbolBuilder(IReadOnlySymbolCollection<TaskDeclarationSymbol> taskDeklarations) { _taskDeklarations = taskDeklarations; _diagnostics = new List<Diagnostic>(); }