Merge branch 'master' into type-nats
[ghc.git] / compiler / parser / Lexer.x
index 2b43f19..c7b011c 100644 (file)
@@ -661,7 +661,7 @@ reservedWordsFM = listToUFM $
        ( "export",     ITexport,        bit ffiBit),
        ( "label",      ITlabel,         bit ffiBit),
        ( "dynamic",    ITdynamic,       bit ffiBit),
-       ( "safe",       ITsafe,          bit ffiBit),
+       ( "safe",       ITsafe,          bit ffiBit .|. bit safeHaskellBit),
        ( "threadsafe", ITthreadsafe,    bit ffiBit),  -- ToDo: remove
        ( "interruptible", ITinterruptible, bit ffiBit),
        ( "unsafe",     ITunsafe,        bit ffiBit),
@@ -1807,8 +1807,10 @@ relaxedLayoutBit :: Int
 relaxedLayoutBit = 24
 nondecreasingIndentationBit :: Int
 nondecreasingIndentationBit = 25
+safeHaskellBit :: Int
+safeHaskellBit = 26
 typeNaturalsBit :: Int
-typeNaturalsBit = 26
+typeNaturalsBit = 27
 
 always :: Int -> Bool
 always           _     = True
@@ -1906,6 +1908,7 @@ mkPState flags buf loc =
                .|. alternativeLayoutRuleBit `setBitIf` xopt Opt_AlternativeLayoutRule flags
                .|. relaxedLayoutBit  `setBitIf` xopt Opt_RelaxedLayout flags
                .|. nondecreasingIndentationBit `setBitIf` xopt Opt_NondecreasingIndentation flags
+               .|. safeHaskellBit    `setBitIf` safeHaskellOn flags
                .|. typeNaturalsBit `setBitIf` xopt Opt_TypeNaturals flags
       --
       setBitIf :: Int -> Bool -> Int