private void AddDefaultMemberReference( RecursiveDefaultMemberAccessExpression expression, QualifiedModuleName module, Declaration scope, Declaration parent, bool hasExplicitLetStatement, bool isInnerRecursiveDefaultMemberAccess) { var callSiteContext = expression.Context; var identifier = callSiteContext.GetText(); var selection = callSiteContext.GetSelection(); var callee = expression.ReferencedDeclaration; expression.ReferencedDeclaration.AddReference( module, scope, parent, callSiteContext, identifier, callee, selection, FindIdentifierAnnotations(module, selection.StartLine), hasExplicitLetStatement: hasExplicitLetStatement, isNonIndexedDefaultMemberAccess: true, defaultMemberRecursionDepth: expression.DefaultMemberRecursionDepth, isInnerRecursiveDefaultMemberAccess: isInnerRecursiveDefaultMemberAccess); }
private void Visit( RecursiveDefaultMemberAccessExpression expression, QualifiedModuleName module, Declaration scope, Declaration parent, bool hasExplicitLetStatement, bool hasArrayAccess) { var containedExpression = expression.ContainedDefaultMemberRecursionExpression; if (containedExpression != null) { Visit(containedExpression, module, scope, parent, hasExplicitLetStatement: hasExplicitLetStatement); } if (expression.Classification != ExpressionClassification.Unbound && expression.ReferencedDeclaration != null) { AddDefaultMemberReference(expression, module, parent, scope, hasExplicitLetStatement, !hasArrayAccess); } }