@@ -1440,28 +1440,18 @@ instance ( RecordFromJSON' arity a
1440
1440
{-# INLINE recordParseJSON' #-}
1441
1441
1442
1442
instance (Selector s , GFromJSON arity a , GOmitFromJSON arity a ) => RecordFromJSON' arity (S1 s a ) where
1443
- recordParseJSON' args@ (_ :* _ :* opts :* fargs) obj =
1444
- recordParseJSONImpl (guard (allowOmittedFields opts) >> gOmittedField fargs) gParseJSON args obj
1445
- {-# INLINE recordParseJSON' #-}
1446
-
1447
-
1448
- recordParseJSONImpl :: forall s arity a f i
1449
- . (Selector s )
1450
- => Maybe (f a )
1451
- -> (Options -> FromArgs arity a -> Value -> Parser (f a ))
1452
- -> (ConName :* TypeName :* Options :* FromArgs arity a )
1453
- -> Object -> Parser (M1 i s f a )
1454
- recordParseJSONImpl mdef parseVal (cname :* tname :* opts :* fargs) obj =
1455
- handleMissingKey (M1 <$> mdef) $ do
1456
- fv <- contextCons cname tname (obj .: label)
1457
- M1 <$> parseVal opts fargs fv <?> Key label
1458
- where
1459
- handleMissingKey Nothing p = p
1460
- handleMissingKey (Just def) p = if label `KM.member` obj then p else pure def
1443
+ recordParseJSON' (cname :* tname :* opts :* fargs) obj =
1444
+ handleMissingKey (M1 <$> mdef) $ do
1445
+ fv <- contextCons cname tname (obj .: label)
1446
+ M1 <$> gParseJSON opts fargs fv <?> Key label
1447
+ where
1448
+ handleMissingKey Nothing p = p
1449
+ handleMissingKey (Just def) p = if label `KM.member` obj then p else pure def
1461
1450
1462
- label = Key. fromString $ fieldLabelModifier opts sname
1463
- sname = selName (undefined :: M1 _i s _f _p )
1464
- {-# INLINE recordParseJSONImpl #-}
1451
+ label = Key. fromString $ fieldLabelModifier opts sname
1452
+ sname = selName (undefined :: M1 _i s _f _p )
1453
+ mdef = guard (allowOmittedFields opts) >> gOmittedField fargs
1454
+ {-# INLINE recordParseJSON' #-}
1465
1455
1466
1456
--------------------------------------------------------------------------------
1467
1457
0 commit comments