public CodeGenerator(Compilation compilation, ILogger log) { this.compilation = compilation; this.log = log; this.wellKnownTypes = WellKnownTypes.FromCompilation(compilation); this.compilationAnalyzer = new CompilationAnalyzer(log, this.wellKnownTypes); var firstSyntaxTree = compilation.SyntaxTrees.FirstOrDefault() ?? throw new InvalidOperationException("Compilation has no syntax trees."); this.semanticModelForAccessibility = compilation.GetSemanticModel(firstSyntaxTree); this.serializerTypeAnalyzer = SerializerTypeAnalyzer.Create(this.wellKnownTypes); }
public CodeGenerator(Compilation compilation, CodeGeneratorOptions options, ILogger log) { this.compilation = compilation; this.options = options; this.log = log; this.wellKnownTypes = new WellKnownTypes(compilation); this.compilationAnalyzer = new CompilationAnalyzer(log, this.wellKnownTypes, compilation); var firstSyntaxTree = compilation.SyntaxTrees.FirstOrDefault() ?? throw new InvalidOperationException("Compilation has no syntax trees."); this.semanticModelForAccessibility = compilation.GetSemanticModel(firstSyntaxTree); this.serializerTypeAnalyzer = SerializerTypeAnalyzer.Create(this.wellKnownTypes); this.serializerGenerator = new SerializerGenerator(this.options, this.wellKnownTypes); this.grainMethodInvokerGenerator = new GrainMethodInvokerGenerator(this.options, this.wellKnownTypes); this.grainReferenceGenerator = new GrainReferenceGenerator(this.options, this.wellKnownTypes); }