From 2297e27e07c165a9e433847b2a800b9cb7f6574a Mon Sep 17 00:00:00 2001 From: IvenBach Date: Thu, 7 Dec 2017 18:05:09 -0800 Subject: [PATCH] Revert "Revert unused variable removal and cascading effects" This reverts commit 083f11f7e1ac1161b3d8d8787dfa6b15694c73df. --- .../Binding/DefaultBindingContext.cs | 12 ++++---- .../Binding/IndexDefaultBinding.cs | 29 ++----------------- 2 files changed, 9 insertions(+), 32 deletions(-) diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 9f343ff90f..d2e2bbb5c6 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -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()); } } @@ -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) @@ -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) @@ -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) @@ -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) diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs index 0fc875bbc2..44f8efe6e4 100644 --- a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -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; @@ -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;