Ejemplo n.º 1
0
        public void ResolveFunctBodies()
        {
            foreach (var binding in this.functWorkData)
            {
                session.PushContext(
                    "in funct '" + binding.name.GetString() + "'",
                    binding.declNode.GetSpan());

                var funct = session.GetFunct(binding.declIndex);

                var foundErrors = FunctBodyResolver.Resolve(
                    this.session, funct, binding.useDirectives, binding.declNode.bodyExpression);

                if (!foundErrors)
                {
                    FunctTypeInferencer.DoInference(this.session, funct);
                }

                if (!foundErrors)
                {
                    foundErrors = FunctTypeChecker.Check(this.session, funct);
                }

                if (!foundErrors)
                {
                    foundErrors = FunctInitChecker.Check(this.session, funct);
                }

                session.PopContext();
            }
        }
Ejemplo n.º 2
0
        public static bool Check(Core.Session session, Core.DeclFunct funct)
        {
            var checker = new FunctTypeChecker(session, funct);

            checker.Check();
            return(checker.foundErrors);
        }
Ejemplo n.º 3
0
 public static bool Check(Core.Session session, Core.DeclFunct funct)
 {
     var checker = new FunctTypeChecker(session, funct);
     checker.Check();
     return checker.foundErrors;
 }