Esempio n. 1
0
        public override void Visit(ExprDotName e)
        {
            MemberSelectExpr mse = null;

            if (e.ResolvedExpression is MemberSelectExpr)
            {
                mse = e.ResolvedExpression as MemberSelectExpr;
            }

            var nav          = new SymbolNavigator();
            var definingItem = nav.TopDown(RootNode, mse?.Member.tok);

            var declaration = FindDeclaration(e.SuffixName, definingItem);

            CreateSymbol(
                name: e.SuffixName,
                kind: null,
                type: e.Type,

                positionAsToken: e.tok,
                bodyStartPosAsToken: null,
                bodyEndPosAsToken: null,

                isDeclaration: false,
                declarationSymbol: declaration,
                addUsageAtDeclaration: true,

                canHaveChildren: false,
                canBeUsed: false
                );
        }
Esempio n. 2
0
        public override void Visit(NameSegment e)
        {
            var nav            = new SymbolNavigator();
            var resolvedSymbol = nav.TopDown(RootNode, e.ResolvedExpression.tok);

            var declaration = FindDeclaration(e.Name, resolvedSymbol);

            CreateSymbol(
                name: e.Name,
                kind: null,
                type: e.Type,

                positionAsToken: e.tok,
                bodyStartPosAsToken: null,
                bodyEndPosAsToken: null,

                isDeclaration: false,
                declarationSymbol: declaration,
                addUsageAtDeclaration: true,

                canHaveChildren: false,
                canBeUsed: false
                );
        }