Ejemplo n.º 1
0
        public static IEnumerable <Impurity> GetImpurities(
            SyntaxNode methodDeclaration,
            SemanticModel semanticModel,
            KnownSymbols knownSymbols,
            RecursiveState recursiveState,
            PurityType purityType = PurityType.Pure,
            Maybe <PureLambdaConfig> pureLambdaConfig = default)
        {
            var impuritiesFinder = new ImpuritiesFinder(semanticModel, purityType, knownSymbols);

            return(impuritiesFinder.GetImpurities(methodDeclaration, recursiveState, pureLambdaConfig));
        }
Ejemplo n.º 2
0
        ChangeAcceptedPurityTypeBasedOnWhetherExpressionRepresentsANewObjectOrParameterBasedExpression(
            PurityType currentAcceptedPurityType,
            ExpressionSyntax node,
            KnownSymbols knownSymbols,
            SemanticModel semanticModel,
            RecursiveState recursiveState)
        {
            if (Utils.IsNewlyCreatedObject(semanticModel, node, knownSymbols, RecursiveIsNewlyCreatedObjectState.Empty(), recursiveState))
            {
                return(PurityType.PureExceptLocally);
            }
            else if (ImpuritiesFinder.IsParameter(semanticModel, node))
            {
                return(PurityType.PureExceptReadLocally);
            }

            return(currentAcceptedPurityType);
        }