@@ -1511,20 +1511,20 @@ object JsonCodec {
15111511 fieldDecoders : Array [ZJsonDecoder [_]],
15121512 spans : Array [JsonError .ObjectAccess ],
15131513 stringMatrix : StringMatrix ,
1514- hasDiscriminator : Boolean ,
1514+ noDiscriminator : Boolean ,
15151515 skipExtraFields : Boolean
15161516 ) {
15171517
15181518 def unsafeDecodeFields (trace : List [JsonError ], in : RetractReader ): Array [Any ] = {
1519- if (! hasDiscriminator ) Lexer .char(trace, in, '{' )
1519+ if (noDiscriminator ) Lexer .char(trace, in, '{' )
15201520 var continue = Lexer .firstField(trace, in)
15211521 val len = fields.length
15221522 val buffer = new Array [Any ](len)
15231523 while (continue) {
15241524 val idx = Lexer .field(trace, in, stringMatrix)
15251525 if (idx >= 0 ) {
15261526 val trace_ = spans(idx) :: trace
1527- if (idx == len && hasDiscriminator ) Lexer .skipValue(trace_, in)
1527+ if (idx == len) Lexer .skipValue(trace_, in) // skipping discriminator field values
15281528 else if (buffer(idx) == null ) buffer(idx) = fieldDecoders(idx).unsafeDecode(trace_, in)
15291529 else error(" duplicate" , trace_)
15301530 } else if (skipExtraFields) Lexer .skipValue(trace, in)
@@ -1592,7 +1592,7 @@ object JsonCodec {
15921592 decoders,
15931593 spans.result(),
15941594 new StringMatrix (names.result(), aliases.result()),
1595- hasDiscriminator,
1595+ ! hasDiscriminator,
15961596 ! schema.annotations.exists(_.isInstanceOf [rejectExtraFields])
15971597 )
15981598 }
0 commit comments