Esempio n. 1
0
        public static Core.Type ResolveStruct(
            Core.Session session,
            Grammar.ASTNodeName nameNode,
            IList<Core.UseDirective> useDirectives,
            bool mustBeResolved)
        {
            var name = NameResolver.Resolve(nameNode);

            var foundDecls = session.GetDeclsWithUseDirectives(name, nameNode.path.isRooted, useDirectives);
            if (!session.ValidateSingleDecl(foundDecls, name, nameNode.GetSpan()))
                return new Core.TypeError();

            if (!session.ValidateAsType(foundDecls[0], name, nameNode.GetSpan()))
                return new Core.TypeError();

            return Core.TypeStruct.Of(foundDecls[0].index);
        }