public TypeKind GetTypeKindForAstType(ICSharpCode.NRefactory.CSharp.AstType type) { var annotation = type.Annotation <ITypeDefOrRef>(); if (annotation is null) { return(TypeKind.Unknown); } var definition = annotation.ResolveTypeDef(); if (definition is null) { return(TypeKind.Unknown); } if (definition.IsClass) { return(TypeKind.Class); } if (definition.IsInterface) { return(TypeKind.Interface); } if (definition.IsEnum) { return(TypeKind.Enum); } if (definition.IsValueType) { return(TypeKind.Struct); } return(TypeKind.Unknown); }
public ClassType GetClassTypeForAstType(ICSharpCode.NRefactory.CSharp.AstType type) { var definition = type.Annotations.OfType <TypeReference>().First().ResolveOrThrow(); if (definition.IsClass) { return(ClassType.Class); } if (definition.IsInterface) { return(ClassType.Interface); } if (definition.IsEnum) { return(ClassType.Enum); } if (definition.IsFunctionPointer) { return(ClassType.Delegate); } if (definition.IsValueType) { return(ClassType.Struct); } return(ClassType.Module); }
public TypeKind GetTypeKindForAstType(ICSharpCode.NRefactory.CSharp.AstType type) { var annotation = type.Annotation <TypeReference>(); if (annotation == null) { return(TypeKind.Unknown); } var definition = annotation.ResolveOrThrow(); if (definition.IsClass) { return(TypeKind.Class); } if (definition.IsInterface) { return(TypeKind.Interface); } if (definition.IsEnum) { return(TypeKind.Enum); } if (definition.IsFunctionPointer) { return(TypeKind.Delegate); } if (definition.IsValueType) { return(TypeKind.Struct); } return(TypeKind.Unknown); }
public ICSharpCode.NRefactory.CSharp.AstType ShortenTypeName(ICSharpCode.NRefactory.CSharp.AstType typeReference) { return(Document.CompilationUnit.ShortenTypeName(typeReference.ConvertToReturnType(), Document.Editor.Caret.Line, Document.Editor.Caret.Column).ConvertToTypeReference()); }