Ejemplo n.º 1
0
        public bool Run()
        {
            InferenceStart();

            if (GenericMethod.AcceptVarArgs)
            {
                if (Arguments.Length < GenericMethod.GetParameters().Length)
                {
                    return(InferenceComplete(false));
                }
            }
            else if (Arguments.Length != GenericMethod.GetParameters().Length)
            {
                return(InferenceComplete(false));
            }

            InferExplicits();

            while (HasUnfixedTypes())
            {
                bool wasFixed = FixAll(HasNoDependencies) || FixAll(HasDependantsAndBounds);
                if (!wasFixed)
                {
                    return(InferenceComplete(false));
                }
                InferCallables();
            }
            ;

            return(InferenceComplete(true));
        }