private CallGraphContextTag GetNodeContext([NotNull] ITreeNode node, [NotNull] ICallGraphContextProvider contextProvider)
        {
            var declaredElement = CallGraphContextProviderEx.ExtractDeclaredElementForProvider(node);

            if (declaredElement == null)
            {
                return(CallGraphContextTag.NONE);
            }

            switch (myProcessKind)
            {
            case DaemonProcessKind.VISIBLE_DOCUMENT:
            {
                if (contextProvider.IsMarkedLocal(declaredElement, myGraphDataElement))
                {
                    return(contextProvider.ContextTag);
                }

                break;
            }

            case DaemonProcessKind.GLOBAL_WARNINGS:
            {
                if (contextProvider.IsMarkedGlobal(declaredElement))
                {
                    return(contextProvider.ContextTag);
                }

                break;
            }
            }

            return(CallGraphContextTag.NONE);
        }
Esempio n. 2
0
        public static bool IsMarkedSweaDependent(
            [CanBeNull] this ICallGraphContextProvider contextProvider,
            [CanBeNull] IDeclaredElement declaredElement,
            [CanBeNull] SolutionAnalysisConfiguration configuration)
        {
            if (contextProvider == null || declaredElement == null || configuration == null)
            {
                return(false);
            }

            return(UnityCallGraphUtil.IsCallGraphReady(configuration)
                ? contextProvider.IsMarkedGlobal(declaredElement)
                : contextProvider.IsMarkedLocal(declaredElement));
        }
Esempio n. 3
0
        public static bool IsMarkedStage(
            [CanBeNull] this ICallGraphContextProvider contextProvider,
            [CanBeNull] IDeclaredElement declaredElement,
            [CanBeNull] IReadOnlyCallGraphContext context)
        {
            if (contextProvider == null || declaredElement == null || context == null)
            {
                return(false);
            }

            switch (context.Kind)
            {
            case DaemonProcessKind.VISIBLE_DOCUMENT:
                return(contextProvider.IsMarkedLocal(declaredElement, context.DataElement));

            case DaemonProcessKind.GLOBAL_WARNINGS:
                return(contextProvider.IsMarkedGlobal(declaredElement));

            default:
                return(false);
            }
        }