1- // Copyright (c) Microsoft Corporation. All rights reserved. 
1+  // Copyright (c) Microsoft Corporation. All rights reserved. 
22// Licensed under the MIT license.  
33
44using  System ; 
@@ -810,18 +810,21 @@ private void SerializeTypeProperty(JsonSchemaType? type, IOpenApiWriter writer,
810810                } 
811811                else 
812812                { 
813-                     var  list  =  new  List < JsonSchemaType > ( ) ; 
814-                     foreach  ( JsonSchemaType  flag  in  System . Enum . GetValues ( typeof ( JsonSchemaType ) ) ) 
813+                     if  ( type  is  not null ) 
815814                    { 
816-                         if  ( ( type  &  flag )  ==  flag ) 
815+                         var  list  =  new  List < JsonSchemaType ? > ( ) ; 
816+                         foreach  ( JsonSchemaType  flag  in  System . Enum . GetValues ( typeof ( JsonSchemaType ) ) ) 
817817                        { 
818-                             list . Add ( flag ) ; 
818+                             if  ( type . Value . HasFlag ( flag ) ) 
819+                             { 
820+                                 list . Add ( flag ) ; 
821+                             } 
819822                        } 
820-                      } 
821-                         
822-                     writer . WriteOptionalCollection ( OpenApiConstants . Type ,   list ,   ( w ,   s )   =>   w . WriteValue ( OpenApiTypeMapper . ToIdentifier ( s ) ) ) ; 
823+ 
824+                         writer . WriteOptionalCollection ( OpenApiConstants . Type ,   list ,   ( w ,   s )   =>   w . WriteValue ( s . ToIdentifier ( ) ) ) ; 
825+                     }                      
823826                } 
824-             } 
827+             }   
825828        } 
826829
827830        private  static int  CountEnumSetFlags ( JsonSchemaType ?  schemaType ) 
@@ -834,7 +837,7 @@ private static int CountEnumSetFlags(JsonSchemaType? schemaType)
834837                foreach  ( JsonSchemaType  value  in  System . Enum . GetValues ( typeof ( JsonSchemaType ) ) ) 
835838                { 
836839                    // Ignore the None flag and check if the flag is set 
837-                     if  ( ( schemaType . Value . HasFlag ( value ) ) 
840+                     if  ( schemaType . Value . HasFlag ( value ) ) 
838841                    { 
839842                        count ++ ; 
840843                    } 
@@ -849,12 +852,12 @@ private void UpCastSchemaTypeToV31(JsonSchemaType? type, IOpenApiWriter writer)
849852            // create a new array and insert the type and "null" as values 
850853            Type  =  type  |  JsonSchemaType . Null ; 
851854            var  list  =  new  List < string > ( ) ; 
852-             foreach  ( JsonSchemaType  flag  in  System . Enum . GetValues ( typeof ( JsonSchemaType ) ) ) 
855+             foreach  ( JsonSchemaType ?  flag  in  System . Enum . GetValues ( typeof ( JsonSchemaType ) ) ) 
853856            { 
854857                // Check if the flag is set in 'type' using a bitwise AND operation 
855-                 if  ( ( Type   &   flag )   ==   flag ) 
858+                 if  ( Type . Value . HasFlag ( flag ) ) 
856859                { 
857-                     list . Add ( OpenApiTypeMapper . ToIdentifier ( flag ) ) ; 
860+                     list . Add ( flag . ToIdentifier ( ) ) ; 
858861                } 
859862            } 
860863
@@ -881,18 +884,18 @@ private void DowncastTypeArrayToV2OrV3(JsonSchemaType? schemaType, IOpenApiWrite
881884                } 
882885                else 
883886                { 
884-                     writer . WriteProperty ( OpenApiConstants . Type ,  OpenApiTypeMapper . ToIdentifier ( schemaType ) ) ; 
887+                     writer . WriteProperty ( OpenApiConstants . Type ,  schemaType . ToIdentifier ( ) ) ; 
885888                } 
886889            } 
887890            else  if  ( flagsCount  is  2  &&  ( schemaType  &  JsonSchemaType . Null )  ==  JsonSchemaType . Null )  // checks for two values and one is null 
888891            { 
889-                 foreach  ( JsonSchemaType  flag  in  System . Enum . GetValues ( typeof ( JsonSchemaType ) ) ) 
892+                 foreach  ( JsonSchemaType ?  flag  in  System . Enum . GetValues ( typeof ( JsonSchemaType ) ) ) 
890893                { 
891894                    // Skip if the flag is not set or if it's the Null flag 
892-                     if  ( ( schemaType   &   flag )   ==   flag  &&  flag  !=  JsonSchemaType . Null ) 
895+                     if  ( schemaType . Value . HasFlag ( flag )  &&  flag  !=  JsonSchemaType . Null ) 
893896                    { 
894897                        // Write the non-null flag value to the writer 
895-                         writer . WriteProperty ( OpenApiConstants . Type ,  OpenApiTypeMapper . ToIdentifier ( flag ) ) ; 
898+                         writer . WriteProperty ( OpenApiConstants . Type ,  flag . ToIdentifier ( ) ) ; 
896899                    } 
897900                } 
898901                if  ( ! Nullable ) 
0 commit comments