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); }
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); }