Boo.Lang.Compiler.Steps.ProcessMethodBodies.CheckGeneratorYieldType C# (CSharp) Метод

CheckGeneratorYieldType() приватный Метод

private CheckGeneratorYieldType ( Boo.Lang.Compiler.TypeSystem.InternalMethod method, IType returnType ) : void
method Boo.Lang.Compiler.TypeSystem.InternalMethod
returnType IType
Результат void
        void CheckGeneratorYieldType(InternalMethod method, IType returnType)
        {
            if (!TypeSystemServices.IsGenericGeneratorReturnType(returnType))
                return;

            IType returnElementType = returnType.ConstructedInfo.GenericArguments[0];
            foreach (var yieldExpression in method.YieldExpressions)
            {
                var yieldType = yieldExpression.ExpressionType;
                if (!IsAssignableFrom(returnElementType, yieldType) &&
                    !TypeSystemServices.CanBeReachedByDownCastOrPromotion(returnElementType, yieldType))
                {
                    Error(CompilerErrorFactory.YieldTypeDoesNotMatchReturnType(
                        yieldExpression, yieldType, returnElementType));
                }
            }
        }
ProcessMethodBodies