Skip to content

Commit

Permalink
Revert "Revert unused variable removal and cascading effects"
Browse files Browse the repository at this point in the history
This reverts commit 083f11f.
  • Loading branch information
IvenBach committed Dec 8, 2017
1 parent e9c1a7b commit 2297e27
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 32 deletions.
12 changes: 6 additions & 6 deletions Rubberduck.Parsing/Binding/DefaultBindingContext.cs
Expand Up @@ -44,14 +44,14 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAPars
var lexprBinding = Visit(module, parent, lexpr, withBlockVariable, StatementResolutionContext.Undefined);
var argList = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable, StatementResolutionContext.Undefined);
SetLeftMatch(lexprBinding, argList.Arguments.Count);
return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression.lExpression(), (IExpressionBinding) lexprBinding, argList);
return new IndexDefaultBinding(expression.lExpression(), (IExpressionBinding) lexprBinding, argList);
}
else
{
var lexprBinding = Visit(module, parent, (dynamic)expression.lExpression(), withBlockVariable, StatementResolutionContext.Undefined);
return lexprBinding is IndexDefaultBinding
? lexprBinding
: new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression.lExpression(), (IExpressionBinding)lexprBinding, new ArgumentList());
: new IndexDefaultBinding(expression.lExpression(), (IExpressionBinding)lexprBinding, new ArgumentList());
}
}

Expand Down Expand Up @@ -125,7 +125,7 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAPars
var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, StatementResolutionContext.Undefined);
var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable, StatementResolutionContext.Undefined);
SetLeftMatch(lExpressionBinding, argumentListBinding.Arguments.Count);
return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, (IExpressionBinding) lExpressionBinding, argumentListBinding);
return new IndexDefaultBinding(expression, (IExpressionBinding) lExpressionBinding, argumentListBinding);
}

private IExpressionBinding Visit(Declaration module, Declaration parent, VBAParser.WhitespaceIndexExprContext expression, IBoundExpression withBlockVariable, StatementResolutionContext statementContext)
Expand All @@ -134,7 +134,7 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAPars
var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, StatementResolutionContext.Undefined);
var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable, StatementResolutionContext.Undefined);
SetLeftMatch(lExpressionBinding, argumentListBinding.Arguments.Count);
return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, (IExpressionBinding) lExpressionBinding, argumentListBinding);
return new IndexDefaultBinding(expression, (IExpressionBinding) lExpressionBinding, argumentListBinding);
}

private ArgumentList VisitArgumentList(Declaration module, Declaration parent, VBAParser.ArgumentListContext argumentList, IBoundExpression withBlockVariable, StatementResolutionContext statementContext)
Expand Down Expand Up @@ -229,7 +229,7 @@ private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, D
*/
var fakeArgList = new ArgumentList();
fakeArgList.AddArgument(new ArgumentListArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional));
return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, fakeArgList);
return new IndexDefaultBinding(expression, lExpressionBinding, fakeArgList);
}

private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext nameContext, IBoundExpression lExpression, StatementResolutionContext statementContext)
Expand All @@ -241,7 +241,7 @@ private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, D
*/
var fakeArgList = new ArgumentList();
fakeArgList.AddArgument(new ArgumentListArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional));
return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpression, fakeArgList);
return new IndexDefaultBinding(expression, lExpression, fakeArgList);
}

private IExpressionBinding Visit(Declaration module, Declaration parent, VBAParser.WithMemberAccessExprContext expression, IBoundExpression withBlockVariable, StatementResolutionContext statementContext)
Expand Down
29 changes: 3 additions & 26 deletions Rubberduck.Parsing/Binding/IndexDefaultBinding.cs
Expand Up @@ -6,10 +6,6 @@ namespace Rubberduck.Parsing.Binding
{
public sealed class IndexDefaultBinding : IExpressionBinding
{
private readonly DeclarationFinder _declarationFinder;
private readonly Declaration _project;
private readonly Declaration _module;
private readonly Declaration _parent;
private readonly ParserRuleContext _expression;
private readonly IExpressionBinding _lExpressionBinding;
private IBoundExpression _lExpression;
Expand All @@ -18,39 +14,20 @@ public sealed class IndexDefaultBinding : IExpressionBinding
private const int DEFAULT_MEMBER_RECURSION_LIMIT = 32;
private int _defaultMemberRecursionLimitCounter;

public IndexDefaultBinding(
DeclarationFinder declarationFinder,
Declaration project,
Declaration module,
Declaration parent,
ParserRuleContext expression,
public IndexDefaultBinding(ParserRuleContext expression,
IExpressionBinding lExpressionBinding,
ArgumentList argumentList)
: this(
declarationFinder,
project,
module,
parent,
expression,
: this(expression,
(IBoundExpression)null,
argumentList)
{
_lExpressionBinding = lExpressionBinding;
}

public IndexDefaultBinding(
DeclarationFinder declarationFinder,
Declaration project,
Declaration module,
Declaration parent,
ParserRuleContext expression,
public IndexDefaultBinding(ParserRuleContext expression,
IBoundExpression lExpression,
ArgumentList argumentList)
{
_declarationFinder = declarationFinder;
_project = project;
_module = module;
_parent = parent;
_expression = expression;
_lExpression = lExpression;
_argumentList = argumentList;
Expand Down

0 comments on commit 2297e27

Please sign in to comment.