private static HotMethodAnalyzerContext GetHotMethodAnalyzerContext(IHighlightingConsumer consumer, HashSet <IMethodDeclaration> hotRootMethods,
                                                                            IPsiSourceFile sourceFile)
        {
            // sharing context for each hot root.
            var context = new HotMethodAnalyzerContext();

            foreach (var methodDeclaration in hotRootMethods)
            {
                var declaredElement = methodDeclaration.DeclaredElement.NotNull("declaredElement != null");
                context.CurrentDeclaredElement = declaredElement;

                var visitor = new HotMethodAnalyzer(sourceFile, consumer, ourMaxAnalysisDepth);
                methodDeclaration.ProcessDescendants(visitor, context);
            }

            return(context);
        }
Beispiel #2
0
        private HotMethodAnalyzerContext GetHotMethodAnalyzerContext(IHighlightingConsumer consumer, HashSet <IDeclaration> hotRootMethods,
                                                                     IPsiSourceFile sourceFile)
        {
            // sharing context for each hot root.
            var context = new HotMethodAnalyzerContext();

            foreach (var declaration in hotRootMethods)
            {
                var declaredElement = declaration.DeclaredElement;
                if (declaredElement == null)
                {
                    continue;
                }

                context.CurrentDeclaredElement = declaredElement;
                context.CurrentDeclaration     = declaration;

                var visitor = new HotMethodAnalyzer(sourceFile, consumer, myCheckForInterrupt, ourMaxAnalysisDepth);
                declaration.ProcessThisAndDescendants(visitor, context);
            }

            return(context);
        }