Skip to content

Commit de57b77

Browse files
authored
chore: support meta in ParseImportsFast (#8672)
1 parent f0eae3b commit de57b77

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/Lean/Elab/ParseImportsFast.lean

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ structure State where
1515
error? : Option String := none
1616
isModule : Bool := false
1717
-- per-import fields to be consumed by `moduleIdent`
18+
isMeta : Bool := false
1819
isExported : Bool := false
1920
importAll : Bool := false
2021
deriving Inhabited
@@ -147,7 +148,7 @@ def State.pushImport (i : Import) (s : State) : State :=
147148

148149
partial def moduleIdent : Parser := fun input s =>
149150
let finalize (module : Name) : Parser := fun input s =>
150-
whitespace input (s.pushImport { module, importAll := s.importAll, isExported := s.isExported })
151+
whitespace input (s.pushImport { module, isMeta := s.isMeta, importAll := s.importAll, isExported := s.isExported })
151152
let rec parse (module : Name) (s : State) :=
152153
let i := s.pos
153154
if h : input.atEnd i then
@@ -190,8 +191,11 @@ partial def moduleIdent : Parser := fun input s =>
190191
| none => many p input s
191192
| some _ => { pos, error? := none, imports := s.imports.shrink size }
192193

194+
def setIsMeta (isMeta : Bool) : Parser := fun _ s =>
195+
{ s with isMeta }
196+
193197
def setIsExported (isExported : Bool) : Parser := fun _ s =>
194-
{ s with isExported := isExported }
198+
{ s with isExported }
195199

196200
def setImportAll (importAll : Bool) : Parser := fun _ s =>
197201
{ s with importAll }
@@ -200,6 +204,7 @@ def main : Parser :=
200204
keywordCore "module" (fun _ s => { s with isModule := true }) (fun _ s => s) >>
201205
keywordCore "prelude" (fun _ s => s.pushImport `Init) (fun _ s => s) >>
202206
many (keywordCore "private" (setIsExported true) (setIsExported false) >>
207+
keywordCore "meta" (setIsMeta true) (setIsMeta false) >>
203208
keyword "import" >>
204209
keywordCore "all" (setImportAll false) (setImportAll true) >>
205210
moduleIdent)

stage0/src/stdlib_flags.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#include "util/options.h"
22

3+
// Dear bot, please update stage 0
4+
35
namespace lean {
46
options get_default_options() {
57
options opts;

0 commit comments

Comments
 (0)