public ProvidedFieldCreator()

in ReSharper.FSharp/src/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host/src/ModelCreators/ProvidedFieldCreator.cs [13:45]


    public ProvidedFieldCreator(TypeProvidersContext typeProvidersContext) =>
      myTypeProvidersContext = typeProvidersContext;

    protected override RdProvidedFieldInfo CreateRdModelInternal(ProvidedFieldInfo providedModel, int typeProviderId)
    {
      var flags = RdProvidedFieldFlags.None;
      if (providedModel.IsInitOnly) flags |= RdProvidedFieldFlags.IsInitOnly;
      if (providedModel.IsStatic) flags |= RdProvidedFieldFlags.IsStatic;
      if (providedModel.IsSpecialName) flags |= RdProvidedFieldFlags.IsSpecialName;
      if (providedModel.IsLiteral) flags |= RdProvidedFieldFlags.IsLiteral;
      if (providedModel.IsPublic) flags |= RdProvidedFieldFlags.IsPublic;
      if (providedModel.IsFamily) flags |= RdProvidedFieldFlags.IsFamily;
      if (providedModel.IsFamilyAndAssembly) flags |= RdProvidedFieldFlags.IsFamilyAndAssembly;
      if (providedModel.IsFamilyOrAssembly) flags |= RdProvidedFieldFlags.IsFamilyOrAssembly;
      if (providedModel.IsPrivate) flags |= RdProvidedFieldFlags.IsPrivate;

      var fieldTypeId =
        myTypeProvidersContext.ProvidedTypeRdModelsCreator.GetOrCreateId(providedModel.FieldType, typeProviderId);

      var declaringTypeId =
        myTypeProvidersContext.ProvidedTypeRdModelsCreator.GetOrCreateId(providedModel.DeclaringType, typeProviderId);

      var typeProvider = myTypeProvidersContext.TypeProvidersCache.Get(typeProviderId);
      var customAttributes = providedModel
        .GetCustomAttributes(typeProvider)
        .CreateRdModels(myTypeProvidersContext.ProvidedCustomAttributeRdModelsCreator, typeProviderId);

      var rawValue = myTypeProvidersContext.Logger.Catch(providedModel.GetRawConstantValue);

      return new RdProvidedFieldInfo(providedModel.Name, fieldTypeId, declaringTypeId,
        PrimitiveTypesBoxer.BoxToClientStaticArg(rawValue),
        flags, customAttributes);
    }