@@ -29,13 +29,14 @@ internal ImmutableArray<ValidatableType> ExtractValidatableTypes(IInvocationOper
2929        List < ITypeSymbol >  visitedTypes  =  [ ] ; 
3030        foreach  ( var  parameter  in  parameters ) 
3131        { 
32-             _  =  TryExtractValidatableType ( parameter . Type . UnwrapType ( wellKnownTypes . Get ( WellKnownTypeData . WellKnownType . System_Collections_IEnumerable ) ) ,  wellKnownTypes ,  ref  validatableTypes ,  ref  visitedTypes ) ; 
32+             _  =  TryExtractValidatableType ( parameter . Type ,  wellKnownTypes ,  ref  validatableTypes ,  ref  visitedTypes ) ; 
3333        } 
3434        return  [ .. validatableTypes ] ; 
3535    } 
3636
37-     internal  bool  TryExtractValidatableType ( ITypeSymbol  typeSymbol ,  WellKnownTypes  wellKnownTypes ,  ref  HashSet < ValidatableType >  validatableTypes ,  ref  List < ITypeSymbol >  visitedTypes ) 
37+     internal  bool  TryExtractValidatableType ( ITypeSymbol  incomingTypeSymbol ,  WellKnownTypes  wellKnownTypes ,  ref  HashSet < ValidatableType >  validatableTypes ,  ref  List < ITypeSymbol >  visitedTypes ) 
3838    { 
39+         var  typeSymbol  =  incomingTypeSymbol . UnwrapType ( wellKnownTypes . Get ( WellKnownTypeData . WellKnownType . System_Collections_IEnumerable ) ) ; 
3940        if  ( typeSymbol . SpecialType  !=  SpecialType . None ) 
4041        { 
4142            return  false ; 
@@ -126,7 +127,7 @@ internal ImmutableArray<ValidatableProperty> ExtractValidatableMembers(ITypeSymb
126127                        // Check if the property's type is validatable, this resolves 
127128                        // validatable types in the inheritance hierarchy 
128129                        var  hasValidatableType  =  TryExtractValidatableType ( 
129-                             correspondingProperty . Type . UnwrapType ( wellKnownTypes . Get ( WellKnownTypeData . WellKnownType . System_Collections_IEnumerable ) ) , 
130+                             correspondingProperty . Type , 
130131                            wellKnownTypes , 
131132                            ref  validatableTypes , 
132133                            ref  visitedTypes ) ; 
@@ -153,7 +154,7 @@ internal ImmutableArray<ValidatableProperty> ExtractValidatableMembers(ITypeSymb
153154                continue ; 
154155            } 
155156
156-             var  hasValidatableType  =  TryExtractValidatableType ( member . Type . UnwrapType ( wellKnownTypes . Get ( WellKnownTypeData . WellKnownType . System_Collections_IEnumerable ) ) ,  wellKnownTypes ,  ref  validatableTypes ,  ref  visitedTypes ) ; 
157+             var  hasValidatableType  =  TryExtractValidatableType ( member . Type ,  wellKnownTypes ,  ref  validatableTypes ,  ref  visitedTypes ) ; 
157158            var  attributes  =  ExtractValidationAttributes ( member ,  wellKnownTypes ,  out  var  isRequired ) ; 
158159
159160            // If the member has no validation attributes or validatable types and is not required, skip it. 
0 commit comments