Browse Source

Added TypeParameters property to IType (for consistency with the

IMethod interface & makes usage easier).
pull/32/merge
Mike Krüger 13 years ago
parent
commit
74e7818473
  1. 6
      ICSharpCode.NRefactory/TypeSystem/IType.cs
  2. 5
      ICSharpCode.NRefactory/TypeSystem/Implementation/AbstractResolvedTypeParameter.cs
  3. 5
      ICSharpCode.NRefactory/TypeSystem/Implementation/AbstractType.cs
  4. 6
      ICSharpCode.NRefactory/TypeSystem/ParameterizedType.cs

6
ICSharpCode.NRefactory/TypeSystem/IType.cs

@ -82,6 +82,12 @@ namespace ICSharpCode.NRefactory.TypeSystem @@ -82,6 +82,12 @@ namespace ICSharpCode.NRefactory.TypeSystem
/// </summary>
int TypeParameterCount { get; }
/// <summary>
/// If the type has type parameters it's the same as GetDefinition ().TypeParameters otherwise it returns an empty list.
/// NOTE: The type will change to IReadOnlyList<ITypeParameter> in future versions.
/// </summary>
IList<ITypeParameter> TypeParameters { get; }
/// <summary>
/// Gets the type arguments passed to this type.
/// If only the type parameters for the class were specified and the generic type

5
ICSharpCode.NRefactory/TypeSystem/Implementation/AbstractResolvedTypeParameter.cs

@ -207,6 +207,11 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation @@ -207,6 +207,11 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation
get { return 0; }
}
readonly static IList<ITypeParameter> emptyTypeParameters = new ITypeParameter[0];
IList<ITypeParameter> IType.TypeParameters {
get { return emptyTypeParameters; }
}
readonly static IList<IType> emptyTypeArguments = new IType[0];
IList<IType> IType.TypeArguments {
get { return emptyTypeArguments; }

5
ICSharpCode.NRefactory/TypeSystem/Implementation/AbstractType.cs

@ -59,6 +59,11 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation @@ -59,6 +59,11 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation
get { return 0; }
}
readonly static IList<ITypeParameter> emptyTypeParameters = new ITypeParameter[0];
public virtual IList<ITypeParameter> TypeParameters {
get { return emptyTypeParameters; }
}
readonly static IList<IType> emptyTypeArguments = new IType[0];
IList<IType> IType.TypeArguments {
get { return emptyTypeArguments; }

6
ICSharpCode.NRefactory/TypeSystem/ParameterizedType.cs

@ -103,7 +103,11 @@ namespace ICSharpCode.NRefactory.TypeSystem @@ -103,7 +103,11 @@ namespace ICSharpCode.NRefactory.TypeSystem
public int TypeParameterCount {
get { return typeArguments.Length; }
}
public IList<ITypeParameter> TypeParameters {
get { return genericType.TypeParameters; }
}
public string FullName {
get { return genericType.FullName; }
}

Loading…
Cancel
Save