public ProvidedConstructorCreator()

in ReSharper.FSharp/src/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host/src/ModelCreators/ProvidedConstructorCreator.cs [11:41]


    public ProvidedConstructorCreator(TypeProvidersContext typeProvidersContext) :
      base(typeProvidersContext.ProvidedConstructorsCache) =>
      myTypeProvidersContext = typeProvidersContext;

    protected override RdProvidedConstructorInfo CreateRdModelInternal(ProvidedConstructorInfo providedModel,
      int entityId, int typeProviderId)
    {
      var flags = RdProvidedMethodFlags.None;
      if (providedModel.IsGenericMethod) flags |= RdProvidedMethodFlags.IsGenericMethod;
      if (providedModel.IsStatic) flags |= RdProvidedMethodFlags.IsStatic;
      if (providedModel.IsFamily) flags |= RdProvidedMethodFlags.IsFamily;
      if (providedModel.IsFamilyAndAssembly) flags |= RdProvidedMethodFlags.IsFamilyAndAssembly;
      if (providedModel.IsFamilyOrAssembly) flags |= RdProvidedMethodFlags.IsFamilyOrAssembly;
      if (providedModel.IsVirtual) flags |= RdProvidedMethodFlags.IsVirtual;
      if (providedModel.IsFinal) flags |= RdProvidedMethodFlags.IsFinal;
      if (providedModel.IsPublic) flags |= RdProvidedMethodFlags.IsPublic;
      if (providedModel.IsAbstract) flags |= RdProvidedMethodFlags.IsAbstract;
      if (providedModel.IsHideBySig) flags |= RdProvidedMethodFlags.IsHideBySig;
      if (providedModel.IsConstructor) flags |= RdProvidedMethodFlags.IsConstructor;

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

      var genericArgs = providedModel.IsGenericMethod
        ? providedModel
          .GetGenericArguments()
          .CreateIds(myTypeProvidersContext.ProvidedTypeRdModelsCreator, typeProviderId)
        : null;

      return new RdProvidedConstructorInfo(declaringTypeId, flags, genericArgs, providedModel.Name, entityId);
    }