From a91d623ba29ff3b31af8bb3ce635306aa541ef70 Mon Sep 17 00:00:00 2001 From: Shay Rojansky Date: Thu, 8 Oct 2020 15:04:21 +0300 Subject: [PATCH 1/3] Don't print trailing comma for enumerable constants --- src/EFCore/Query/ExpressionPrinter.cs | 10 ++++++++-- test/EFCore.Tests/Query/ExpressionPrinterTest.cs | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/EFCore/Query/ExpressionPrinter.cs b/src/EFCore/Query/ExpressionPrinter.cs index 97edc992c9b..2ad243a9896 100644 --- a/src/EFCore/Query/ExpressionPrinter.cs +++ b/src/EFCore/Query/ExpressionPrinter.cs @@ -459,13 +459,19 @@ private void Print(object value) && !(value is string)) { _stringBuilder.Append(value.GetType().ShortDisplayName() + " { "); + + var needsComma = false; foreach (var item in enumerable) { + if (needsComma) + { + _stringBuilder.Append(", "); + } Print(item); - _stringBuilder.Append(", "); + needsComma = true; } - _stringBuilder.Append("}"); + _stringBuilder.Append(" }"); return; } diff --git a/test/EFCore.Tests/Query/ExpressionPrinterTest.cs b/test/EFCore.Tests/Query/ExpressionPrinterTest.cs index cb212c5109a..e75bdbec72b 100644 --- a/test/EFCore.Tests/Query/ExpressionPrinterTest.cs +++ b/test/EFCore.Tests/Query/ExpressionPrinterTest.cs @@ -197,5 +197,15 @@ public void Linq_methods_printed_as_extensions() _expressionPrinter.Print(expr.Body), ignoreLineEndingDifferences: true); } + + [ConditionalFact] + public void Enumerable_Constant_printed_correctly() + { + Assert.Equal( + @"int[] { 1, 2, 3 }", + _expressionPrinter.Print( + Expression.Constant( + new[] { 1, 2, 3 }))); + } } } From 582e0675168d4300c5e8e1d34b1f1afd98409640 Mon Sep 17 00:00:00 2001 From: Shay Rojansky Date: Fri, 9 Oct 2020 01:06:03 +0300 Subject: [PATCH 2/3] Flip condition --- src/EFCore/Query/ExpressionPrinter.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/EFCore/Query/ExpressionPrinter.cs b/src/EFCore/Query/ExpressionPrinter.cs index 2ad243a9896..852243765ca 100644 --- a/src/EFCore/Query/ExpressionPrinter.cs +++ b/src/EFCore/Query/ExpressionPrinter.cs @@ -460,15 +460,18 @@ private void Print(object value) { _stringBuilder.Append(value.GetType().ShortDisplayName() + " { "); - var needsComma = false; + var isFirst = true; foreach (var item in enumerable) { - if (needsComma) + if (isFirst) + { + isFirst = false; + } + else { _stringBuilder.Append(", "); } Print(item); - needsComma = true; } _stringBuilder.Append(" }"); From 4b572cafd61b38b49ae90c736aeaae5df29eebff Mon Sep 17 00:00:00 2001 From: Smit Patel Date: Thu, 8 Oct 2020 17:23:27 -0700 Subject: [PATCH 3/3] Update src/EFCore/Query/ExpressionPrinter.cs --- src/EFCore/Query/ExpressionPrinter.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/EFCore/Query/ExpressionPrinter.cs b/src/EFCore/Query/ExpressionPrinter.cs index 852243765ca..020c7cfdadb 100644 --- a/src/EFCore/Query/ExpressionPrinter.cs +++ b/src/EFCore/Query/ExpressionPrinter.cs @@ -460,12 +460,12 @@ private void Print(object value) { _stringBuilder.Append(value.GetType().ShortDisplayName() + " { "); - var isFirst = true; + var first = true; foreach (var item in enumerable) { - if (isFirst) + if (first) { - isFirst = false; + first = false; } else {