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); }