Exemplo n.º 1
0
        public override object VisitIdentifierExpression(MonoDevelop.CSharp.Ast.IdentifierExpression identifierExpression, object data)
        {
            ExpressionResult    expressionResult = new ExpressionResult(identifierExpression.Identifier);
            ResolveResult       result           = resolver.Resolve(expressionResult, position);
            MemberResolveResult mrr = result as MemberResolveResult;

            ReferencesMember |= mrr != null && mrr.ResolvedMember != null && !mrr.ResolvedMember.IsStatic;

            if (!(result is LocalVariableResolveResult || result is ParameterResolveResult))
            {
                return(null);
            }
            if (!variables.ContainsKey(identifierExpression.Identifier))
            {
                return(null);
            }
            var v = variables[identifierExpression.Identifier];

            v.ReturnType = result.ResolvedType;
            if (CutRegion.Contains(identifierExpression.StartLocation))
            {
                if (!v.IsChangedInsideCutRegion)
                {
                    v.UsedInCutRegion = true;
                }
            }
            else if (identifierExpression.StartLocation < CutRegion.Start)
            {
                v.UsedBeforeCutRegion = true;
            }
            else
            {
                v.UsedAfterCutRegion = true;
            }
            return(null);
        }
Exemplo n.º 2
0
 public virtual S VisitIdentifierExpression(IdentifierExpression identifierExpression, T data)
 {
     return(VisitChildren(identifierExpression, data));
 }