Skip to content

Commit 59ce67b

Browse files
committed
fix for: Problem with Generic types #3
1 parent 64f56d0 commit 59ce67b

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

src/NetArchTest.Rules/Dependencies/TypeDefinitionCheckingContext.cs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -260,27 +260,30 @@ private void CheckMethodBodyInstructions(MethodDefinition methodToCheck)
260260
/// </example>
261261
/// </summary>
262262
private void CheckTypeReference(TypeReference reference)
263-
{
264-
if (reference.IsGenericParameter == false)
263+
{
264+
if (reference.IsGenericParameter == true) return;
265+
266+
if ((reference.IsArray) || (reference.IsPointer) || (reference.IsByReference))
267+
{
268+
var referenceAsTypeSpecification = reference as TypeSpecification;
269+
if (referenceAsTypeSpecification.ElementType?.IsGenericParameter == true) return;
270+
271+
CheckTypeReference(referenceAsTypeSpecification.ElementType);
272+
}
273+
274+
CheckDependency(reference);
275+
276+
if (reference.IsGenericInstance == true)
265277
{
266-
CheckDependency(reference);
267-
if (reference.IsGenericInstance == true)
278+
var referenceAsGenericInstance = reference as GenericInstanceType;
279+
if (referenceAsGenericInstance.HasGenericArguments)
268280
{
269-
var referenceAsGenericInstance = reference as GenericInstanceType;
270-
if (referenceAsGenericInstance.HasGenericArguments)
281+
foreach (var genericArgument in referenceAsGenericInstance.GenericArguments)
271282
{
272-
foreach (var genericArgument in referenceAsGenericInstance.GenericArguments)
273-
{
274-
CheckTypeReference(genericArgument);
275-
}
283+
CheckTypeReference(genericArgument);
276284
}
277285
}
278-
if ((reference.IsArray) || (reference.IsPointer) || (reference.IsByReference))
279-
{
280-
var referenceAsTypeSpecification = reference as TypeSpecification;
281-
CheckTypeReference(referenceAsTypeSpecification.ElementType);
282-
}
283-
}
286+
}
284287
}
285288
private void CheckDependency(TypeReference dependency)
286289
{

0 commit comments

Comments
 (0)