private void SaveUnresolvedExpression(ResolutionFailedExpression expression, Declaration parent, IBoundExpression withExpression) { if (expression.Context is VBAParser.LExpressionContext lExpression) { _declarationFinder.AddUnboundContext(parent, lExpression, withExpression); } else { Logger.Warn($"Default Context: Failed to resolve {expression.Context.GetText()}. Binding as much as we can."); } }
private void Visit( ResolutionFailedExpression expression, QualifiedModuleName module, Declaration scope, Declaration parent) { // To bind as much as possible we gather all successfully resolved expressions and bind them here as a special case. foreach (var successfullyResolvedExpression in expression.SuccessfullyResolvedExpressions) { Visit(successfullyResolvedExpression, module, scope, parent); } }
private void Visit(ResolutionFailedExpression expression, Declaration parent, IBoundExpression withExpression) { if (!expression.IsJoinedExpression) { SaveUnresolvedExpression(expression, parent, withExpression); } foreach (var successfullyResolvedExpression in expression.SuccessfullyResolvedExpressions) { Visit(successfullyResolvedExpression, parent, withExpression); } }
private void Visit( ResolutionFailedExpression expression, QualifiedModuleName module, Declaration scope, Declaration parent, bool isAssignmentTarget, bool hasExplicitLetStatement) { // To bind as much as possible we gather all successfully resolved expressions and bind them here as a special case. foreach (var successfullyResolvedExpression in expression.SuccessfullyResolvedExpressions) { Visit((dynamic)successfullyResolvedExpression, module, scope, parent, false, false); } }