private AridCheckResult GetAridCheckResult(Func <ClassDeclarationSyntax, SyntaxNode> getSyntaxNode, string methodName)
        {
            var sampleProjectAbsolutePath       = SyntaxExtension.GetSampleProjectAbsolutePath();
            var sampleClassAbsolutePath         = SampleClassRelativePath.GetSampleClassAbsoluteFilePath();
            var semanticsClassDeclarationLoader = new SemanticsClassDeclarationLoader();
            var classDeclarationWithSemantics   = semanticsClassDeclarationLoader.Load(sampleClassAbsolutePath, sampleProjectAbsolutePath,
                                                                                       nameof(AridNodesSampleClass));

            var classDeclarationSyntax = classDeclarationWithSemantics.Syntax;
            var methodDeclaration      = classDeclarationSyntax.DescendantNodes().OfType <MethodDeclarationSyntax>()
                                         .First(m => m.Identifier.Text == methodName);
            var syntaxNode   = getSyntaxNode(classDeclarationSyntax);
            var analysisRoot =
                new RoslynSyntaxNodeWithSemantics(methodDeclaration, classDeclarationWithSemantics.SemanticModel);
            var classification = Classifier.Classify(analysisRoot);
            var node           = new RoslynSyntaxNode(syntaxNode);

            return(classification.GetResult(node));
        }
示例#2
0
        public bool IsNodeArid(SyntaxNode syntaxNode)
        {
            var analyzableNode = new RoslynSyntaxNode(syntaxNode);

            return(_nodesClassification.GetResult(analyzableNode).IsArid);
        }