on master help sign in
Fix export rules for records
400cc8aEdwin Brady
src/Idris/ParseData.hs+5−1
@@ -59,8 +59,9 @@ record syn = do (doc, paramDocs, acc, opts) <- try (do
59 syn_namespace syn }
59 syn_namespace syn }
60 params <- manyTill (recordParameter rsyn) (reservedHL "where")
60 params <- manyTill (recordParameter rsyn) (reservedHL "where")
61 (fields, cname, cdoc) <- indentedBlockS $ recordBody rsyn tyn
61 (fields, cname, cdoc) <- indentedBlockS $ recordBody rsyn tyn
62+ let fnames = map (expandNS rsyn) (mapMaybe getName fields)
62 case cname of
63 case cname of
63− Just cn' -> accData acc tyn [fst cn']
64+ Just cn' -> accData acc tyn (fst cn' : fnames)
64 Nothing -> return ()
65 Nothing -> return ()
65 return $ PRecord doc rsyn fc opts tyn nfc params paramDocs fields cname cdoc syn
66 return $ PRecord doc rsyn fc opts tyn nfc params paramDocs fields cname cdoc syn
66 <?> "record type declaration"
67 <?> "record type declaration"
@@ -70,6 +71,9 @@ record syn = do (doc, paramDocs, acc, opts) <- try (do
70 ++ getRecNames syn sc
71 ++ getRecNames syn sc
71 getRecNames _ _ = []
72 getRecNames _ _ = []
72
73
74+ getName (Just (n, _), _, _, _) = Just n
75+ getName _ = Nothing
76+
73 toFreeze :: Maybe Accessibility -> Maybe Accessibility
77 toFreeze :: Maybe Accessibility -> Maybe Accessibility
74 toFreeze (Just Frozen) = Just Hidden
78 toFreeze (Just Frozen) = Just Hidden
75 toFreeze x = x
79 toFreeze x = x