public static string ToTestString(this AssignCall assignCall) { var targetCall = assignCall.Variable?.ToTestString() ?? assignCall.FieldAccess?.ToTestString() ?? throw new ArgumentOutOfRangeException(nameof(assignCall)); return($"{targetCall} := {assignCall.MethodId} [ {string.Join(" ", assignCall.Args.Select(ToTestString))} ]"); }
private string SerializeAssignCall(AssignCall assignCall) { string target; switch (assignCall.TargetCase) { case AssignCall.TargetOneofCase.Variable: target = SerializeVariable(assignCall.Variable); break; case AssignCall.TargetOneofCase.FieldAccess: target = SerializeFieldAccess(assignCall.FieldAccess); break; default: throw new NotSupportedException(assignCall.TargetCase.ToString()); } var arguments = string.Join(", ", assignCall.Args.Select(SerializeExpression)); return($"{target} := {assignCall.MethodId} [ {arguments} ]"); }