internal CompilationState(RoslynIntrospector introspector, HandlebarsTemplate template) { Introspector = introspector; Template = template; if (!(template is StaticHandlebarsTemplate)) { INamedTypeSymbol modelSymbol = Template.ModelFullyQualifiedName.Evaluate(Introspector); if (modelSymbol == null) Errors.Add(new HandlebarsTypeError($"Could not find Type in ModelToken '{Template.ModelFullyQualifiedName}'!", HandlebarsTypeErrorKind.UnknownViewModel, 1, 1)); ContextStack.Push(new Context("viewModel", modelSymbol)); } resultStack.Push(new List<StatementSyntax>()); }
internal virtual INamedTypeSymbol Evaluate(RoslynIntrospector introspector) { return introspector.GetTypeSymbol(MetadataName); }
internal override INamedTypeSymbol Evaluate(RoslynIntrospector introspector) { INamedTypeSymbol containingType = introspector.GetTypeSymbol($"{MetadataName}`{TypeParameters.Count}"); return containingType.Construct(TypeParameters.Select(x => x.Evaluate(introspector)).ToArray()); }
public CodeGenerationVisitor(RoslynIntrospector introspector, HandlebarsTemplate template) { state = new CompilationState(introspector, template); state.Introspector = introspector; }