示例#1
0
        private void AdjustArgument(VBAParser.DictionaryAccessContext dictionaryAccessContext, IModuleRewriter rewriter)
        {
            var argumentContext = ArgumentContext(dictionaryAccessContext);

            rewriter.InsertBefore(argumentContext.Start.TokenIndex, "(\"");
            rewriter.InsertAfter(argumentContext.Stop.TokenIndex, "\")");
        }
示例#2
0
        private ParserRuleContext ArgumentContext(VBAParser.DictionaryAccessContext dictionaryAccessContext)
        {
            if (dictionaryAccessContext.parent is VBAParser.DictionaryAccessExprContext dictionaryAccess)
            {
                return(dictionaryAccess.unrestrictedIdentifier());
            }

            return(((VBAParser.WithDictionaryAccessExprContext)dictionaryAccessContext.parent).unrestrictedIdentifier());
        }
示例#3
0
        private void InsertDefaultMember(VBAParser.DictionaryAccessContext dictionaryAccessContext, QualifiedSelection selection, DeclarationFinder finder, IModuleRewriter rewriter)
        {
            var defaultMemberAccessCode = DefaultMemberAccessCode(selection, finder);

            rewriter.Replace(dictionaryAccessContext, defaultMemberAccessCode);
        }
示例#4
0
        private (Declaration declaration, bool mightHaveSetType) SetTypeDeterminingDeclarationOfExpression(VBAParser.DictionaryAccessContext dictionaryAccess, QualifiedModuleName containingModule, DeclarationFinder finder)
        {
            var qualifiedSelection = new QualifiedSelection(containingModule, dictionaryAccess.GetSelection());
            var declaration        = finder.IdentifierReferences(qualifiedSelection)
                                     .Select(reference => reference.Declaration)
                                     .LastOrDefault();

            return(declaration, MightHaveSetType(declaration));
        }