Exemple #1
0
        private static bool IsIndexer([NotNull] IDeclaredElement element)
        {
            var accessor = element as IAccessor;

            if (accessor != null)
            {
                element = accessor.OwnerMember;
            }

            return(CSharpDeclaredElementUtil.IsIndexer(element) || element.IsIndexedProperty());
        }
        public string GetForDeclaredElement([CanBeNull] IDeclaredElement declaredElement)
        {
            if (declaredElement == null)
            {
                return(null);
            }

            if (declaredElement is IFunction)
            {
                var method = declaredElement as IMethod;
                if (method != null)
                {
                    if (method.IsPredefined)
                    {
                        return(null);
                    }
                    return(method.IsExtensionMethod ? ExtensionMethod : Method);
                }

                var signOperator = declaredElement as ISignOperator;
                if (signOperator != null)
                {
                    return(signOperator.IsPredefined ? Operator : UserOperator);
                }

                var constructor = declaredElement as IConstructor;
                if (constructor != null)
                {
                    return(GetForTypeElement(constructor.GetContainingType()));
                }
            }

            var field = declaredElement as IField;

            if (field != null)
            {
                return(field.IsField ? Field : Constant);
            }

            var typeElement = declaredElement as ITypeElement;

            if (typeElement != null)
            {
                return(GetForTypeElement(typeElement));
            }

            if (CSharpDeclaredElementUtil.IsProperty(declaredElement) || declaredElement.IsIndexedProperty())
            {
                return(Property);
            }

            if (declaredElement is IEvent)
            {
                return(Event);
            }

            if (declaredElement is INamespace)
            {
                return(Namespace);
            }

            var parameter = declaredElement as IParameter;

            if (parameter != null)
            {
                return(parameter.IsValueVariable ? Identifier : Parameter);
            }

            var localVariable = declaredElement as ILocalVariable;

            if (localVariable != null)
            {
                return(localVariable.IsConstant ? Constant : LocalVariable);
            }

            if (declaredElement is ICSharpAnonymousTypeProperty)
            {
                return(declaredElement is IQueryAnonymousTypeProperty ? LocalVariable : Field);
            }

            if (declaredElement is IPathDeclaredElement)
            {
                return(Path);
            }

            return(Identifier);
        }