Пример #1
0
 public override SyntaxNode VisitRequestPage(RequestPageSyntax node)
 {
     this.CheckSourceTableProperty(node);
     return(base.VisitRequestPage(node));
 }
        private static void CollectDeclaredGlobalVariables(
            SyntaxNodeAnalysisContext syntaxNodeAnalysisContext,
            Dictionary <string, VariableDeclarationBaseSyntax> globalVariables)
        {
            // ISSUE: variable of a compiler-generated type
            ApplicationObjectSyntax   node    = (ApplicationObjectSyntax)syntaxNodeAnalysisContext.Node;
            SyntaxList <MemberSyntax> members = node.Members;
            int index1 = members.IndexOf((Func <MemberSyntax, bool>)(ms => ms.Kind == SyntaxKind.GlobalVarSection));

            if (index1 != -1)
            {
                members = node.Members;
                foreach (VariableDeclarationBaseSyntax variable in ((VarSectionBaseSyntax)members[index1]).Variables)
                {
                    VariableInitializationUsageAnalyzer.AddVariableToGlobalVarList(globalVariables, variable);
                }
            }
            if (!syntaxNodeAnalysisContext.Node.IsKind(SyntaxKind.ReportObject, SyntaxKind.XmlPortObject))
            {
                return;
            }
            switch (syntaxNodeAnalysisContext.Node.Kind)
            {
            case SyntaxKind.ReportObject:
                // ISSUE: variable of a compiler-generated type
                RequestPageSyntax requestPage = ((ReportSyntax)syntaxNodeAnalysisContext.Node).RequestPage;
                int num1;
                if (requestPage == null)
                {
                    num1 = -1;
                }
                else
                {
                    members = requestPage.Members;
                    num1    = members.IndexOf((Func <MemberSyntax, bool>)(ms => ms.Kind == SyntaxKind.GlobalVarSection));
                }
                int index2 = num1;
                if (index2 == -1)
                {
                    break;
                }
                Dictionary <string, VariableDeclarationBaseSyntax> globalVariables1 = globalVariables;
                members = ((ReportSyntax)syntaxNodeAnalysisContext.Node).RequestPage.Members;
                SyntaxList <VariableDeclarationBaseSyntax> variables1 = ((VarSectionBaseSyntax)members[index2]).Variables;
                VariableInitializationUsageAnalyzer.AddVariablesToGlobalVarList(globalVariables1, variables1);
                break;

            case SyntaxKind.XmlPortObject:
                // ISSUE: variable of a compiler-generated type
                RequestPageSyntax xmlPortRequestPage = ((XmlPortSyntax)syntaxNodeAnalysisContext.Node).XmlPortRequestPage;
                int num2;
                if (xmlPortRequestPage == null)
                {
                    num2 = -1;
                }
                else
                {
                    members = xmlPortRequestPage.Members;
                    num2    = members.IndexOf((Func <MemberSyntax, bool>)(ms => ms.Kind == SyntaxKind.GlobalVarSection));
                }
                int index3 = num2;
                if (index3 == -1)
                {
                    break;
                }
                Dictionary <string, VariableDeclarationBaseSyntax> globalVariables2 = globalVariables;
                members = ((XmlPortSyntax)syntaxNodeAnalysisContext.Node).XmlPortRequestPage.Members;
                SyntaxList <VariableDeclarationBaseSyntax> variables2 = ((VarSectionBaseSyntax)members[index3]).Variables;
                VariableInitializationUsageAnalyzer.AddVariablesToGlobalVarList(globalVariables2, variables2);
                break;
            }
        }