@@ -89,30 +89,28 @@ public static class OpenApiSchemaRules
89
89
/// between other schemas which may satisfy the payload description.</param>
90
90
public static bool ValidateChildSchemaAgainstDiscriminator ( OpenApiSchema schema , string discriminatorName )
91
91
{
92
- bool containsDiscriminator = false ;
93
-
94
92
if ( ! schema . Required ? . Contains ( discriminatorName ) ?? false )
95
93
{
96
94
// recursively check nested schema.OneOf, schema.AnyOf or schema.AllOf and their required fields for the discriminator
97
95
if ( schema . OneOf . Count != 0 )
98
96
{
99
- return TraverseSchemaElements ( discriminatorName , schema . OneOf , ref containsDiscriminator ) ;
97
+ return TraverseSchemaElements ( discriminatorName , schema . OneOf ) ;
100
98
}
101
99
if ( schema . AnyOf . Count != 0 )
102
100
{
103
- return TraverseSchemaElements ( discriminatorName , schema . AnyOf , ref containsDiscriminator ) ;
101
+ return TraverseSchemaElements ( discriminatorName , schema . AnyOf ) ;
104
102
}
105
103
if ( schema . AllOf . Count != 0 )
106
104
{
107
- return TraverseSchemaElements ( discriminatorName , schema . AllOf , ref containsDiscriminator ) ;
105
+ return TraverseSchemaElements ( discriminatorName , schema . AllOf ) ;
108
106
}
109
107
}
110
108
else
111
109
{
112
110
return true ;
113
111
}
114
112
115
- return containsDiscriminator ;
113
+ return false ;
116
114
}
117
115
118
116
/// <summary>
@@ -121,9 +119,8 @@ public static bool ValidateChildSchemaAgainstDiscriminator(OpenApiSchema schema,
121
119
/// <param name="discriminatorName">Adds support for polymorphism. The discriminator is an object name that is used to differentiate
122
120
/// between other schemas which may satisfy the payload description.</param>
123
121
/// <param name="childSchema">The child schema.</param>
124
- /// <param name="containsDiscriminator">Tracks whether the discriminator is present.</param>
125
122
/// <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 )
127
124
{
128
125
foreach ( var childItem in childSchema )
129
126
{
@@ -134,11 +131,11 @@ public static bool TraverseSchemaElements(string discriminatorName, IList<OpenAp
134
131
}
135
132
else
136
133
{
137
- return containsDiscriminator = true ;
134
+ return true ;
138
135
}
139
136
}
140
137
141
- return containsDiscriminator ;
138
+ return false ;
142
139
}
143
140
}
144
141
}
0 commit comments