Esempio n. 1
0
        private bool PropertySetterSupportRequires(out string parameterName, out IClrTypeName parameterType,
                                                   out ReadOnlyCollection <ICSharpFunctionDeclaration> functionsToInsertPrecondition)
        {
            parameterName = null;
            parameterType = null;
            functionsToInsertPrecondition = null;

            var propertySetterAvailability = new PropertySetterRequiresAvailability(_provider);

            if (!propertySetterAvailability.IsAvailable)
            {
                return(false);
            }

            parameterName = propertySetterAvailability.ParameterName;
            parameterType = propertySetterAvailability.PropertyType;

            var func = new FunctionRequiresAvailability(_provider, parameterName,
                                                        propertySetterAvailability.GetSelectedFunctions());

            if (func.IsAvailable)
            {
                functionsToInsertPrecondition = func.FunctionsToInsertPrecondition;
                return(true);
            }

            return(false);
        }
        private bool IsRequiresAvailableFor(out string parameterName, out IClrTypeName parameterType)
        {
            parameterName = null;
            parameterType = null;

            var parameterRequiresAvailability = ParameterRequiresAvailability.Create(_provider);

            if (parameterRequiresAvailability.IsAvailable)
            {
                parameterName = parameterRequiresAvailability.ParameterName;
                parameterType = parameterRequiresAvailability.ParameterType;
                return(true);
            }

            var propertySetterRequiresAvailability = new PropertySetterRequiresAvailability(_provider);

            if (propertySetterRequiresAvailability.IsAvailable)
            {
                parameterName = "value";
                parameterType = propertySetterRequiresAvailability.PropertyType;
                return(true);
            }

            return(false);
        }