@@ -158,16 +158,9 @@ nBinary (Ann s1 b) e1@(AnnE s2 _) e2@(AnnE s3 _) =
158158 AnnE (s1 <> s2 <> s3) $ NBinary b e1 e2
159159
160160nSelectLoc
161- :: NExprLoc -> Ann SrcSpan (NAttrPath NExprLoc ) -> Maybe NExprLoc -> NExprLoc
162- nSelectLoc e1@ (AnnE s1 _) (Ann s2 ats) =
163- -- 2021-05-16: NOTE: This could been rewritten into function application of @(s3, pure e2)@
164- -- if @SrcSpan@ was Monoid, which requires @SorcePos@ to be a Monoid, and upstream code prevents it.
165- -- Question upstream: https://github.com/mrkkrp/megaparsec/issues/450
166- maybe
167- ( AnnE s1s2 $ NSelect e1 ats Nothing )
168- (\ e2@ (AnnE s3 _) -> AnnE (s1s2 <> s3) $ NSelect e1 ats $ pure e2)
169- where
170- s1s2 = s1 <> s2
161+ :: Maybe NExprLoc -> NExprLoc -> Ann SrcSpan (NAttrPath NExprLoc ) -> NExprLoc
162+ nSelectLoc Nothing e1@ (AnnE s2 _) (Ann s1 ats) = AnnE (s2 <> s1) $ NSelect Nothing e1 ats
163+ nSelectLoc (Just e2@ (AnnE s3 _)) e1@ (AnnE s2 _) (Ann s1 ats) = AnnE (s3 <> s2 <> s1) $ NSelect (pure e2) e1 ats
171164
172165nHasAttr :: NExprLoc -> Ann SrcSpan (NAttrPath NExprLoc ) -> NExprLoc
173166nHasAttr e1@ (AnnE s1 _) (Ann s2 ats) = AnnE (s1 <> s2) $ NHasAttr e1 ats
@@ -222,8 +215,8 @@ pattern NUnary_ ann op x = AnnFP ann (NUnary op x)
222215pattern NBinary_ :: SrcSpan -> NBinaryOp -> r -> r -> NExprLocF r
223216pattern NBinary_ ann op x y = AnnFP ann (NBinary op x y)
224217
225- pattern NSelect_ :: SrcSpan -> r -> NAttrPath r -> Maybe r -> NExprLocF r
226- pattern NSelect_ ann x p v = AnnFP ann (NSelect x p v )
218+ pattern NSelect_ :: SrcSpan -> Maybe r -> r -> NAttrPath r -> NExprLocF r
219+ pattern NSelect_ ann v x p = AnnFP ann (NSelect v x p)
227220
228221pattern NHasAttr_ :: SrcSpan -> r -> NAttrPath r -> NExprLocF r
229222pattern NHasAttr_ ann x p = AnnFP ann (NHasAttr x p)
0 commit comments