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