コード例 #1
0
        public override void OnAliasDefinition(AliasDefinition node)
        {
            //Checking if the alias definition name is unique
            var sameNameAliasDef = _context.NamespaceResolver.ModuleMembersNsInfo.FindAll(n => (n.ModuleMember is DOM.AliasDefinition && ((DOM.AliasDefinition)n.ModuleMember).Name == node.Name));

            if (sameNameAliasDef.Count > 1)
            {
                if (sameNameAliasDef.Count == 2)
                {
                    //Reporting error for 2 documents (existing and new)
                    var prevAliasDef = (DOM.AliasDefinition)sameNameAliasDef[0].ModuleMember;
                    _context.AddError(CompilerErrorFactory.DuplicateAliasDefName(prevAliasDef, prevAliasDef.Module.FileName));
                }
                _context.AddError(CompilerErrorFactory.DuplicateAliasDefName(node, _currentModule.FileName));
            }
            base.OnAliasDefinition(node);
        }
コード例 #2
0
        private void CheckAliasDefNameUniqueness(DOM.AliasDefinition aliasDefinition)
        {
            var sameNameAliasDef =
                _namespaceResolver.ModuleMembersNsInfo.FindAll(
                    n =>
                    (n.ModuleMember is DOM.AliasDefinition &&
                     ((DOM.AliasDefinition)n.ModuleMember).Name == aliasDefinition.Name));

            if (sameNameAliasDef.Count > 1)
            {
                if (sameNameAliasDef.Count == 2)
                {
                    //Reporting error for 2 documents (existing and new)
                    var prevAliasDef = (DOM.AliasDefinition)sameNameAliasDef[0].ModuleMember;
                    Context.AddError(CompilerErrorFactory.DuplicateAliasDefName((AliasDefinition)prevAliasDef,
                                                                                prevAliasDef.Module.FileName));
                }
                Context.AddError(CompilerErrorFactory.DuplicateAliasDefName((AliasDefinition)aliasDefinition,
                                                                            _currentModule.FileName));
            }
        }