public NamedObjectType(string name, TypeSymbolValidationFlags validationFlags, IEnumerable <TypeProperty> properties, ITypeReference?additionalPropertiesType, TypePropertyFlags additionalPropertiesFlags = TypePropertyFlags.None, IEnumerable <FunctionOverload>?functions = null) : base(name) { this.ValidationFlags = validationFlags; this.Properties = properties.ToImmutableDictionary(property => property.Name, LanguageConstants.IdentifierComparer); this.MethodResolver = FunctionResolver.Create(functions); this.AdditionalPropertiesType = additionalPropertiesType; this.AdditionalPropertiesFlags = additionalPropertiesFlags; }
public DecoratorResolver(IEnumerable <Decorator> decorators) { this.decoratorsByOverloads = decorators.ToImmutableDictionary(decorator => decorator.Overload, decorator => decorator); this.functionResolver = FunctionResolver.Create(decoratorsByOverloads.Keys); this.functionSymbols = functionResolver.GetKnownFunctions().Values.ToImmutableHashSet(); }