on master help sign in
Fix export rules for records

"export" should only export the record and not the field accessors. "public export" should export the field accessors. Fixes #2623

commit400cc8a582c15e5b0d0c38ea1abbdf625fae9e36 authorEdwin Brady <ecb10@st-andrews.ac.uk> dateFri 29 Jan 2016, 22:58 (11 years ago) parent228f56c
1 file changed+5−1
src/Idris/ParseData.hs+5−1
src/Idris/ParseData.hs+5−1
@@ -59,8 +59,9 @@ record syn = do (doc, paramDocs, acc, opts) <- try (do
5959 syn_namespace syn }
6060 params <- manyTill (recordParameter rsyn) (reservedHL "where")
6161 (fields, cname, cdoc) <- indentedBlockS $ recordBody rsyn tyn
62+ let fnames = map (expandNS rsyn) (mapMaybe getName fields)
6263 case cname of
63− Just cn' -> accData acc tyn [fst cn']
64+ Just cn' -> accData acc tyn (fst cn' : fnames)
6465 Nothing -> return ()
6566 return $ PRecord doc rsyn fc opts tyn nfc params paramDocs fields cname cdoc syn
6667 <?> "record type declaration"
@@ -70,6 +71,9 @@ record syn = do (doc, paramDocs, acc, opts) <- try (do
7071 ++ getRecNames syn sc
7172 getRecNames _ _ = []
7273
74+ getName (Just (n, _), _, _, _) = Just n
75+ getName _ = Nothing
76+
7377 toFreeze :: Maybe Accessibility -> Maybe Accessibility
7478 toFreeze (Just Frozen) = Just Hidden
7579 toFreeze x = x