public static string FormatIncludingContext([CanBeNull] IDeclaredElement element) { if (element == null) { return("NULL"); } var result = element.GetType().Name + " '" + element.ShortName + "'"; if (element is IClrDeclaredElement clrDeclaredElement) { var containingType = clrDeclaredElement.GetContainingType(); var containingTypeName = containingType == null ? "NULL" : containingType.GetClrName().FullName; result += " in " + containingTypeName; if (clrDeclaredElement is IParameter) // executing GetContainingTypeMember() on e.g. TypeParameters throws in R# 8.2 { var containingTypeMember = clrDeclaredElement.GetContainingTypeMember(); if (containingTypeMember != null) { result += "." + containingTypeMember.ShortName + "()"; } } } return(result); }
private static IName FallbackHandler(IDeclaredElement element, ISubstitution substitution) { var typeName = element.GetType().FullName; var elementName = element.ShortName; var id = string.Format("UnknownDeclaredElement: {0}, '{1}', {2}", typeName, elementName, substitution); return(Names.General(id)); }
public UnexpectedReferenceTypeException(IDeclaredElement declaredElement, ReferenceExpressionEater eater, ICSharpTreeNode node) : base(string.Format("Unexpected reference declared type. Expected field, property, event, constant, variable or class, but was [{0}]", declaredElement.GetType()), eater, node) { DeclaredElement = declaredElement; }
private IModule GetModule(IDeclaredElement declaredElement) { #if RESHARPER_31 || RESHARPER_40 || RESHARPER_41 return declaredElement.Module; #elif RESHARPER_60_OR_NEWER var sourceFiles = declaredElement.GetSourceFiles(); IPsiModule psiModule; if (sourceFiles.Count == 0) { // HACK: there must be a better way of doing this var propertyInfo = declaredElement.GetType().GetProperty("Module"); psiModule = (IPsiModule)propertyInfo.GetValue(declaredElement, null); } else { psiModule = sourceFiles[0].GetPsiModule(); } return psiModule.ContainingProjectModule; #else return declaredElement.Module.ContainingProjectModule; #endif }
public UnexpectedReferenceTypeException(IDeclaredElement declaredElement, ReferenceExpressionEater eater, ICSharpTreeNode node) : base(string.Format("Unexpected reference declared type. Expected field, property, event, constant, variable or class, but was [{0}]", declaredElement.GetType()), eater, node) { DeclaredElement = declaredElement; }