/// <summary>Gets the restricted calls and recursion from a lambda invocation.</summary>
        public static void LambdaInvokeApply(ParseInfo parseInfo, ILambdaApplier source, DocRange callRange)
        {
            if (!source.ResolvedSource) return;

            parseInfo.CurrentCallInfo?.Call(source.RecursiveCallHandler, callRange);

            // Add restricted calls.
            foreach (RestrictedCall call in source.CallInfo.RestrictedCalls)
                parseInfo.RestrictedCallHandler.RestrictedCall(new RestrictedCall(
                    call.CallType,
                    parseInfo.GetLocation(callRange),
                    RestrictedCall.Message_LambdaInvoke(source.GetLabel(false), call.CallType)
                ));
        }
예제 #2
0
        /// <summary>Gets the restricted calls and recursion from a lambda invocation.</summary>
        public static void LambdaInvokeApply(ParseInfo parseInfo, ILambdaApplier source, DocRange callRange)
        {
            if (!source.ResolvedSource)
            {
                return;
            }

            if (source.RecursiveCallHandler != null)
            {
                parseInfo.CurrentCallInfo.Call(source.RecursiveCallHandler, callRange);
            }

            // Add restricted calls.
            foreach (var callType in source.GetRestrictedCallTypes())
            {
                parseInfo.RestrictedCallHandler.AddRestrictedCall(new RestrictedCall(
                                                                      callType,
                                                                      parseInfo.GetLocation(callRange),
                                                                      RestrictedCall.Message_LambdaInvoke(source.GetLabel(parseInfo.TranslateInfo, LabelInfo.RecursionError), callType)
                                                                      ));
            }
        }