public AddConstructorParametersCodeAction(
     Document document,
     CodeGenerationContextInfo info,
     ConstructorCandidate constructorCandidate,
     ISymbol containingType,
     ImmutableArray <IParameterSymbol> missingParameters,
     bool useSubMenuName)
 {
     _document             = document;
     _info                 = info;
     _constructorCandidate = constructorCandidate;
     _containingType       = containingType;
     _missingParameters    = missingParameters;
     _useSubMenuName       = useSubMenuName;
 }
 static AddConstructorParametersCodeAction GetOptionalContructorParametersCodeAction(Document document, CodeGenerationContextInfo info, ConstructorCandidate constructorCandidate, INamedTypeSymbol containingType, bool useSubMenuName)
 {
     var missingOptionalParameters = constructorCandidate.MissingParameters.SelectAsArray(
         p => CodeGenerationSymbolFactory.CreateParameterSymbol(
             attributes: default,
        private static AddConstructorParameterResult CreateCodeActions(Document document, CodeGenerationContextInfo info, State state)
        {
            using var _0 = ArrayBuilder <AddConstructorParametersCodeAction> .GetInstance(out var requiredParametersActions);

            using var _1 = ArrayBuilder <AddConstructorParametersCodeAction> .GetInstance(out var optionalParametersActions);

            var containingType = state.ContainingType;

            var useSubMenu = state.ConstructorCandidates.Length > 1;

            foreach (var constructorCandidate in state.ConstructorCandidates)
            {
                if (CanHaveRequiredParameters(constructorCandidate.Constructor.Parameters))
                {
                    requiredParametersActions.Add(new AddConstructorParametersCodeAction(
                                                      document,
                                                      info,
                                                      constructorCandidate,
                                                      containingType,
                                                      constructorCandidate.MissingParameters,
                                                      useSubMenuName: useSubMenu));
                }

                optionalParametersActions.Add(GetOptionalContructorParametersCodeAction(
                                                  document,
                                                  info,
                                                  constructorCandidate,
                                                  containingType,
                                                  useSubMenuName: useSubMenu));
            }

            return(new AddConstructorParameterResult(requiredParametersActions.ToImmutable(), optionalParametersActions.ToImmutable(), useSubMenu));