示例#1
0
        public static ReturnType ReturnedAs(ExpressionSyntax expression, ExpressionSyntax returnedExpression, ParameterSyntax parameter)
        {
            if (expression.AssignedToVariable(out var variableDeclarator))
            {
                return(returnedExpression.IsEquivalentWhenNormalized(SharedSyntaxFactory.IdentifierName(variableDeclarator))
                    ? ReturnType.VariableAssignment
                    : ReturnType.Unknown);
            }

            if (expression.AssignedToParameter(parameter))
            {
                return(returnedExpression.IsEquivalentWhenNormalized(SharedSyntaxFactory.IdentifierName(parameter))
                    ? ReturnType.ParameterAssigment
                    : ReturnType.Unknown);
            }

            return(returnedExpression.IsEquivalentWhenNormalized(expression)
                ? ReturnType.ImmediateValue
                : ReturnType.Unknown);
        }