Пример #1
0
        public override IType check(Context context)
        {
            MethodFinder       finder      = new MethodFinder(context, this);
            IMethodDeclaration declaration = finder.findBest(false);

            if (declaration == null)
            {
                return(VoidType.Instance);
            }
            if (declaration.isAbstract())
            {
                checkAbstractOnly(context, declaration);
                return(declaration.getReturnType() != null?declaration.getReturnType() : VoidType.Instance);
            }
            else
            {
                Context local = IsLocalClosure(context) ? context : selector.newLocalCheckContext(context, declaration);
                return(checkDeclaration(declaration, context, local));
            }
        }