@@ -109,6 +109,7 @@ loadSource lidr f
109 when ok $
109 when ok $
110 idrisCatch (do writeIBC f ibc; clearIBC)
110 idrisCatch (do writeIBC f ibc; clearIBC)
111 (\c -> return ()) -- failure is harmless
111 (\c -> return ()) -- failure is harmless
112 putIState (i { hide_list = [] })
113 putIState (i { hide_list = [] })
113 return ()
114 return ()
@@ -775,9 +776,9 @@ pRecordSet syn
775 applyAll fc ((n, e) : es) x
776 applyAll fc ((n, e) : es) x
776 = applyAll fc es (PApp fc (PRef fc (mkSet n)) [pexp e, pexp x])
777 = applyAll fc es (PApp fc (PRef fc (mkSet n)) [pexp e, pexp x])
778− mkSet (UN n) = UN ("set_" ++ n)
779+mkSet (UN n) = UN ("set_" ++ n)
779− mkSet (MN 0 n) = MN 0 ("set_" ++ n)
780+mkSet (MN 0 n) = MN 0 ("set_" ++ n)
780− mkSet (NS n s) = NS (mkSet n) s
781+mkSet (NS n s) = NS (mkSet n) s
782pTSig syn = do lchar ':'
783pTSig syn = do lchar ':'
783 cs <- pConstList syn
784 cs <- pConstList syn
@@ -958,19 +959,30 @@ accData (Just Frozen) n ns = do addAcc n (Just Frozen)
958accData a n ns = do addAcc n a; mapM_ (\n -> addAcc n a) ns
959accData a n ns = do addAcc n a; mapM_ (\n -> addAcc n a) ns
960pRecord :: SyntaxInfo -> IParser PDecl
961pRecord :: SyntaxInfo -> IParser PDecl
961−pRecord syn = try (do acc <- pAccessibility
962+pRecord syn = do acc <- pAccessibility
962− reserved "record"; fc <- pfc
963+ reserved "record"; fc <- pfc
963− tyn_in <- pfName; ty <- pTSig syn
964+ tyn_in <- pfName; ty <- pTSig syn
964− let tyn = expandNS syn tyn_in
965+ let tyn = expandNS syn tyn_in
965− reserved "where"
966+ reserved "where"
966− open_block
967+ open_block
967− push_indent
968+ push_indent
968− (cn, cty, _) <- pConstructor syn
969+ (cn, cty, _) <- pConstructor syn
969− pKeepTerminator
970+ pKeepTerminator
970− pop_indent
971+ pop_indent
971− close_block
972+ close_block
972− accData acc tyn [cn]
973+ accData acc tyn [cn]
974+ let rsyn = syn { syn_namespace = show (nsroot tyn) :
976+ let fns = getRecNames rsyn cty
977+ mapM_ (\n -> addAcc n (toFreeze acc)) fns
973− return $ PRecord syn fc tyn ty cn cty)
978+ return $ PRecord rsyn fc tyn ty cn cty
980+ getRecNames syn (PPi _ n _ sc) = [expandNS syn n, expandNS syn (mkSet n)]
981+ ++ getRecNames syn sc
982+ getRecNames _ _ = []
984+ toFreeze (Just Frozen) = Just Hidden
975pData :: SyntaxInfo -> IParser PDecl
987pData :: SyntaxInfo -> IParser PDecl
976pData syn = try (do acc <- pAccessibility
988pData syn = try (do acc <- pAccessibility