Skip to content

Commit 415262d

Browse files
authored
Releases/2.3 (#39)
* Getter and setter call syntax (#38) * Allow customization of ConstantExpression and fix method calls to property getters/setters (#36) * add convert property methods setting * implement ConvertPropertyMethodsToSimpleSyntax * add setting "NameConstantsUsing" * allow user to customize how a ConstantExpression is written * Adding public instance getter and setter call translation tests Making property method call to property syntax translation the default Tidying * Support for static property getter and setter call translation * Test coverage for non-public property getter and setter call translation * Test coverage for use-defined constant translator * Updating Readme * Using static Expression imports in tests * Updating to v2.3 * v2.3 NuGet package, installer and visualizers
1 parent 8d4d6b8 commit 415262d

40 files changed

+1333
-1038
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

CommonAssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
[assembly: AssemblyCompany("AgileObjects Ltd")]
66
[assembly: AssemblyProduct("AgileObjects.ReadableExpressions")]
7-
[assembly: AssemblyCopyright("Copyright © AgileObjects Ltd 2018")]
7+
[assembly: AssemblyCopyright("Copyright © AgileObjects Ltd 2019")]
88
[assembly: NeutralResourcesLanguage("en")]
99

1010
[assembly: CLSCompliant(true)]
Binary file not shown.

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,14 @@ To include namespaces when outputting Type names, use:
2626
To define a custom factory for naming anonymous types, use:
2727

2828
string readable = myExpression
29-
.ToReadableString(c => c.NameAnonymousTypesUsing(anonType => GetAnonTypeName(anonType)));
29+
.ToReadableString(c => c.NameAnonymousTypesUsing(
30+
anonType => GetAnonTypeName(anonType)));
31+
32+
To define a custom factory for translating ConstantExpression values, use:
33+
34+
string readable = myExpression
35+
.ToReadableString(c => c.TranslateConstantsUsing(
36+
(constantType, constantValue) => GetConstantValue(constantType, constantValue)));
3037

3138
To output a source code comment when a lambda is '[quoted](https://stackoverflow.com/questions/3716492/what-does-expression-quote-do-that-expression-constant-can-t-already-do)', use:
3239

ReadableExpressions.UnitTests/WhenFormattingCode.cs

Lines changed: 182 additions & 180 deletions
Large diffs are not rendered by default.

ReadableExpressions.UnitTests/WhenTranslatingAssignments.cs

Lines changed: 181 additions & 179 deletions
Large diffs are not rendered by default.

ReadableExpressions.UnitTests/WhenTranslatingBlocks.cs

Lines changed: 134 additions & 132 deletions
Large diffs are not rendered by default.

ReadableExpressions.UnitTests/WhenTranslatingComments.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
{
33
using System;
44
#if !NET35
5-
using System.Linq.Expressions;
65
using Xunit;
6+
using static System.Linq.Expressions.Expression;
77
#else
8-
using Microsoft.Scripting.Ast;
98
using Fact = NUnit.Framework.TestAttribute;
9+
using static Microsoft.Scripting.Ast.Expression;
1010

1111
[NUnit.Framework.TestFixture]
1212
#endif
@@ -44,7 +44,7 @@ public void ShouldTranslateABlockWithAComment()
4444
var comment = ReadableExpression.Comment("Anyone listening?");
4545
var beep = CreateLambda(() => Console.Beep());
4646

47-
var commentedBeep = Expression.Block(comment, beep.Body);
47+
var commentedBeep = Block(comment, beep.Body);
4848

4949
var translated = ToReadableString(commentedBeep);
5050

@@ -59,9 +59,9 @@ public void ShouldTranslateABlockWithAComment()
5959
public void ShouldTranslateAConditionalBranchWithAComment()
6060
{
6161
var comment = ReadableExpression.Comment("Maths works");
62-
var one = Expression.Constant(1);
63-
var oneEqualsOne = Expression.Equal(one, one);
64-
var ifOneEqualsOneComment = Expression.IfThen(oneEqualsOne, comment);
62+
var one = Constant(1);
63+
var oneEqualsOne = Equal(one, one);
64+
var ifOneEqualsOneComment = IfThen(oneEqualsOne, comment);
6565

6666
var translated = ToReadableString(ifOneEqualsOneComment);
6767

ReadableExpressions.UnitTests/WhenTranslatingComparisons.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
namespace AgileObjects.ReadableExpressions.UnitTests
22
{
33
#if !NET35
4-
using System.Linq.Expressions;
54
using Xunit;
5+
using static System.Linq.Expressions.Expression;
66
#else
7-
using Microsoft.Scripting.Ast;
87
using Fact = NUnit.Framework.TestAttribute;
8+
using static Microsoft.Scripting.Ast.Expression;
99

1010
[NUnit.Framework.TestFixture]
1111
#endif
@@ -74,8 +74,8 @@ public void ShouldTranslateAnInequalityExpression()
7474
[Fact]
7575
public void ShouldAbbreviateBooleanTrueComparisons()
7676
{
77-
var boolVariable = Expression.Variable(typeof(bool), "couldBe");
78-
var boolIsTrue = Expression.Equal(boolVariable, Expression.Constant(true));
77+
var boolVariable = Variable(typeof(bool), "couldBe");
78+
var boolIsTrue = Equal(boolVariable, Constant(true));
7979

8080
var translated = ToReadableString(boolIsTrue);
8181

@@ -85,8 +85,8 @@ public void ShouldAbbreviateBooleanTrueComparisons()
8585
[Fact]
8686
public void ShouldAbbreviateBooleanFalseComparisons()
8787
{
88-
var boolVariable = Expression.Variable(typeof(bool), "couldBe");
89-
var boolIsFalse = Expression.Equal(Expression.Constant(false), boolVariable);
88+
var boolVariable = Variable(typeof(bool), "couldBe");
89+
var boolIsFalse = Equal(Constant(false), boolVariable);
9090

9191
var translated = ToReadableString(boolIsFalse);
9292

@@ -96,8 +96,8 @@ public void ShouldAbbreviateBooleanFalseComparisons()
9696
[Fact]
9797
public void ShouldAbbreviateNotBooleanTrueComparisons()
9898
{
99-
var boolVariable = Expression.Variable(typeof(bool), "couldBe");
100-
var boolIsNotTrue = Expression.NotEqual(Expression.Constant(true), boolVariable);
99+
var boolVariable = Variable(typeof(bool), "couldBe");
100+
var boolIsNotTrue = NotEqual(Constant(true), boolVariable);
101101

102102
var translated = ToReadableString(boolIsNotTrue);
103103

@@ -107,8 +107,8 @@ public void ShouldAbbreviateNotBooleanTrueComparisons()
107107
[Fact]
108108
public void ShouldAbbreviateNotBooleanFalseComparisons()
109109
{
110-
var boolVariable = Expression.Variable(typeof(bool), "couldBe");
111-
var boolIsNotFalse = Expression.NotEqual(boolVariable, Expression.Constant(false));
110+
var boolVariable = Variable(typeof(bool), "couldBe");
111+
var boolIsNotFalse = NotEqual(boolVariable, Constant(false));
112112

113113
var translated = ToReadableString(boolIsNotFalse);
114114

@@ -118,8 +118,8 @@ public void ShouldAbbreviateNotBooleanFalseComparisons()
118118
[Fact]
119119
public void ShouldAbbreviateDefaultBooleanComparisons()
120120
{
121-
var boolVariable = Expression.Variable(typeof(bool), "couldBe");
122-
var boolIsFalse = Expression.Equal(Expression.Default(typeof(bool)), boolVariable);
121+
var boolVariable = Variable(typeof(bool), "couldBe");
122+
var boolIsFalse = Equal(Default(typeof(bool)), boolVariable);
123123

124124
var translated = ToReadableString(boolIsFalse);
125125

0 commit comments

Comments
 (0)