@@ -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