@@ -157,11 +157,21 @@ DefaultEliminator ::= 'noelim'?
158dataOpts :: DataOpts -> IdrisParser DataOpts
158dataOpts :: DataOpts -> IdrisParser DataOpts
159dataOpts opts
159dataOpts opts
160+ = do fc <- reservedFC "%elim"
160− = do reserved "%elim"; dataOpts (DefaultEliminator : DefaultCaseFun : opts)
162+ dataOpts (DefaultEliminator : DefaultCaseFun : opts)
163+ <|> do fc <- reservedFC "%case"
161− <|> do reserved "%case"; dataOpts (DefaultCaseFun : opts)
165+ dataOpts (DefaultCaseFun : opts)
162 <|> do reserved "%error_reverse"; dataOpts (DataErrRev : opts)
166 <|> do reserved "%error_reverse"; dataOpts (DataErrRev : opts)
163 <|> return opts
167 <|> return opts
164 <?> "data options"
168 <?> "data options"
171+ let cmdline = opt_cmdline (idris_options ist)
172+ unless (NoElimDeprecationWarnings `elem` cmdline) $
173+ put ist { parserWarnings =
174+ (fc, Msg "Eliminator generation is deprecated. Use an eliminator generator in a library instead.") : parserWarnings ist }
166{- | Parses a data type declaration
176{- | Parses a data type declaration
167Data ::= DocComment? Accessibility? DataI DefaultEliminator FnName TypeSig ExplicitTypeDataRest?
177Data ::= DocComment? Accessibility? DataI DefaultEliminator FnName TypeSig ExplicitTypeDataRest?