@@ -89,30 +89,28 @@ public static class OpenApiSchemaRules
8989 /// between other schemas which may satisfy the payload description.</param>
9090 public static bool ValidateChildSchemaAgainstDiscriminator ( OpenApiSchema schema , string discriminatorName )
9191 {
92- bool containsDiscriminator = false ;
93-
9492 if ( ! schema . Required ? . Contains ( discriminatorName ) ?? false )
9593 {
9694 // recursively check nested schema.OneOf, schema.AnyOf or schema.AllOf and their required fields for the discriminator
9795 if ( schema . OneOf . Count != 0 )
9896 {
99- return TraverseSchemaElements ( discriminatorName , schema . OneOf , ref containsDiscriminator ) ;
97+ return TraverseSchemaElements ( discriminatorName , schema . OneOf ) ;
10098 }
10199 if ( schema . AnyOf . Count != 0 )
102100 {
103- return TraverseSchemaElements ( discriminatorName , schema . AnyOf , ref containsDiscriminator ) ;
101+ return TraverseSchemaElements ( discriminatorName , schema . AnyOf ) ;
104102 }
105103 if ( schema . AllOf . Count != 0 )
106104 {
107- return TraverseSchemaElements ( discriminatorName , schema . AllOf , ref containsDiscriminator ) ;
105+ return TraverseSchemaElements ( discriminatorName , schema . AllOf ) ;
108106 }
109107 }
110108 else
111109 {
112110 return true ;
113111 }
114112
115- return containsDiscriminator ;
113+ return false ;
116114 }
117115
118116 /// <summary>
@@ -121,9 +119,8 @@ public static bool ValidateChildSchemaAgainstDiscriminator(OpenApiSchema schema,
121119 /// <param name="discriminatorName">Adds support for polymorphism. The discriminator is an object name that is used to differentiate
122120 /// between other schemas which may satisfy the payload description.</param>
123121 /// <param name="childSchema">The child schema.</param>
124- /// <param name="containsDiscriminator">Tracks whether the discriminator is present.</param>
125122 /// <returns></returns>
126- public static bool TraverseSchemaElements ( string discriminatorName , IList < OpenApiSchema > childSchema , ref bool containsDiscriminator )
123+ public static bool TraverseSchemaElements ( string discriminatorName , IList < OpenApiSchema > childSchema )
127124 {
128125 foreach ( var childItem in childSchema )
129126 {
@@ -134,11 +131,11 @@ public static bool TraverseSchemaElements(string discriminatorName, IList<OpenAp
134131 }
135132 else
136133 {
137- return containsDiscriminator = true ;
134+ return true ;
138135 }
139136 }
140137
141- return containsDiscriminator ;
138+ return false ;
142139 }
143140 }
144141}
0 commit comments