Exemplo n.º 1
0
        private Arity CalculateArity()
        {
            var min = ArgumentKinds.Count(a => a == ArgumentKind.Simple);

            if (ArgumentKinds.Any(a => a == ArgumentKind.Key || a == ArgumentKind.KeyRest))
            {
                min++;
            }
            var max = ArgumentKinds.Any(a => a == ArgumentKind.Rest) ? int.MaxValue : min;

            return(new Arity(min, max));
        }