Skip to content

Commit 66a5eaa

Browse files
committed
Un-encapsulating expression info collections in private class
1 parent d6f0137 commit 66a5eaa

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

ReadableExpressions/TranslationContext.cs

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -86,21 +86,17 @@ public bool IsPartOfMethodCallChain(Expression methodCall)
8686
private class ExpressionAnalysisVisitor : ExpressionVisitor
8787
{
8888
private readonly List<ParameterExpression> _accessedVariables;
89-
private readonly List<ParameterExpression> _assignedVariables;
9089
private readonly List<Expression> _assignedAssignments;
91-
private readonly List<BinaryExpression> _joinedAssignments;
92-
private readonly List<LabelTarget> _namedLabelTargets;
93-
private readonly List<MethodCallExpression> _chainedMethodCalls;
9490
private BlockExpression _currentBlock;
9591

9692
private ExpressionAnalysisVisitor()
9793
{
9894
_accessedVariables = new List<ParameterExpression>();
99-
_assignedVariables = new List<ParameterExpression>();
95+
AssignedVariables = new List<ParameterExpression>();
10096
_assignedAssignments = new List<Expression>();
101-
_joinedAssignments = new List<BinaryExpression>();
102-
_namedLabelTargets = new List<LabelTarget>();
103-
_chainedMethodCalls = new List<MethodCallExpression>();
97+
JoinedAssignments = new List<BinaryExpression>();
98+
NamedLabelTargets = new List<LabelTarget>();
99+
ChainedMethodCalls = new List<MethodCallExpression>();
104100
}
105101

106102
#region Factory Method
@@ -142,13 +138,13 @@ private static Expression GetCoreExpression(Expression expression)
142138

143139
#endregion
144140

145-
public IEnumerable<ParameterExpression> AssignedVariables => _assignedVariables;
141+
public ICollection<ParameterExpression> AssignedVariables { get; }
146142

147-
public IEnumerable<BinaryExpression> JoinedAssignments => _joinedAssignments;
143+
public ICollection<BinaryExpression> JoinedAssignments { get; }
148144

149-
public IEnumerable<LabelTarget> NamedLabelTargets => _namedLabelTargets;
145+
public ICollection<LabelTarget> NamedLabelTargets { get; }
150146

151-
public IEnumerable<MethodCallExpression> ChainedMethodCalls => _chainedMethodCalls;
147+
public List<MethodCallExpression> ChainedMethodCalls { get; }
152148

153149
protected override Expression VisitBlock(BlockExpression block)
154150
{
@@ -172,16 +168,16 @@ protected override Expression VisitBinary(BinaryExpression binaryExpression)
172168
if ((binaryExpression.NodeType == ExpressionType.Assign) &&
173169
(binaryExpression.Left.NodeType == ExpressionType.Parameter) &&
174170
((_currentBlock == null) || _currentBlock.Expressions.Contains(binaryExpression)) &&
175-
!_assignedVariables.Contains(binaryExpression.Left) &&
171+
!AssignedVariables.Contains(binaryExpression.Left) &&
176172
!_assignedAssignments.Contains(binaryExpression))
177173
{
178174
var variable = (ParameterExpression)binaryExpression.Left;
179175

180176
if (VariableHasNotYetBeenAccessed(variable))
181177
{
182-
_joinedAssignments.Add(binaryExpression);
178+
JoinedAssignments.Add(binaryExpression);
183179
_accessedVariables.Add(variable);
184-
_assignedVariables.Add(variable);
180+
AssignedVariables.Add(variable);
185181
}
186182

187183
AddAssignmentIfAppropriate(binaryExpression.Right);
@@ -222,21 +218,21 @@ protected override Expression VisitGoto(GotoExpression @goto)
222218
{
223219
if (@goto.Kind == GotoExpressionKind.Goto)
224220
{
225-
_namedLabelTargets.Add(@goto.Target);
221+
NamedLabelTargets.Add(@goto.Target);
226222
}
227223

228224
return base.VisitGoto(@goto);
229225
}
230226

231227
protected override Expression VisitMethodCall(MethodCallExpression methodCall)
232228
{
233-
if (!_chainedMethodCalls.Contains(methodCall))
229+
if (!ChainedMethodCalls.Contains(methodCall))
234230
{
235231
var methodCallChain = GetChainedMethodCalls(methodCall).ToArray();
236232

237233
if (methodCallChain.Length > 2)
238234
{
239-
_chainedMethodCalls.AddRange(methodCallChain);
235+
ChainedMethodCalls.AddRange(methodCallChain);
240236
}
241237
}
242238

0 commit comments

Comments
 (0)