/NRefactory/ICSharpCode.NRefactory/TypeSystem/TypeKind.cs

http://github.com/icsharpcode/ILSpy · C# · 84 lines · 25 code · 8 blank · 51 comment · 0 complexity · 9b8f12953b9a0e7bd5366c89c4de4864 MD5 · raw file

  1. // Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team
  2. //
  3. // Permission is hereby granted, free of charge, to any person obtaining a copy of this
  4. // software and associated documentation files (the "Software"), to deal in the Software
  5. // without restriction, including without limitation the rights to use, copy, modify, merge,
  6. // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
  7. // to whom the Software is furnished to do so, subject to the following conditions:
  8. //
  9. // The above copyright notice and this permission notice shall be included in all copies or
  10. // substantial portions of the Software.
  11. //
  12. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
  13. // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  14. // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
  15. // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  16. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  17. // DEALINGS IN THE SOFTWARE.
  18. using System;
  19. namespace ICSharpCode.NRefactory.TypeSystem
  20. {
  21. /// <summary>
  22. /// .
  23. /// </summary>
  24. public enum TypeKind : byte
  25. {
  26. /// <summary>Language-specific type that is not part of NRefactory.TypeSystem itself.</summary>
  27. Other,
  28. /// <summary>A <see cref="ITypeDefinition"/> or <see cref="ParameterizedType"/> that is a class.</summary>
  29. Class,
  30. /// <summary>A <see cref="ITypeDefinition"/> or <see cref="ParameterizedType"/> that is an interface.</summary>
  31. Interface,
  32. /// <summary>A <see cref="ITypeDefinition"/> or <see cref="ParameterizedType"/> that is a struct.</summary>
  33. Struct,
  34. /// <summary>A <see cref="ITypeDefinition"/> or <see cref="ParameterizedType"/> that is a delegate.</summary>
  35. /// <remarks><c>System.Delegate</c> itself is TypeKind.Class</remarks>
  36. Delegate,
  37. /// <summary>A <see cref="ITypeDefinition"/> that is an enum.</summary>
  38. /// <remarks><c>System.Enum</c> itself is TypeKind.Class</remarks>
  39. Enum,
  40. /// <summary>A <see cref="ITypeDefinition"/> that is a module (VB).</summary>
  41. Module,
  42. /// <summary>The <c>System.Void</c> type.</summary>
  43. /// <see cref="KnownTypeReference.Void"/>
  44. Void,
  45. /// <see cref="SpecialType.UnknownType"/>
  46. Unknown,
  47. /// <summary>The type of the null literal.</summary>
  48. /// <see cref="SpecialType.NullType"/>
  49. Null,
  50. /// <summary>Type representing the C# 'dynamic' type.</summary>
  51. /// <see cref="SpecialType.Dynamic"/>
  52. Dynamic,
  53. /// <summary>Represents missing type arguments in partially parameterized types.</summary>
  54. /// <see cref="SpecialType.UnboundTypeArgument"/>
  55. /// <see cref="IType.GetNestedTypes(Predicate{ITypeDefinition}, GetMemberOptions)"/>
  56. UnboundTypeArgument,
  57. /// <summary>The type is a type parameter.</summary>
  58. /// <see cref="ITypeParameter"/>
  59. TypeParameter,
  60. /// <summary>An array type</summary>
  61. /// <see cref="ArrayType"/>
  62. Array,
  63. /// <summary>A pointer type</summary>
  64. /// <see cref="PointerType"/>
  65. Pointer,
  66. /// <summary>A managed reference type</summary>
  67. /// <see cref="ByReferenceType"/>
  68. ByReference,
  69. /// <summary>An anonymous type</summary>
  70. /// <see cref="AnonymousType"/>
  71. Anonymous,
  72. /// <summary>Intersection of several types</summary>
  73. /// <see cref="IntersectionType"/>
  74. Intersection
  75. }
  76. }