From 500bfa349ea782011b26546d98b1b9888adcb731 Mon Sep 17 00:00:00 2001 From: VegOwOtenks Date: Wed, 20 Aug 2025 19:50:06 +0200 Subject: [PATCH] fix[PrettySerialize]: Optic changes --- 3rdparty/pretty-parse | 2 +- src/Language/Java/Classfile.hs | 3 ++- src/Language/Java/Classfile/Flags.hs | 8 +++----- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/3rdparty/pretty-parse b/3rdparty/pretty-parse index 93473c9..a7bff63 160000 --- a/3rdparty/pretty-parse +++ b/3rdparty/pretty-parse @@ -1 +1 @@ -Subproject commit 93473c9ac69c20053d9fbe1b8a0ee199980cc435 +Subproject commit a7bff630fc3e5e140274fb65d6b88b46e7a086eb diff --git a/src/Language/Java/Classfile.hs b/src/Language/Java/Classfile.hs index ae5b1c1..7f1c727 100644 --- a/src/Language/Java/Classfile.hs +++ b/src/Language/Java/Classfile.hs @@ -11,6 +11,7 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE InstanceSigs #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Language.Java.Classfile (Classfile(..)) where import GHC.Generics (Generic, Generically(Generically)) @@ -59,7 +60,7 @@ data family ClassFlags stage newtype instance ClassFlags Parse = ClassFlags (Flags ClassFlag) deriving stock (Show, Generic) deriving Extractable via Generically (ClassFlags Parse) - deriving PrettySerialize via Generically (ClassFlags Parse) + deriving newtype PrettySerialize data ClassFlag = Public -- ^ may be accessed from outside the package diff --git a/src/Language/Java/Classfile/Flags.hs b/src/Language/Java/Classfile/Flags.hs index c067a82..31c2213 100644 --- a/src/Language/Java/Classfile/Flags.hs +++ b/src/Language/Java/Classfile/Flags.hs @@ -7,9 +7,8 @@ {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DefaultSignatures #-} -{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingVia #-} -{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Language.Java.Classfile.Flags (Flags(..), FlagMask(..), containsFlag) where @@ -24,14 +23,13 @@ import Language.Java.Classfile.Extractable (Extractable (extract)) import Data.Kind (Type) import Control.Arrow ((>>>)) import qualified Data.List as List -import GHC.Generics (Generic, Generically(..)) import Pretty.Serialize (PrettySerialize) -- | Using the 'FlagMask' instance of the type parameter, this will extract all the flags whose mask produced a non-zero value using '.&.' newtype Flags a = Flags (Set a) - deriving (Show, Generic) -deriving via Generically (Flags a) instance (PrettySerialize (Set a)) => PrettySerialize (Flags a) + deriving (Show) + deriving newtype PrettySerialize instance (Extractable (FlagType a), Bounded a, Enum a, Ord a, FlagMask a, Bits (FlagType a), Num (FlagType a)) => Extractable (Flags a) where extract :: Extract (Flags a)