chore: update stage0

This commit is contained in:
Leonardo de Moura 2020-01-12 10:57:08 -08:00
parent 2e5f62d44f
commit 6c9d408799
22 changed files with 9523 additions and 7277 deletions

View file

@ -81,14 +81,19 @@ adaptExpander $ fun stx => match_syntax stx with
@[termElab «parser!»] def elabParserMacro : TermElab :=
adaptExpander $ fun stx => match_syntax stx with
| `(parser! $e) => do
declName? ← getDeclName?;
match declName? with
| some declName@(Name.str _ s _) => do
some declName ← getDeclName?
| throwError stx "invalid `parser!` macro, it must be used in definitions";
match extractMacroScopes declName with
| (Name.str _ s _, scps) => do
let kind := quote declName;
let s := quote s;
-- TODO simplify the following quotation as soon as we have coercions and autoparams
`(HasOrelse.orelse (Lean.Parser.mkAntiquot $s (some $kind) true) (Lean.Parser.leadingNode $kind $e))
| none => throwError stx "invalid `parser!` macro, it must be used in definitions"
p ← `(Lean.Parser.leadingNode $kind $e);
if scps == [] then
-- TODO simplify the following quotation as soon as we have coercions
`(HasOrelse.orelse (Lean.Parser.mkAntiquot $s (some $kind)) $p)
else
-- if the parser decl is hidden by hygiene, it doesn't make sense to provide an antiquotation kind
`(HasOrelse.orelse (Lean.Parser.mkAntiquot $s none) $p)
| _ => throwError stx "invalid `parser!` macro, unexpected declaration name"
| _ => throwUnsupportedSyntax

View file

@ -127,6 +127,17 @@ msgData ← addMacroStack msgData;
msg ← mkMessage msgData MessageSeverity.error ref;
throw (Exception.error msg)
def logTrace (cls : Name) (ref : Syntax) (msg : MessageData) : CommandElabM Unit := do
msg ← addContext $ MessageData.tagged cls msg;
logInfo ref msg
@[inline] def trace (cls : Name) (ref : Syntax) (msg : Unit → MessageData) : CommandElabM Unit := do
opts ← getOptions;
when (checkTraceOption opts cls) $ logTrace cls ref (msg ())
def throwUnsupportedSyntax {α} : CommandElabM α :=
throw Elab.Exception.unsupportedSyntax
protected def getCurrMacroScope : CommandElabM Nat := do
ctx ← read;
pure ctx.currMacroScope
@ -196,9 +207,10 @@ private def elabCommandUsing (stx : Syntax) : List CommandElab → CommandElabM
| Exception.error _ => throw ex
| Exception.unsupportedSyntax => elabCommandUsing elabFns)
def elabCommand (stx : Syntax) : CommandElabM Unit :=
withIncRecDepth stx $ match stx with
def elabCommandAux (stx : Syntax) : CommandElabM Unit :=
withIncRecDepth stx $ withFreshMacroScope $ match stx with
| Syntax.node _ _ => do
trace `Elab.step stx $ fun _ => stx;
s ← get;
let table := (commandElabAttribute.ext.getState s.env).table;
let k := stx.getKind;
@ -207,6 +219,14 @@ withIncRecDepth stx $ match stx with
| none => throwError stx ("command '" ++ toString k ++ "' has not been implemented")
| _ => throwError stx "unexpected command"
def elabCommand (stx : Syntax) : CommandElabM Unit :=
if stx.getKind == nullKind then
-- list of commands => elaborate in order
-- The parser will only ever return a single command at a time, but syntax quotations can return multiple ones
stx.getArgs.forM elabCommandAux
else
elabCommandAux stx
/- Elaborate `x` with `stx` on the macro stack -/
@[inline] def withMacroExpansion {α} (stx : Syntax) (x : CommandElabM α) : CommandElabM α :=
adaptReader (fun (ctx : Context) => { macroStack := stx :: ctx.macroStack, .. ctx }) x
@ -578,10 +598,16 @@ levelNames ←
savedLevelNames
};
let ref := declId;
-- extract (optional) namespace part of id, after decoding macro scopes that would interfere with the check
let (id, scps) := extractMacroScopes id;
match id with
| Name.str pre s _ => withNamespace ref pre $ do
modifyScope $ fun scope => { levelNames := levelNames, .. scope };
finally (f (mkNameSimple s)) (modifyScope $ fun scope => { levelNames := savedLevelNames, .. scope })
| Name.str pre s _ =>
/- Add back macro scopes. We assume a declaration like `def a.b[1,2] ...` with macro scopes `[1,2]`
is always meant to mean `namespace a def b[1,2] ...`. -/
let id := addMacroScopes (mkNameSimple s) scps;
withNamespace ref pre $ do
modifyScope $ fun scope => { levelNames := levelNames, .. scope };
finally (f id) (modifyScope $ fun scope => { levelNames := savedLevelNames, .. scope })
| _ => throwError ref "invalid declaration name"
/--

View file

@ -75,10 +75,10 @@ def antiquotKind? : Syntax → Option SyntaxNodeKind
def isAntiquotSplice (stx : Syntax) : Bool :=
isAntiquot stx && (stx.getArg 3).getOptional?.isSome
-- If an antiquotation splice is the sole item of a `many` node, its result should
-- be substituted for the `many` node
-- If any item of a `many` node is an antiquotation splice, its result should
-- be substituted into the `many` node's children
def isAntiquotSplicePat (stx : Syntax) : Bool :=
stx.isOfKind nullKind && stx.getArgs.size == 1 && isAntiquotSplice (stx.getArg 0)
stx.isOfKind nullKind && stx.getArgs.any isAntiquotSplice
/-- A term like `($e) is actually ambiguous: the antiquotation could be of kind `term`,
or `ident`, or ... . But it shouldn't really matter because antiquotations without
@ -112,14 +112,17 @@ private partial def quoteSyntax : Syntax → TermElabM Syntax
-- splices must occur in a `many` node
if isAntiquotSplice stx then throwError stx "unexpected antiquotation splice"
else pure $ stx.getArg 1
else if isAntiquotSplicePat stx then
-- top-level antiquotation splice pattern: inject args array
let quoted := (args.get! 0).getArg 1;
`(Syntax.node nullKind $quoted)
else do
let k := quote k;
args ← quote <$> args.mapM quoteSyntax;
`(Syntax.node $k $args)
empty ← `(Array.empty);
args ← args.foldlM (fun args arg =>
if k == nullKind && isAntiquotSplice arg then
-- antiquotation splice pattern: inject args array
let arg := arg.getArg 1;
`(Array.append $args $arg)
else do
arg ← quoteSyntax arg;
`(Array.push $args $arg)) empty;
`(Syntax.node $(quote k) $args)
| Syntax.atom info val =>
`(Syntax.atom none $(quote val))
| Syntax.missing => unreachable!
@ -151,9 +154,7 @@ stx ← quoteSyntax (elimAntiquotChoices quoted);
by an unhygienic prototype implementation. -/
@[builtinTermElab stxQuot] def elabStxQuot : TermElab :=
fun stx expectedType? => do
stx ← stxQuot.expand (stx.getArg 1);
elabTerm stx expectedType?
adaptExpander stxQuot.expand
/- match_syntax -/
@ -221,10 +222,11 @@ else if pat.isOfKind `Lean.Parser.Term.stxQuot then
else if anti.isOfKind `Lean.Parser.Term.id then { kind := kind, rhsFn := fun rhs => `(let $anti:id := discr; $rhs) }
else unconditional $ fun _ => throwError anti ("match_syntax: antiquotation must be variable " ++ toString anti)
| _ =>
-- quotation is a single antiquotation splice => bind args array
if isAntiquotSplicePat quoted then
if isAntiquotSplicePat quoted && quoted.getArgs.size == 1 then
-- quotation is a single antiquotation splice => bind args array
let anti := (quoted.getArg 0).getArg 1;
unconditional $ fun rhs => `(let $anti:term := Syntax.getArgs discr; $rhs)
-- TODO: support for more complex antiquotation splices
else
-- not an antiquotation: match head shape
let argPats := quoted.getArgs.map $ fun arg => Syntax.node `Lean.Parser.Term.stxQuot #[mkAtom "`(", arg, mkAtom ")"];
@ -271,10 +273,10 @@ private partial def compileStxMatch (ref : Syntax) : List Syntax → List Alt
cond ← match info.argPats with
| some pats => `(Syntax.isOfKind discr $(quote kind) && Array.size (Syntax.getArgs discr) == $(quote pats.size))
| none => `(Syntax.isOfKind discr $(quote kind));
`(let discr := $discr; if $cond then $yes else $no)
`(let discr := $discr; if coe $cond then $yes else $no)
| _, _ => unreachable!
private partial def getAntiquotVarsAux : Syntax → TermElabM (List Syntax)
private partial def getPatternVarsAux : Syntax → TermElabM (List Syntax)
| stx@(Syntax.node k args) => do
if isAntiquot stx then
let anti := args.get! 1;
@ -284,14 +286,16 @@ private partial def getAntiquotVarsAux : Syntax → TermElabM (List Syntax)
if anti.isOfKind `Lean.Parser.Term.id then pure [anti]
else throwError anti ("match_syntax: antiquotation must be variable " ++ toString anti)
else
List.join <$> args.toList.mapM getAntiquotVarsAux
List.join <$> args.toList.mapM getPatternVarsAux
| _ => pure []
-- Get all antiquotations (as Term.id nodes) in `stx`
private partial def getAntiquotVars (stx : Syntax) : TermElabM (List Syntax) :=
-- Get all pattern vars (as Term.id nodes) in `stx`
private partial def getPatternVars (stx : Syntax) : TermElabM (List Syntax) :=
if stx.isOfKind `Lean.Parser.Term.stxQuot then do
let quoted := stx.getArg 1;
getAntiquotVarsAux stx
getPatternVarsAux stx
else if stx.isOfKind `Lean.Parser.Term.id then
pure [stx]
else pure []
-- Transform alternatives by binding all right-hand sides to outside the match_syntax in order to prevent
@ -299,7 +303,7 @@ else pure []
private def letBindRhss (cont : List Alt → TermElabM Syntax) : List Alt → List Alt → TermElabM Syntax
| [], altsRev' => cont altsRev'.reverse
| (pats, rhs)::alts, altsRev' => do
vars ← List.join <$> pats.mapM getAntiquotVars;
vars ← List.join <$> pats.mapM getPatternVars;
match vars with
-- no antiquotations => introduce Unit parameter to preserve evaluation order
| [] => do
@ -330,9 +334,7 @@ alts ← alts.getArgs.mapM $ fun alt => do {
compileStxMatch stx [discr] alts.toList
@[builtinTermElab «match_syntax»] def elabMatchSyntax : TermElab :=
fun stx expectedType? => do
stx ← match_syntax.expand stx;
elabTerm stx expectedType?
adaptExpander match_syntax.expand
-- REMOVE with old frontend
private def exprPlaceholder := mkMVar Name.anonymous
@ -443,8 +445,8 @@ stx ← stxQuot.expand stx;
toPreterm stx
@[export lean_get_antiquot_vars]
def oldGetAntiquotVars (ctx : OldContext) (pats : List Syntax) : Except String (List Name) := oldRunTermElabM ctx $ do
vars ← List.join <$> pats.mapM getAntiquotVars;
def oldGetPatternVars (ctx : OldContext) (pats : List Syntax) : Except String (List Name) := oldRunTermElabM ctx $ do
vars ← List.join <$> pats.mapM getPatternVars;
pure $ vars.map $ fun var => var.getIdAt 0
@[export lean_expand_match_syntax]

View file

@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura, Sebastian Ullrich
-/
prelude
import Init.Lean.Hygiene
import Init.Lean.Modifiers
import Init.Lean.Elab.Alias
@ -65,8 +66,10 @@ private def resolveOpenDecls (env : Environment) (id : Name) : List OpenDecl →
let resolvedIds := if id == openedId then resolvedId :: resolvedIds else resolvedIds;
resolveOpenDecls openDecls resolvedIds
private def resolveGlobalNameAux (env : Environment) (ns : Name) (openDecls : List OpenDecl) : Name → List String → List (Name × List String)
private def resolveGlobalNameAux (env : Environment) (ns : Name) (openDecls : List OpenDecl) (scps : List MacroScope) : Name → List String → List (Name × List String)
| id@(Name.str p s _), projs =>
-- NOTE: we assume that macro scopes always belong to the projected constant, not the projections
let id := addMacroScopes id scps;
match resolveUsingNamespace env id ns with
| resolvedIds@(_ :: _) => resolvedIds.eraseDups.map $ fun id => (id, projs)
| [] =>
@ -82,7 +85,9 @@ private def resolveGlobalNameAux (env : Environment) (ns : Name) (openDecls : Li
| _, _ => []
def resolveGlobalName (env : Environment) (ns : Name) (openDecls : List OpenDecl) (id : Name) : List (Name × List String) :=
resolveGlobalNameAux env ns openDecls id []
-- decode macro scopes from name before recursion
let (id, scps) := extractMacroScopes id;
resolveGlobalNameAux env ns openDecls scps id []
/- Namespace resolution -/

View file

@ -302,7 +302,13 @@ def elabLetPatDecl (ref : Syntax) (decl body : Syntax) (expectedType? : Option E
throwError decl "not implemented yet"
@[builtinTermElab «let»] def elabLet : TermElab :=
fun stx expectedType? => do
fun stx expectedType? => match_syntax stx with
| `(let $id:id := $decl; $body) => do
-- HACK: support single-id pattern let (as produced by quotations) by translation to ident let for now
let id := id.getArg 0;
stx ← `(let $id:ident := $decl; $body);
elabTerm stx expectedType?
| _ => do
-- `let` decl `;` body
let ref := stx;
let decl := stx.getArg 1;

View file

@ -38,10 +38,24 @@ class MonadQuotation (m : Type → Type) :=
(withFreshMacroScope {α : Type} : m α → m α)
export MonadQuotation
def addMacroScope (n : Name) (scp : MacroScope) : Name :=
-- TODO: try harder to avoid clashes with other autogenerated names
def addMacroScope (n : Name) (scp : MacroScope) : Name :=
mkNameNum n scp
def addMacroScopes (n : Name) (scps : List MacroScope) : Name :=
scps.foldl addMacroScope n
private def extractMacroScopesAux : Name → List MacroScope → Name × List MacroScope
| Name.num n scp _, acc => extractMacroScopesAux n (scp::acc)
| n , acc => (n, acc.reverse)
/--
Revert all `addMacroScope` calls. `(n', scps) = extractMacroScopes n → n = addMacroScopes n' scps`.
This operation is useful for analyzing/transforming the original identifiers, then adding back
the scopes (via `addMacroScopes`). -/
def extractMacroScopes (n : Name) : Name × List MacroScope :=
extractMacroScopesAux n []
/-- Simplistic MonadQuotation that does not guarantee globally fresh names, that
is, between different runs of this or other MonadQuotation implementations.
It is only safe if the syntax quotations do not introduce bindings around

View file

@ -1069,7 +1069,7 @@ fun _ c s =>
{ fn := identFn,
info := mkAtomicInfo "ident" }
@[inline] def rawIdent {k : ParserKind} : Parser k :=
@[inline] def rawIdentNoAntiquot {k : ParserKind} : Parser k :=
{ fn := fun _ => rawIdentFn }
def quotedSymbolFn {k : ParserKind} : ParserFn k :=
@ -1755,6 +1755,10 @@ node kind $ try $ dollarSymbol >> checkNoWsBefore "no space before" >>
def ident {k : ParserKind} : Parser k :=
mkAntiquot "ident" `ident <|> identNoAntiquot
-- `ident` and `rawIdent` produce the same syntax tree, so we reuse the antiquotation kind name
def rawIdent {k : ParserKind} : Parser k :=
mkAntiquot "ident" `ident <|> rawIdentNoAntiquot
def fieldIdxFn : BasicParserFn :=
fun c s =>
let iniPos := s.pos;

View file

@ -284,7 +284,11 @@ match setTailInfoAux info stx with
| none => stx
private def reprintLeaf : Option SourceInfo → String → String
| none, val => val
-- no source info => add gracious amounts of whitespace to definitely separate tokens
-- Note that the proper pretty printer does not use this function.
-- The parser as well always produces source info, so round-tripping is still
-- guaranteed.
| none, val => " " ++ val ++ " "
| some info, val => info.leading.toString ++ val ++ info.trailing.toString
partial def reprint : Syntax → Option String

View file

@ -162,28 +162,28 @@ def otherErrorToString (gist : String) (code : UInt32) : Option String → Strin
@[export lean_io_error_to_string]
def toString : IO.Error → String
| unexpectedEof => "End of file"
| inappropriateType (some fn) code details => fopenErrorToString "Inappropriate type" fn code details
| inappropriateType none code details => otherErrorToString "Inappropriate type" code details
| interrupted fn code details => fopenErrorToString "Interrupted system call" fn code details
| invalidArgument (some fn) code details => fopenErrorToString "Invalid argument" fn code details
| invalidArgument none code details => otherErrorToString "Invalid argument" code details
| noFileOrDirectory fn code _ => fopenErrorToString "No such file or directory" fn code none
| noSuchThing (some fn) code details => fopenErrorToString "No such thing" fn code details
| noSuchThing none code details => otherErrorToString "No such thing" code details
| inappropriateType (some fn) code details => fopenErrorToString "inappropriate type" fn code details
| inappropriateType none code details => otherErrorToString "inappropriate type" code details
| interrupted fn code details => fopenErrorToString "interrupted system call" fn code details
| invalidArgument (some fn) code details => fopenErrorToString "invalid argument" fn code details
| invalidArgument none code details => otherErrorToString "invalid argument" code details
| noFileOrDirectory fn code _ => fopenErrorToString "no such file or directory" fn code none
| noSuchThing (some fn) code details => fopenErrorToString "no such thing" fn code details
| noSuchThing none code details => otherErrorToString "no such thing" code details
| permissionDenied (some fn) code details => fopenErrorToString details fn code none
| permissionDenied none code details => otherErrorToString details code none
| resourceExhausted (some fn) code details => fopenErrorToString "Resource exhausted" fn code details
| resourceExhausted none code details => otherErrorToString "Resource exhausted" code details
| alreadyExists code details => otherErrorToString "Already exists" code details
| resourceExhausted (some fn) code details => fopenErrorToString "resource exhausted" fn code details
| resourceExhausted none code details => otherErrorToString "resource exhausted" code details
| alreadyExists code details => otherErrorToString "already exists" code details
| otherError code details => otherErrorToString details code none
| resourceBusy code details => otherErrorToString "Resource busy" code details
| resourceVanished code details => otherErrorToString "Resource vanished" code details
| hardwareFault code _ => otherErrorToString "Hardware fault" code none
| illegalOperation code details => otherErrorToString "Illegal operation" code details
| protocolError code details => otherErrorToString "Protocol error" code details
| timeExpired code details => otherErrorToString "Time expired" code details
| unsatisfiedConstraints code _ => otherErrorToString "Directory not empty" code none
| unsupportedOperation code details => otherErrorToString "Unsupported operation" code details
| resourceBusy code details => otherErrorToString "resource busy" code details
| resourceVanished code details => otherErrorToString "resource vanished" code details
| hardwareFault code _ => otherErrorToString "hardware fault" code none
| illegalOperation code details => otherErrorToString "illegal operation" code details
| protocolError code details => otherErrorToString "protocol error" code details
| timeExpired code details => otherErrorToString "time expired" code details
| unsatisfiedConstraints code _ => otherErrorToString "directory not empty" code none
| unsupportedOperation code details => otherErrorToString "unsupported operation" code details
| userError msg => msg
instance : HasToString IO.Error := ⟨ IO.Error.toString ⟩

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
// Lean compiler output
// Module: Init.Lean.Elab.ResolveName
// Imports: Init.Lean.Modifiers Init.Lean.Elab.Alias
// Imports: Init.Lean.Hygiene Init.Lean.Modifiers Init.Lean.Elab.Alias
#include "runtime/lean.h"
#if defined(__clang__)
#pragma clang diagnostic ignored "-Wunused-parameter"
@ -15,7 +15,7 @@ extern "C" {
#endif
lean_object* l_List_reverse___rarg(lean_object*);
lean_object* l_Lean_Elab_resolveNamespaceUsingScope(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Name_toString___closed__1;
lean_object* l_Lean_extractMacroScopes(lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_1__resolveQualifiedName(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_4__resolveOpenDecls___main(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_unreachable_x21___rarg(lean_object*);
@ -26,7 +26,7 @@ lean_object* l_List_append___rarg(lean_object*, lean_object*);
uint8_t lean_name_eq(lean_object*, lean_object*);
lean_object* l_List_toStringAux___main___at_Lean_Elab_OpenDecl_HasToString___spec__3___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Elab_resolveGlobalName___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_resolveNamespaceUsingScope___main(lean_object*, lean_object*, lean_object*);
lean_object* lean_string_append(lean_object*, lean_object*);
lean_object* l_List_eraseDupsAux___main___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__2(lean_object*, lean_object*);
@ -58,21 +58,23 @@ lean_object* l_Lean_Name_replacePrefix___main(lean_object*, lean_object*, lean_o
lean_object* l_List_map___main___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__4(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_2__resolveUsingNamespace___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_4__resolveOpenDecls(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_List_map___main___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__3(lean_object*, lean_object*);
lean_object* l_Lean_Elab_rootNamespace___closed__1;
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_OpenDecl_HasToString___closed__2;
lean_object* l_Lean_Elab_resolveGlobalName(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_rootNamespace___closed__2;
uint8_t l_Lean_TagDeclarationExtension_isTagged(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_OpenDecl_Inhabited;
lean_object* l_Lean_Elab_OpenDecl_HasToString(lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_3__resolveExact(lean_object*, lean_object*);
lean_object* l_List_foldl___main___at_Lean_addMacroScopes___spec__1(lean_object*, lean_object*);
lean_object* l_Lean_Elab_resolveNamespaceUsingOpenDecls___main___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_resolveNamespaceUsingOpenDecls___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_OpenDecl_HasToString___closed__1;
extern lean_object* l_System_FilePath_dirName___closed__1;
lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*);
lean_object* l_List_beq___main___at_Lean_Elab_OpenDecl_HasToString___spec__1___boxed(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_ResolveName_1__resolveQualifiedName___boxed(lean_object*, lean_object*, lean_object*);
@ -167,7 +169,7 @@ lean_inc(x_4);
x_5 = lean_ctor_get(x_2, 1);
lean_inc(x_5);
lean_dec(x_2);
x_6 = l_Lean_Name_toString___closed__1;
x_6 = l_System_FilePath_dirName___closed__1;
x_7 = l_Lean_Name_toStringWithSep___main(x_6, x_4);
x_8 = l_List_reprAux___main___rarg___closed__1;
x_9 = lean_string_append(x_8, x_7);
@ -194,7 +196,7 @@ lean_inc(x_13);
x_14 = lean_ctor_get(x_2, 1);
lean_inc(x_14);
lean_dec(x_2);
x_15 = l_Lean_Name_toString___closed__1;
x_15 = l_System_FilePath_dirName___closed__1;
x_16 = l_Lean_Name_toStringWithSep___main(x_15, x_13);
x_17 = 0;
x_18 = l_List_toStringAux___main___at_Lean_Elab_OpenDecl_HasToString___spec__3(x_17, x_14);
@ -255,7 +257,7 @@ lean_inc(x_2);
x_3 = lean_ctor_get(x_1, 1);
lean_inc(x_3);
lean_dec(x_1);
x_4 = l_Lean_Name_toString___closed__1;
x_4 = l_System_FilePath_dirName___closed__1;
x_5 = l_Lean_Name_toStringWithSep___main(x_4, x_2);
x_6 = lean_box(0);
x_7 = l_List_beq___main___at_Lean_Elab_OpenDecl_HasToString___spec__1(x_3, x_6);
@ -287,7 +289,7 @@ lean_inc(x_14);
x_15 = lean_ctor_get(x_1, 1);
lean_inc(x_15);
lean_dec(x_1);
x_16 = l_Lean_Name_toString___closed__1;
x_16 = l_System_FilePath_dirName___closed__1;
x_17 = l_Lean_Name_toStringWithSep___main(x_16, x_14);
x_18 = l_Lean_Elab_OpenDecl_HasToString___closed__2;
x_19 = lean_string_append(x_17, x_18);
@ -811,159 +813,171 @@ return x_13;
}
}
}
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
if (lean_obj_tag(x_4) == 1)
if (lean_obj_tag(x_5) == 1)
{
lean_object* x_6; lean_object* x_7; lean_object* x_8;
x_6 = lean_ctor_get(x_4, 0);
lean_inc(x_6);
x_7 = lean_ctor_get(x_4, 1);
lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_7 = lean_ctor_get(x_5, 0);
lean_inc(x_7);
x_8 = lean_ctor_get(x_5, 1);
lean_inc(x_8);
lean_inc(x_4);
x_9 = l_List_foldl___main___at_Lean_addMacroScopes___spec__1(x_5, x_4);
lean_inc(x_9);
lean_inc(x_1);
x_8 = l___private_Init_Lean_Elab_ResolveName_2__resolveUsingNamespace___main(x_1, x_4, x_2);
if (lean_obj_tag(x_8) == 0)
x_10 = l___private_Init_Lean_Elab_ResolveName_2__resolveUsingNamespace___main(x_1, x_9, x_2);
if (lean_obj_tag(x_10) == 0)
{
lean_object* x_9;
lean_inc(x_4);
lean_object* x_11;
lean_inc(x_9);
lean_inc(x_1);
x_9 = l___private_Init_Lean_Elab_ResolveName_3__resolveExact(x_1, x_4);
if (lean_obj_tag(x_9) == 0)
x_11 = l___private_Init_Lean_Elab_ResolveName_3__resolveExact(x_1, x_9);
if (lean_obj_tag(x_11) == 0)
{
uint8_t x_10; lean_object* x_11; lean_object* x_12;
uint8_t x_12; lean_object* x_13; lean_object* x_14;
lean_inc(x_1);
x_10 = l_Lean_Environment_contains(x_1, x_4);
x_11 = l_Lean_getAliases(x_1, x_4);
if (x_10 == 0)
x_12 = l_Lean_Environment_contains(x_1, x_9);
x_13 = l_Lean_getAliases(x_1, x_9);
if (x_12 == 0)
{
lean_object* x_18; lean_object* x_19;
lean_object* x_20; lean_object* x_21;
lean_inc(x_3);
lean_inc(x_1);
x_18 = l___private_Init_Lean_Elab_ResolveName_4__resolveOpenDecls___main(x_1, x_4, x_3, x_8);
x_19 = l_List_append___rarg(x_11, x_18);
x_12 = x_19;
goto block_17;
x_20 = l___private_Init_Lean_Elab_ResolveName_4__resolveOpenDecls___main(x_1, x_9, x_3, x_10);
x_21 = l_List_append___rarg(x_13, x_20);
x_14 = x_21;
goto block_19;
}
else
{
lean_object* x_20; lean_object* x_21; lean_object* x_22;
lean_inc(x_4);
x_20 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_20, 0, x_4);
lean_ctor_set(x_20, 1, x_8);
lean_object* x_22; lean_object* x_23; lean_object* x_24;
lean_inc(x_9);
x_22 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_22, 0, x_9);
lean_ctor_set(x_22, 1, x_10);
lean_inc(x_3);
lean_inc(x_1);
x_21 = l___private_Init_Lean_Elab_ResolveName_4__resolveOpenDecls___main(x_1, x_4, x_3, x_20);
x_22 = l_List_append___rarg(x_11, x_21);
x_12 = x_22;
goto block_17;
x_23 = l___private_Init_Lean_Elab_ResolveName_4__resolveOpenDecls___main(x_1, x_9, x_3, x_22);
x_24 = l_List_append___rarg(x_13, x_23);
x_14 = x_24;
goto block_19;
}
block_17:
block_19:
{
if (lean_obj_tag(x_12) == 0)
if (lean_obj_tag(x_14) == 0)
{
lean_object* x_13;
x_13 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_13, 0, x_7);
lean_ctor_set(x_13, 1, x_5);
x_4 = x_6;
x_5 = x_13;
lean_object* x_15;
x_15 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_15, 0, x_8);
lean_ctor_set(x_15, 1, x_6);
x_5 = x_7;
x_6 = x_15;
goto _start;
}
else
{
lean_object* x_15; lean_object* x_16;
lean_object* x_17; lean_object* x_18;
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_6);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
x_15 = l_List_eraseDups___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__1(x_12);
x_16 = l_List_map___main___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__3(x_5, x_15);
return x_16;
x_17 = l_List_eraseDups___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__1(x_14);
x_18 = l_List_map___main___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__3(x_6, x_17);
return x_18;
}
}
}
else
{
lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26;
lean_dec(x_7);
lean_dec(x_6);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
x_23 = lean_ctor_get(x_9, 0);
lean_inc(x_23);
lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28;
lean_dec(x_9);
x_24 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_24, 0, x_23);
lean_ctor_set(x_24, 1, x_5);
x_25 = lean_box(0);
x_26 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_26, 0, x_24);
lean_ctor_set(x_26, 1, x_25);
return x_26;
}
}
else
{
lean_object* x_27; lean_object* x_28;
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_6);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
x_27 = l_List_eraseDups___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__1(x_8);
x_28 = l_List_map___main___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__4(x_5, x_27);
x_25 = lean_ctor_get(x_11, 0);
lean_inc(x_25);
lean_dec(x_11);
x_26 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_26, 0, x_25);
lean_ctor_set(x_26, 1, x_6);
x_27 = lean_box(0);
x_28 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_28, 0, x_26);
lean_ctor_set(x_28, 1, x_27);
return x_28;
}
}
else
{
lean_object* x_29;
lean_object* x_29; lean_object* x_30;
lean_dec(x_9);
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
x_29 = l_List_eraseDups___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__1(x_10);
x_30 = l_List_map___main___at___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___spec__4(x_6, x_29);
return x_30;
}
}
else
{
lean_object* x_31;
lean_dec(x_6);
lean_dec(x_5);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
x_29 = lean_box(0);
return x_29;
x_31 = lean_box(0);
return x_31;
}
}
}
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_6;
x_6 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(x_1, x_2, x_3, x_4, x_5);
lean_object* x_7;
x_7 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(x_1, x_2, x_3, x_4, x_5, x_6);
lean_dec(x_2);
return x_6;
return x_7;
}
}
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_6;
x_6 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(x_1, x_2, x_3, x_4, x_5);
return x_6;
lean_object* x_7;
x_7 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(x_1, x_2, x_3, x_4, x_5, x_6);
return x_7;
}
}
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
lean_object* l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_6;
x_6 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux(x_1, x_2, x_3, x_4, x_5);
lean_object* x_7;
x_7 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux(x_1, x_2, x_3, x_4, x_5, x_6);
lean_dec(x_2);
return x_6;
return x_7;
}
}
lean_object* l_Lean_Elab_resolveGlobalName(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
lean_object* x_5; lean_object* x_6;
x_5 = lean_box(0);
x_6 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(x_1, x_2, x_3, x_4, x_5);
return x_6;
lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9;
x_5 = l_Lean_extractMacroScopes(x_4);
x_6 = lean_ctor_get(x_5, 0);
lean_inc(x_6);
x_7 = lean_ctor_get(x_5, 1);
lean_inc(x_7);
lean_dec(x_5);
x_8 = lean_box(0);
x_9 = l___private_Init_Lean_Elab_ResolveName_5__resolveGlobalNameAux___main(x_1, x_2, x_3, x_7, x_6, x_8);
return x_9;
}
}
lean_object* l_Lean_Elab_resolveGlobalName___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
@ -1176,6 +1190,7 @@ lean_dec(x_1);
return x_5;
}
}
lean_object* initialize_Init_Lean_Hygiene(lean_object*);
lean_object* initialize_Init_Lean_Modifiers(lean_object*);
lean_object* initialize_Init_Lean_Elab_Alias(lean_object*);
static bool _G_initialized = false;
@ -1183,6 +1198,9 @@ lean_object* initialize_Init_Lean_Elab_ResolveName(lean_object* w) {
lean_object * res;
if (_G_initialized) return lean_mk_io_result(lean_box(0));
_G_initialized = true;
res = initialize_Init_Lean_Hygiene(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = initialize_Init_Lean_Modifiers(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);

View file

@ -18,6 +18,7 @@ lean_object* l_Lean_Elab_Term_elabBinder___rarg___lambda__1___boxed(lean_object*
lean_object* l_Lean_Elab_Term_elabBinders(lean_object*);
lean_object* l_Lean_Elab_Term_mkForall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_7__elabBindersAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLet___closed__5;
lean_object* l_Lean_Elab_Term_elabLet___closed__3;
lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -35,6 +36,7 @@ lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabFun___closed__1;
lean_object* l_Lean_Format_pretty(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___main___closed__3;
extern lean_object* l_Lean_List_format___rarg___closed__2;
lean_object* l_Lean_Elab_Term_elabLet___closed__7;
lean_object* l_Lean_Syntax_getIdAt(lean_object*, lean_object*);
lean_object* lean_local_ctx_mk_let_decl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabBinder___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
@ -144,6 +146,7 @@ extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1___closed__6;
extern lean_object* l_Lean_Options_empty;
lean_object* l_Lean_Elab_Term_mkFreshFVarId(lean_object*);
lean_object* l_Lean_Elab_Term_elabLet___closed__8;
lean_object* l___private_Init_Lean_Elab_TermBinders_1__expandBinderType(lean_object*);
extern lean_object* l_Lean_Elab_Term_expandCDot_x3f___closed__2;
extern lean_object* l___private_Init_Lean_Elab_Term_17__synthesizeSyntheticMVar___closed__3;
@ -233,12 +236,15 @@ lean_object* l___private_Init_Lean_Elab_TermBinders_2__expandBinderIdent(lean_ob
lean_object* l_Lean_Elab_Term_elabBinders___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__3;
lean_object* l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__3;
lean_object* l_Lean_Elab_Term_elabLet___closed__6;
lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*);
extern lean_object* l_Lean_Elab_Term_withNode___rarg___closed__3;
lean_object* l_Lean_Elab_Term_elabLet___closed__4;
lean_object* l_Lean_Syntax_formatStxAux___main(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabForall(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLet___closed__9;
lean_object* l___private_Init_Lean_Elab_TermBinders_3__expandOptIdent___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrow(lean_object*);
extern lean_object* l___private_Init_Lean_Meta_ExprDefEq_10__checkAssignmentFailure___closed__5;
@ -17113,69 +17119,592 @@ lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_let___elambda__1___closed__1;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string(":=");
return x_1;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Elab_Term_elabLet___closed__5;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__7() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string(";");
return x_1;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Elab_Term_elabLet___closed__7;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_PersistentHashMap_mkCollisionNode___rarg___closed__1;
x_2 = l_Lean_Elab_Term_elabLet___closed__4;
x_3 = lean_array_push(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_Elab_Term_elabLet(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11;
x_5 = lean_unsigned_to_nat(1u);
x_6 = l_Lean_Syntax_getArg(x_1, x_5);
x_7 = lean_unsigned_to_nat(3u);
x_8 = l_Lean_Syntax_getArg(x_1, x_7);
lean_inc(x_6);
x_9 = l_Lean_Syntax_getKind(x_6);
x_10 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_11 = lean_name_eq(x_9, x_10);
if (x_11 == 0)
lean_object* x_5; uint8_t x_6;
x_5 = l_Lean_Parser_Term_let___elambda__1___closed__2;
lean_inc(x_1);
x_6 = l_Lean_Syntax_isOfKind(x_1, x_5);
if (x_6 == 0)
{
lean_object* x_12; uint8_t x_13;
x_12 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_13 = lean_name_eq(x_9, x_12);
lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13;
x_7 = lean_unsigned_to_nat(1u);
x_8 = l_Lean_Syntax_getArg(x_1, x_7);
x_9 = lean_unsigned_to_nat(3u);
x_10 = l_Lean_Syntax_getArg(x_1, x_9);
lean_inc(x_8);
x_11 = l_Lean_Syntax_getKind(x_8);
x_12 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_13 = lean_name_eq(x_11, x_12);
if (x_13 == 0)
{
lean_object* x_14; uint8_t x_15;
x_14 = l_Lean_Parser_Term_letPatDecl___elambda__1___closed__2;
x_15 = lean_name_eq(x_9, x_14);
lean_dec(x_9);
x_14 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_15 = lean_name_eq(x_11, x_14);
if (x_15 == 0)
{
lean_object* x_16; lean_object* x_17;
lean_dec(x_8);
lean_dec(x_6);
lean_dec(x_2);
x_16 = l_Lean_Elab_Term_elabLet___closed__3;
x_17 = l_Lean_Elab_Term_throwError___rarg(x_1, x_16, x_3, x_4);
return x_17;
}
else
lean_object* x_16; uint8_t x_17;
x_16 = l_Lean_Parser_Term_letPatDecl___elambda__1___closed__2;
x_17 = lean_name_eq(x_11, x_16);
lean_dec(x_11);
if (x_17 == 0)
{
lean_object* x_18;
lean_dec(x_1);
x_18 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_6, x_8, x_2, x_3, x_4);
lean_dec(x_2);
lean_object* x_18; lean_object* x_19;
lean_dec(x_10);
lean_dec(x_8);
return x_18;
}
}
else
{
lean_object* x_19;
lean_dec(x_9);
lean_dec(x_1);
x_19 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_6, x_8, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_8);
x_18 = l_Lean_Elab_Term_elabLet___closed__3;
x_19 = l_Lean_Elab_Term_throwError___rarg(x_1, x_18, x_3, x_4);
return x_19;
}
}
else
{
lean_object* x_20;
lean_dec(x_9);
x_20 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_6, x_8, x_2, x_3, x_4);
lean_dec(x_6);
lean_dec(x_1);
x_20 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_8, x_10, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_10);
return x_20;
}
}
else
{
lean_object* x_21;
lean_dec(x_11);
lean_dec(x_1);
x_21 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_8, x_10, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_10);
return x_21;
}
}
else
{
lean_object* x_22;
lean_dec(x_11);
x_22 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_8, x_10, x_2, x_3, x_4);
lean_dec(x_8);
return x_22;
}
}
else
{
lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26;
x_23 = l_Lean_Syntax_getArgs(x_1);
x_24 = lean_array_get_size(x_23);
lean_dec(x_23);
x_25 = lean_unsigned_to_nat(4u);
x_26 = lean_nat_dec_eq(x_24, x_25);
lean_dec(x_24);
if (x_26 == 0)
{
lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33;
x_27 = lean_unsigned_to_nat(1u);
x_28 = l_Lean_Syntax_getArg(x_1, x_27);
x_29 = lean_unsigned_to_nat(3u);
x_30 = l_Lean_Syntax_getArg(x_1, x_29);
lean_inc(x_28);
x_31 = l_Lean_Syntax_getKind(x_28);
x_32 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_33 = lean_name_eq(x_31, x_32);
if (x_33 == 0)
{
lean_object* x_34; uint8_t x_35;
x_34 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_35 = lean_name_eq(x_31, x_34);
if (x_35 == 0)
{
lean_object* x_36; uint8_t x_37;
x_36 = l_Lean_Parser_Term_letPatDecl___elambda__1___closed__2;
x_37 = lean_name_eq(x_31, x_36);
lean_dec(x_31);
if (x_37 == 0)
{
lean_object* x_38; lean_object* x_39;
lean_dec(x_30);
lean_dec(x_28);
lean_dec(x_2);
x_38 = l_Lean_Elab_Term_elabLet___closed__3;
x_39 = l_Lean_Elab_Term_throwError___rarg(x_1, x_38, x_3, x_4);
return x_39;
}
else
{
lean_object* x_40;
lean_dec(x_1);
x_40 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_28, x_30, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_30);
return x_40;
}
}
else
{
lean_object* x_41;
lean_dec(x_31);
lean_dec(x_1);
x_41 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_28, x_30, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_30);
return x_41;
}
}
else
{
lean_object* x_42;
lean_dec(x_31);
x_42 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_28, x_30, x_2, x_3, x_4);
lean_dec(x_28);
return x_42;
}
}
else
{
lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46;
x_43 = lean_unsigned_to_nat(1u);
x_44 = l_Lean_Syntax_getArg(x_1, x_43);
x_45 = l_Lean_Parser_Term_letPatDecl___elambda__1___closed__2;
lean_inc(x_44);
x_46 = l_Lean_Syntax_isOfKind(x_44, x_45);
if (x_46 == 0)
{
lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51;
x_47 = lean_unsigned_to_nat(3u);
x_48 = l_Lean_Syntax_getArg(x_1, x_47);
lean_inc(x_44);
x_49 = l_Lean_Syntax_getKind(x_44);
x_50 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_51 = lean_name_eq(x_49, x_50);
if (x_51 == 0)
{
lean_object* x_52; uint8_t x_53;
x_52 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_53 = lean_name_eq(x_49, x_52);
if (x_53 == 0)
{
uint8_t x_54;
x_54 = lean_name_eq(x_49, x_45);
lean_dec(x_49);
if (x_54 == 0)
{
lean_object* x_55; lean_object* x_56;
lean_dec(x_48);
lean_dec(x_44);
lean_dec(x_2);
x_55 = l_Lean_Elab_Term_elabLet___closed__3;
x_56 = l_Lean_Elab_Term_throwError___rarg(x_1, x_55, x_3, x_4);
return x_56;
}
else
{
lean_object* x_57;
lean_dec(x_1);
x_57 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_44, x_48, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_48);
return x_57;
}
}
else
{
lean_object* x_58;
lean_dec(x_49);
lean_dec(x_1);
x_58 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_44, x_48, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_48);
return x_58;
}
}
else
{
lean_object* x_59;
lean_dec(x_49);
x_59 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_44, x_48, x_2, x_3, x_4);
lean_dec(x_44);
return x_59;
}
}
else
{
lean_object* x_60; lean_object* x_61; uint8_t x_62;
x_60 = l_Lean_Syntax_getArgs(x_44);
x_61 = lean_array_get_size(x_60);
lean_dec(x_60);
x_62 = lean_nat_dec_eq(x_61, x_25);
lean_dec(x_61);
if (x_62 == 0)
{
lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67;
x_63 = lean_unsigned_to_nat(3u);
x_64 = l_Lean_Syntax_getArg(x_1, x_63);
lean_inc(x_44);
x_65 = l_Lean_Syntax_getKind(x_44);
x_66 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_67 = lean_name_eq(x_65, x_66);
if (x_67 == 0)
{
lean_object* x_68; uint8_t x_69;
x_68 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_69 = lean_name_eq(x_65, x_68);
if (x_69 == 0)
{
uint8_t x_70;
x_70 = lean_name_eq(x_65, x_45);
lean_dec(x_65);
if (x_70 == 0)
{
lean_object* x_71; lean_object* x_72;
lean_dec(x_64);
lean_dec(x_44);
lean_dec(x_2);
x_71 = l_Lean_Elab_Term_elabLet___closed__3;
x_72 = l_Lean_Elab_Term_throwError___rarg(x_1, x_71, x_3, x_4);
return x_72;
}
else
{
lean_object* x_73;
lean_dec(x_1);
x_73 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_44, x_64, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_64);
return x_73;
}
}
else
{
lean_object* x_74;
lean_dec(x_65);
lean_dec(x_1);
x_74 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_44, x_64, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_64);
return x_74;
}
}
else
{
lean_object* x_75;
lean_dec(x_65);
x_75 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_44, x_64, x_2, x_3, x_4);
lean_dec(x_44);
return x_75;
}
}
else
{
lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79;
x_76 = lean_unsigned_to_nat(0u);
x_77 = l_Lean_Syntax_getArg(x_44, x_76);
x_78 = l_Lean_Parser_Term_id___elambda__1___closed__2;
lean_inc(x_77);
x_79 = l_Lean_Syntax_isOfKind(x_77, x_78);
if (x_79 == 0)
{
lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; uint8_t x_84;
lean_dec(x_77);
x_80 = lean_unsigned_to_nat(3u);
x_81 = l_Lean_Syntax_getArg(x_1, x_80);
lean_inc(x_44);
x_82 = l_Lean_Syntax_getKind(x_44);
x_83 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_84 = lean_name_eq(x_82, x_83);
if (x_84 == 0)
{
lean_object* x_85; uint8_t x_86;
x_85 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_86 = lean_name_eq(x_82, x_85);
if (x_86 == 0)
{
uint8_t x_87;
x_87 = lean_name_eq(x_82, x_45);
lean_dec(x_82);
if (x_87 == 0)
{
lean_object* x_88; lean_object* x_89;
lean_dec(x_81);
lean_dec(x_44);
lean_dec(x_2);
x_88 = l_Lean_Elab_Term_elabLet___closed__3;
x_89 = l_Lean_Elab_Term_throwError___rarg(x_1, x_88, x_3, x_4);
return x_89;
}
else
{
lean_object* x_90;
lean_dec(x_1);
x_90 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_44, x_81, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_81);
return x_90;
}
}
else
{
lean_object* x_91;
lean_dec(x_82);
lean_dec(x_1);
x_91 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_44, x_81, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_81);
return x_91;
}
}
else
{
lean_object* x_92;
lean_dec(x_82);
x_92 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_44, x_81, x_2, x_3, x_4);
lean_dec(x_44);
return x_92;
}
}
else
{
lean_object* x_93; lean_object* x_94; uint8_t x_95;
x_93 = l_Lean_Syntax_getArg(x_44, x_43);
x_94 = l_Lean_nullKind___closed__2;
lean_inc(x_93);
x_95 = l_Lean_Syntax_isOfKind(x_93, x_94);
if (x_95 == 0)
{
lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; uint8_t x_100;
lean_dec(x_93);
lean_dec(x_77);
x_96 = lean_unsigned_to_nat(3u);
x_97 = l_Lean_Syntax_getArg(x_1, x_96);
lean_inc(x_44);
x_98 = l_Lean_Syntax_getKind(x_44);
x_99 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_100 = lean_name_eq(x_98, x_99);
if (x_100 == 0)
{
lean_object* x_101; uint8_t x_102;
x_101 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_102 = lean_name_eq(x_98, x_101);
if (x_102 == 0)
{
uint8_t x_103;
x_103 = lean_name_eq(x_98, x_45);
lean_dec(x_98);
if (x_103 == 0)
{
lean_object* x_104; lean_object* x_105;
lean_dec(x_97);
lean_dec(x_44);
lean_dec(x_2);
x_104 = l_Lean_Elab_Term_elabLet___closed__3;
x_105 = l_Lean_Elab_Term_throwError___rarg(x_1, x_104, x_3, x_4);
return x_105;
}
else
{
lean_object* x_106;
lean_dec(x_1);
x_106 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_44, x_97, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_97);
return x_106;
}
}
else
{
lean_object* x_107;
lean_dec(x_98);
lean_dec(x_1);
x_107 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_44, x_97, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_97);
return x_107;
}
}
else
{
lean_object* x_108;
lean_dec(x_98);
x_108 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_44, x_97, x_2, x_3, x_4);
lean_dec(x_44);
return x_108;
}
}
else
{
lean_object* x_109; lean_object* x_110; uint8_t x_111;
x_109 = l_Lean_Syntax_getArgs(x_93);
lean_dec(x_93);
x_110 = lean_array_get_size(x_109);
lean_dec(x_109);
x_111 = lean_nat_dec_eq(x_110, x_76);
lean_dec(x_110);
if (x_111 == 0)
{
lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; uint8_t x_116;
lean_dec(x_77);
x_112 = lean_unsigned_to_nat(3u);
x_113 = l_Lean_Syntax_getArg(x_1, x_112);
lean_inc(x_44);
x_114 = l_Lean_Syntax_getKind(x_44);
x_115 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_116 = lean_name_eq(x_114, x_115);
if (x_116 == 0)
{
lean_object* x_117; uint8_t x_118;
x_117 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2;
x_118 = lean_name_eq(x_114, x_117);
if (x_118 == 0)
{
uint8_t x_119;
x_119 = lean_name_eq(x_114, x_45);
lean_dec(x_114);
if (x_119 == 0)
{
lean_object* x_120; lean_object* x_121;
lean_dec(x_113);
lean_dec(x_44);
lean_dec(x_2);
x_120 = l_Lean_Elab_Term_elabLet___closed__3;
x_121 = l_Lean_Elab_Term_throwError___rarg(x_1, x_120, x_3, x_4);
return x_121;
}
else
{
lean_object* x_122;
lean_dec(x_1);
x_122 = l_Lean_Elab_Term_elabLetPatDecl___rarg(x_44, x_113, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_113);
return x_122;
}
}
else
{
lean_object* x_123;
lean_dec(x_114);
lean_dec(x_1);
x_123 = l_Lean_Elab_Term_elabLetEqnsDecl___rarg(x_44, x_113, x_2, x_3, x_4);
lean_dec(x_2);
lean_dec(x_113);
return x_123;
}
}
else
{
lean_object* x_124;
lean_dec(x_114);
x_124 = l_Lean_Elab_Term_elabLetIdDecl(x_1, x_44, x_113, x_2, x_3, x_4);
lean_dec(x_44);
return x_124;
}
}
else
{
lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; uint8_t x_147; lean_object* x_148;
x_125 = lean_unsigned_to_nat(3u);
x_126 = l_Lean_Syntax_getArg(x_44, x_125);
lean_dec(x_44);
x_127 = l_Lean_Syntax_getArg(x_1, x_125);
lean_dec(x_1);
x_128 = l_Lean_Syntax_getArg(x_77, x_76);
lean_dec(x_77);
x_129 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4);
x_130 = lean_ctor_get(x_129, 1);
lean_inc(x_130);
lean_dec(x_129);
x_131 = l_Lean_Elab_Term_mkExplicitBinder___closed__5;
x_132 = lean_array_push(x_131, x_128);
x_133 = l___private_Init_Lean_Elab_Term_8__expandCDot___closed__4;
x_134 = lean_array_push(x_132, x_133);
x_135 = lean_array_push(x_134, x_133);
x_136 = l_Lean_Elab_Term_elabLet___closed__6;
x_137 = lean_array_push(x_135, x_136);
x_138 = lean_array_push(x_137, x_126);
x_139 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
x_140 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_140, 0, x_139);
lean_ctor_set(x_140, 1, x_138);
x_141 = l_Lean_Elab_Term_elabLet___closed__9;
x_142 = lean_array_push(x_141, x_140);
x_143 = l_Lean_Elab_Term_elabLet___closed__8;
x_144 = lean_array_push(x_142, x_143);
x_145 = lean_array_push(x_144, x_127);
x_146 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_146, 0, x_5);
lean_ctor_set(x_146, 1, x_145);
x_147 = 1;
x_148 = l_Lean_Elab_Term_elabTerm(x_146, x_2, x_147, x_147, x_3, x_130);
return x_148;
}
}
}
}
}
}
}
}
}
lean_object* _init_l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1() {
_start:
@ -17379,6 +17908,18 @@ l_Lean_Elab_Term_elabLet___closed__2 = _init_l_Lean_Elab_Term_elabLet___closed__
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__2);
l_Lean_Elab_Term_elabLet___closed__3 = _init_l_Lean_Elab_Term_elabLet___closed__3();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__3);
l_Lean_Elab_Term_elabLet___closed__4 = _init_l_Lean_Elab_Term_elabLet___closed__4();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__4);
l_Lean_Elab_Term_elabLet___closed__5 = _init_l_Lean_Elab_Term_elabLet___closed__5();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__5);
l_Lean_Elab_Term_elabLet___closed__6 = _init_l_Lean_Elab_Term_elabLet___closed__6();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__6);
l_Lean_Elab_Term_elabLet___closed__7 = _init_l_Lean_Elab_Term_elabLet___closed__7();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__7);
l_Lean_Elab_Term_elabLet___closed__8 = _init_l_Lean_Elab_Term_elabLet___closed__8();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__8);
l_Lean_Elab_Term_elabLet___closed__9 = _init_l_Lean_Elab_Term_elabLet___closed__9();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__9);
l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1 = _init_l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1();
lean_mark_persistent(l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1);
l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__2 = _init_l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__2();

View file

@ -13,8 +13,11 @@
#ifdef __cplusplus
extern "C" {
#endif
lean_object* l_List_reverse___rarg(lean_object*);
lean_object* l_Lean_Unhygienic_MonadQuotation___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_extractMacroScopes(lean_object*);
lean_object* l_Lean_Unhygienic_MonadQuotation___closed__3;
lean_object* l___private_Init_Lean_Hygiene_1__extractMacroScopesAux(lean_object*, lean_object*);
lean_object* l_Lean_Unhygienic_run(lean_object*);
lean_object* l_Lean_monadQuotationTrans___rarg(lean_object*, lean_object*, lean_object*);
lean_object* lean_nat_add(lean_object*, lean_object*);
@ -28,7 +31,10 @@ lean_object* l_Lean_addMacroScope(lean_object*, lean_object*);
lean_object* l_Lean_Unhygienic_MonadQuotation;
lean_object* l_Lean_Unhygienic_MonadQuotation___closed__1;
lean_object* l_Lean_monadQuotationTrans___rarg___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_addMacroScopes(lean_object*, lean_object*);
lean_object* l_Lean_Unhygienic_MonadQuotation___closed__2;
lean_object* l___private_Init_Lean_Hygiene_1__extractMacroScopesAux___main(lean_object*, lean_object*);
lean_object* l_List_foldl___main___at_Lean_addMacroScopes___spec__1(lean_object*, lean_object*);
lean_object* lean_name_mk_numeral(lean_object*, lean_object*);
lean_object* l_Lean_addMacroScope(lean_object* x_1, lean_object* x_2) {
_start:
@ -38,6 +44,82 @@ x_3 = lean_name_mk_numeral(x_1, x_2);
return x_3;
}
}
lean_object* l_List_foldl___main___at_Lean_addMacroScopes___spec__1(lean_object* x_1, lean_object* x_2) {
_start:
{
if (lean_obj_tag(x_2) == 0)
{
return x_1;
}
else
{
lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_3 = lean_ctor_get(x_2, 0);
lean_inc(x_3);
x_4 = lean_ctor_get(x_2, 1);
lean_inc(x_4);
lean_dec(x_2);
x_5 = lean_name_mk_numeral(x_1, x_3);
x_1 = x_5;
x_2 = x_4;
goto _start;
}
}
}
lean_object* l_Lean_addMacroScopes(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3;
x_3 = l_List_foldl___main___at_Lean_addMacroScopes___spec__1(x_1, x_2);
return x_3;
}
}
lean_object* l___private_Init_Lean_Hygiene_1__extractMacroScopesAux___main(lean_object* x_1, lean_object* x_2) {
_start:
{
if (lean_obj_tag(x_1) == 2)
{
lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_3 = lean_ctor_get(x_1, 0);
lean_inc(x_3);
x_4 = lean_ctor_get(x_1, 1);
lean_inc(x_4);
lean_dec(x_1);
x_5 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_5, 0, x_4);
lean_ctor_set(x_5, 1, x_2);
x_1 = x_3;
x_2 = x_5;
goto _start;
}
else
{
lean_object* x_7; lean_object* x_8;
x_7 = l_List_reverse___rarg(x_2);
x_8 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_8, 0, x_1);
lean_ctor_set(x_8, 1, x_7);
return x_8;
}
}
}
lean_object* l___private_Init_Lean_Hygiene_1__extractMacroScopesAux(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3;
x_3 = l___private_Init_Lean_Hygiene_1__extractMacroScopesAux___main(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_extractMacroScopes(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3;
x_2 = lean_box(0);
x_3 = l___private_Init_Lean_Hygiene_1__extractMacroScopesAux___main(x_1, x_2);
return x_3;
}
}
lean_object* l_ReaderT_read___at_Lean_Unhygienic_MonadQuotation___spec__1(lean_object* x_1, lean_object* x_2) {
_start:
{

View file

@ -397,7 +397,6 @@ extern lean_object* l_Lean_Parser_numLit___closed__1;
lean_object* l_Lean_Parser_Command_structure;
lean_object* l_Lean_Parser_Command_declModifiers___closed__6;
lean_object* l_Lean_Parser_Command_notation___closed__6;
lean_object* l_Lean_Parser_rawIdentFn(lean_object*, lean_object*);
lean_object* l___regBuiltinParser_Lean_Parser_Command_declaration(lean_object*);
lean_object* l_Lean_Parser_Command_precedence___closed__4;
lean_object* l_Lean_Parser_Command_classInductive___elambda__1___closed__2;
@ -762,6 +761,7 @@ lean_object* l_Lean_Parser_Command_relaxedInferMod___elambda__1___closed__4;
lean_object* l_Lean_Parser_Command_declSig___elambda__1(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__8;
lean_object* l_Lean_Parser_Command_precedenceLit___elambda__1(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_quotedName___elambda__1___closed__6;
extern lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__4;
lean_object* l_Lean_Parser_Command_notation___elambda__1___closed__6;
lean_object* l_Lean_Parser_Command_reserve;
@ -2811,89 +2811,96 @@ return x_5;
lean_object* l_Lean_Parser_Command_attrInstance___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_4 = l_Lean_Parser_Command_attrInstance___elambda__1___closed__4;
lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12;
x_4 = l_Lean_Parser_Term_quotedName___elambda__1___closed__6;
x_5 = lean_ctor_get(x_4, 1);
lean_inc(x_5);
x_6 = lean_ctor_get(x_3, 0);
lean_inc(x_6);
x_7 = lean_array_get_size(x_6);
lean_dec(x_6);
x_8 = lean_ctor_get(x_3, 1);
x_6 = l_Lean_Parser_Command_attrInstance___elambda__1___closed__4;
x_7 = lean_ctor_get(x_6, 1);
lean_inc(x_7);
x_8 = lean_ctor_get(x_3, 0);
lean_inc(x_8);
x_9 = lean_array_get_size(x_8);
lean_dec(x_8);
x_10 = lean_ctor_get(x_3, 1);
lean_inc(x_10);
lean_inc(x_2);
lean_inc(x_1);
x_9 = lean_apply_3(x_5, x_1, x_2, x_3);
x_10 = lean_ctor_get(x_9, 3);
lean_inc(x_10);
if (lean_obj_tag(x_10) == 0)
{
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_2);
lean_dec(x_1);
return x_9;
}
else
{
lean_object* x_11; lean_object* x_12; uint8_t x_13;
x_11 = lean_ctor_get(x_10, 0);
lean_inc(x_11);
lean_dec(x_10);
x_12 = lean_ctor_get(x_9, 1);
x_11 = lean_apply_3(x_7, x_1, x_2, x_3);
x_12 = lean_ctor_get(x_11, 3);
lean_inc(x_12);
x_13 = lean_nat_dec_eq(x_12, x_8);
if (lean_obj_tag(x_12) == 0)
{
lean_dec(x_10);
lean_dec(x_9);
lean_dec(x_5);
lean_dec(x_2);
lean_dec(x_1);
return x_11;
}
else
{
lean_object* x_13; lean_object* x_14; uint8_t x_15;
x_13 = lean_ctor_get(x_12, 0);
lean_inc(x_13);
lean_dec(x_12);
if (x_13 == 0)
x_14 = lean_ctor_get(x_11, 1);
lean_inc(x_14);
x_15 = lean_nat_dec_eq(x_14, x_10);
lean_dec(x_14);
if (x_15 == 0)
{
lean_dec(x_11);
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_13);
lean_dec(x_10);
lean_dec(x_9);
lean_dec(x_5);
lean_dec(x_2);
lean_dec(x_1);
return x_9;
return x_11;
}
else
{
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
lean_inc(x_8);
x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8);
lean_dec(x_7);
x_15 = lean_ctor_get(x_14, 0);
lean_inc(x_15);
x_16 = lean_array_get_size(x_15);
lean_dec(x_15);
x_17 = l_Lean_Parser_rawIdentFn(x_2, x_14);
x_18 = lean_ctor_get(x_17, 3);
lean_inc(x_18);
if (lean_obj_tag(x_18) == 0)
lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20;
lean_inc(x_10);
x_16 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10);
lean_dec(x_9);
x_17 = lean_ctor_get(x_16, 0);
lean_inc(x_17);
x_18 = lean_array_get_size(x_17);
lean_dec(x_17);
lean_inc(x_2);
lean_inc(x_1);
x_19 = lean_apply_3(x_5, x_1, x_2, x_16);
x_20 = lean_ctor_get(x_19, 3);
lean_inc(x_20);
if (lean_obj_tag(x_20) == 0)
{
lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27;
x_19 = lean_ctor_get(x_17, 0);
lean_inc(x_19);
x_20 = lean_array_get_size(x_19);
lean_dec(x_19);
x_21 = 0;
x_22 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Command_attrInstance___elambda__1___spec__1(x_21, x_1, x_2, x_17);
x_23 = l_Lean_nullKind;
x_24 = l_Lean_Parser_ParserState_mkNode(x_22, x_23, x_20);
x_25 = l_Lean_Parser_Command_attrInstance___elambda__1___closed__2;
x_26 = l_Lean_Parser_ParserState_mkNode(x_24, x_25, x_16);
x_27 = l_Lean_Parser_mergeOrElseErrors(x_26, x_11, x_8);
lean_dec(x_8);
return x_27;
lean_object* x_21; lean_object* x_22; uint8_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29;
x_21 = lean_ctor_get(x_19, 0);
lean_inc(x_21);
x_22 = lean_array_get_size(x_21);
lean_dec(x_21);
x_23 = 0;
x_24 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Command_attrInstance___elambda__1___spec__1(x_23, x_1, x_2, x_19);
x_25 = l_Lean_nullKind;
x_26 = l_Lean_Parser_ParserState_mkNode(x_24, x_25, x_22);
x_27 = l_Lean_Parser_Command_attrInstance___elambda__1___closed__2;
x_28 = l_Lean_Parser_ParserState_mkNode(x_26, x_27, x_18);
x_29 = l_Lean_Parser_mergeOrElseErrors(x_28, x_13, x_10);
lean_dec(x_10);
return x_29;
}
else
{
lean_object* x_28; lean_object* x_29; lean_object* x_30;
lean_dec(x_18);
lean_object* x_30; lean_object* x_31; lean_object* x_32;
lean_dec(x_20);
lean_dec(x_2);
lean_dec(x_1);
x_28 = l_Lean_Parser_Command_attrInstance___elambda__1___closed__2;
x_29 = l_Lean_Parser_ParserState_mkNode(x_17, x_28, x_16);
x_30 = l_Lean_Parser_mergeOrElseErrors(x_29, x_11, x_8);
lean_dec(x_8);
return x_30;
x_30 = l_Lean_Parser_Command_attrInstance___elambda__1___closed__2;
x_31 = l_Lean_Parser_ParserState_mkNode(x_19, x_30, x_18);
x_32 = l_Lean_Parser_mergeOrElseErrors(x_31, x_13, x_10);
lean_dec(x_10);
return x_32;
}
}
}
@ -2913,11 +2920,13 @@ return x_3;
lean_object* _init_l_Lean_Parser_Command_attrInstance___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Parser_inhabited___closed__1;
x_2 = l_Lean_Parser_Command_attrInstance___closed__1;
x_3 = l_Lean_Parser_andthenInfo(x_1, x_2);
return x_3;
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_quotedName___elambda__1___closed__6;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Command_attrInstance___closed__1;
x_4 = l_Lean_Parser_andthenInfo(x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Command_attrInstance___closed__3() {

View file

@ -283,6 +283,7 @@ lean_object* lean_nat_add(lean_object*, lean_object*);
lean_object* l_Lean_Parser_ident___boxed(lean_object*);
lean_object* l_Lean_Parser_indexed___rarg(lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Parser_takeWhileFn___lambda__1(lean_object*, uint32_t);
lean_object* l_Lean_Parser_rawIdentNoAntiquot___boxed(lean_object*);
lean_object* l_Lean_Parser_andthenInfo___elambda__2(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_mkAntiquot___closed__3;
lean_object* l_IO_ofExcept___at_Lean_registerClassAttr___spec__1(lean_object*, lean_object*);
@ -395,6 +396,7 @@ lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main
lean_object* l_Lean_Parser_longestMatchFnAux(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_lookaheadFn(uint8_t);
extern lean_object* l_Lean_EnvExtension_Inhabited___rarg___closed__1;
lean_object* l_Lean_Parser_rawIdentNoAntiquot___closed__1;
lean_object* l_Lean_Parser_symbolNoWsFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_nodeInfo(lean_object*, lean_object*);
lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__2___rarg(lean_object*, lean_object*, lean_object*);
@ -606,6 +608,7 @@ lean_object* l___private_Init_Lean_Parser_Parser_21__noImmediateColon(uint8_t);
lean_object* l_Lean_Parser_symbolNoWsInfo(lean_object*, lean_object*);
lean_object* l_Lean_Parser_epsilonInfo___elambda__1___boxed(lean_object*);
lean_object* l_Lean_registerBuiltinAttribute(lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdent___elambda__1___boxed(lean_object*);
lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*);
lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepRevArgsM___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_mkAtomicInfo___elambda__1(lean_object*);
@ -617,7 +620,6 @@ lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec_
lean_object* l_Lean_Parser_ParsingTables_inhabited___closed__1;
lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_binNumberFn___spec__2___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Parser_strLitFnAux___main(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdent___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Error_toString___closed__2;
lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Data_Trie_3__findAux___main___rarg(lean_object*, lean_object*, lean_object*);
@ -625,7 +627,6 @@ lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__6;
lean_object* l_IO_Prim_Ref_get___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_longestMatchMkResult(lean_object*, lean_object*);
lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_19__ParserAttribute_add___spec__4(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdent___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
size_t l_USize_mul(size_t, size_t);
lean_object* l___private_Init_Lean_Parser_Parser_21__noImmediateColon___boxed(lean_object*);
lean_object* l_Lean_FileMap_ofString(lean_object*);
@ -658,6 +659,7 @@ lean_object* l___private_Init_Lean_Parser_Parser_18__BuiltinParserAttribute_add_
lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed(lean_object*);
lean_object* l_Lean_Parser_ident___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_addTrailingParser(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdentNoAntiquot___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_mkAntiquot___closed__7;
lean_object* l_Lean_Parser_chFn(uint8_t);
lean_object* l_Lean_Parser_mkAtomicInfo___elambda__2___boxed(lean_object*);
@ -754,6 +756,7 @@ lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__2
lean_object* l_Lean_Parser_longestMatchStep___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_string2basic___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Parser_ParserState_keepNewError___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdent___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Parser_Parser_14__addTrailingParserAux(lean_object*, lean_object*);
lean_object* l_Lean_Parser_longestMatchFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__4___closed__2;
@ -843,6 +846,7 @@ lean_object* l_Lean_Parser_FirstTokens_toStr___closed__2;
lean_object* l_Lean_Parser_hashOrelse___boxed(lean_object*);
lean_object* l_Lean_Parser_symbolOrIdent___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_io_ref_swap(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdentNoAntiquot(uint8_t);
lean_object* l_Lean_Parser_ParserState_replaceLongest(lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Parser_TokenConfig_beq(lean_object*, lean_object*);
lean_object* l_Lean_Parser_strLitFn___rarg(lean_object*, lean_object*);
@ -931,7 +935,6 @@ lean_object* l_Lean_EnvExtension_getStateUnsafe___rarg(lean_object*, lean_object
lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux(uint8_t);
lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_mkAntiquot___closed__6;
lean_object* l_Lean_Parser_rawIdent___closed__1;
lean_object* l_Lean_Parser_parserExtension___elambda__1(lean_object*);
lean_object* l___private_Init_Lean_Parser_Parser_8__throwParserCategoryAlreadyDefined___rarg___closed__2;
lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3(lean_object*, lean_object*);
@ -1082,8 +1085,10 @@ lean_object* l_Lean_Parser_group___boxed(lean_object*, lean_object*);
lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__3___rarg(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_many1Indent___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_sepBy1Info___elambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdent___elambda__1(uint8_t);
lean_object* l___private_Init_Lean_Parser_Parser_13__addTokenConfig___closed__3;
lean_object* l_Lean_Parser_strLit(uint8_t);
lean_object* l_Lean_Parser_rawIdentNoAntiquot___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_many1(uint8_t, lean_object*, uint8_t);
lean_object* l___private_Init_Lean_Parser_Parser_16__ParserExtension_addEntry(lean_object*, lean_object*);
lean_object* l_Lean_Parser_mkAtomicInfo___closed__2;
@ -11269,7 +11274,7 @@ x_3 = l_Lean_Parser_identNoAntiquot(x_2);
return x_3;
}
}
lean_object* l_Lean_Parser_rawIdent___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
lean_object* l_Lean_Parser_rawIdentNoAntiquot___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4;
@ -11277,43 +11282,43 @@ x_4 = l_Lean_Parser_rawIdentFn(x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_rawIdent___closed__1() {
lean_object* _init_l_Lean_Parser_rawIdentNoAntiquot___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_alloc_closure((void*)(l_Lean_Parser_rawIdent___lambda__1___boxed), 3, 0);
x_1 = lean_alloc_closure((void*)(l_Lean_Parser_rawIdentNoAntiquot___lambda__1___boxed), 3, 0);
return x_1;
}
}
lean_object* l_Lean_Parser_rawIdent(uint8_t x_1) {
lean_object* l_Lean_Parser_rawIdentNoAntiquot(uint8_t x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_2 = l_Lean_Parser_Parser_inhabited___closed__1;
x_3 = l_Lean_Parser_rawIdent___closed__1;
x_3 = l_Lean_Parser_rawIdentNoAntiquot___closed__1;
x_4 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_4, 0, x_2);
lean_ctor_set(x_4, 1, x_3);
return x_4;
}
}
lean_object* l_Lean_Parser_rawIdent___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
lean_object* l_Lean_Parser_rawIdentNoAntiquot___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4;
x_4 = l_Lean_Parser_rawIdent___lambda__1(x_1, x_2, x_3);
x_4 = l_Lean_Parser_rawIdentNoAntiquot___lambda__1(x_1, x_2, x_3);
lean_dec(x_2);
lean_dec(x_1);
return x_4;
}
}
lean_object* l_Lean_Parser_rawIdent___boxed(lean_object* x_1) {
lean_object* l_Lean_Parser_rawIdentNoAntiquot___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = l_Lean_Parser_rawIdent(x_2);
x_3 = l_Lean_Parser_rawIdentNoAntiquot(x_2);
return x_3;
}
}
@ -35261,6 +35266,117 @@ x_3 = l_Lean_Parser_ident(x_2);
return x_3;
}
}
lean_object* l_Lean_Parser_rawIdent___elambda__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
_start:
{
lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_6 = lean_ctor_get(x_5, 0);
lean_inc(x_6);
x_7 = lean_array_get_size(x_6);
lean_dec(x_6);
x_8 = lean_ctor_get(x_5, 1);
lean_inc(x_8);
lean_inc(x_4);
lean_inc(x_3);
x_9 = lean_apply_3(x_2, x_3, x_4, x_5);
x_10 = lean_ctor_get(x_9, 3);
lean_inc(x_10);
if (lean_obj_tag(x_10) == 0)
{
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
return x_9;
}
else
{
lean_object* x_11; lean_object* x_12; uint8_t x_13;
x_11 = lean_ctor_get(x_10, 0);
lean_inc(x_11);
lean_dec(x_10);
x_12 = lean_ctor_get(x_9, 1);
lean_inc(x_12);
x_13 = lean_nat_dec_eq(x_12, x_8);
lean_dec(x_12);
if (x_13 == 0)
{
lean_dec(x_11);
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
return x_9;
}
else
{
lean_object* x_14; lean_object* x_15; lean_object* x_16;
lean_inc(x_8);
x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8);
lean_dec(x_7);
x_15 = lean_apply_3(x_1, x_3, x_4, x_14);
x_16 = l_Lean_Parser_mergeOrElseErrors(x_15, x_11, x_8);
lean_dec(x_8);
return x_16;
}
}
}
}
lean_object* l_Lean_Parser_rawIdent___elambda__1(uint8_t x_1) {
_start:
{
lean_object* x_2;
x_2 = lean_alloc_closure((void*)(l_Lean_Parser_rawIdent___elambda__1___rarg), 5, 0);
return x_2;
}
}
lean_object* l_Lean_Parser_rawIdent(uint8_t x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12;
x_2 = l_Lean_Syntax_getKind___closed__3;
x_3 = l_Lean_Parser_ident___closed__1;
x_4 = 1;
x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4);
x_6 = lean_ctor_get(x_5, 0);
lean_inc(x_6);
x_7 = l_Lean_Parser_Parser_inhabited___closed__1;
x_8 = l_Lean_Parser_orelseInfo(x_6, x_7);
x_9 = lean_ctor_get(x_5, 1);
lean_inc(x_9);
lean_dec(x_5);
x_10 = l_Lean_Parser_rawIdentNoAntiquot___closed__1;
x_11 = lean_alloc_closure((void*)(l_Lean_Parser_rawIdent___elambda__1___rarg), 5, 2);
lean_closure_set(x_11, 0, x_10);
lean_closure_set(x_11, 1, x_9);
x_12 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_12, 0, x_8);
lean_ctor_set(x_12, 1, x_11);
return x_12;
}
}
lean_object* l_Lean_Parser_rawIdent___elambda__1___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = l_Lean_Parser_rawIdent___elambda__1(x_2);
return x_3;
}
}
lean_object* l_Lean_Parser_rawIdent___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = l_Lean_Parser_rawIdent(x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_fieldIdxFn___closed__1() {
_start:
{
@ -36614,8 +36730,8 @@ l_Lean_Parser_identFn___rarg___closed__1 = _init_l_Lean_Parser_identFn___rarg___
lean_mark_persistent(l_Lean_Parser_identFn___rarg___closed__1);
l_Lean_Parser_identNoAntiquot___closed__1 = _init_l_Lean_Parser_identNoAntiquot___closed__1();
lean_mark_persistent(l_Lean_Parser_identNoAntiquot___closed__1);
l_Lean_Parser_rawIdent___closed__1 = _init_l_Lean_Parser_rawIdent___closed__1();
lean_mark_persistent(l_Lean_Parser_rawIdent___closed__1);
l_Lean_Parser_rawIdentNoAntiquot___closed__1 = _init_l_Lean_Parser_rawIdentNoAntiquot___closed__1();
lean_mark_persistent(l_Lean_Parser_rawIdentNoAntiquot___closed__1);
l_Lean_Parser_quotedSymbolFn___rarg___closed__1 = _init_l_Lean_Parser_quotedSymbolFn___rarg___closed__1();
lean_mark_persistent(l_Lean_Parser_quotedSymbolFn___rarg___closed__1);
l_Lean_Parser_quotedSymbolFn___rarg___closed__2 = _init_l_Lean_Parser_quotedSymbolFn___rarg___closed__2();

View file

@ -435,6 +435,7 @@ lean_object* l_Lean_Parser_Term_parser_x21___closed__5;
lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_bnot___elambda__1___closed__6;
lean_object* l_Lean_Parser_Term_instBinder___closed__7;
lean_object* l_Lean_Parser_Term_quotedName___elambda__1___closed__9;
lean_object* lean_string_utf8_byte_size(lean_object*);
lean_object* l_Lean_Parser_Term_leftArrow___elambda__1___rarg(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_if;
@ -535,7 +536,6 @@ lean_object* l_Lean_Parser_Term_nomatch___closed__4;
extern lean_object* l_Lean_Parser_numLit___closed__1;
lean_object* l_Lean_Parser_Term_or___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_listLit___elambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_rawIdentFn(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_ge___closed__1;
lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__10;
lean_object* l_Lean_Parser_Term_arrayRef___closed__5;
@ -962,6 +962,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Term_seq(lean_object*);
lean_object* l_Lean_Parser_Term_equation;
lean_object* l_Lean_Parser_Term_sub___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_bindOp___closed__2;
lean_object* l_Lean_Parser_rawIdent(uint8_t);
lean_object* l_Lean_Parser_Term_uminus___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_uminus___closed__5;
lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2;
@ -21992,19 +21993,18 @@ return x_2;
lean_object* _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Char_HasRepr___closed__1;
x_2 = l_Lean_Parser_Term_quotedName___elambda__1___closed__5;
x_3 = lean_string_append(x_1, x_2);
return x_3;
uint8_t x_1; lean_object* x_2;
x_1 = 0;
x_2 = l_Lean_Parser_rawIdent(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_quotedName___elambda__1___closed__6;
x_2 = l_Char_HasRepr___closed__1;
x_1 = l_Char_HasRepr___closed__1;
x_2 = l_Lean_Parser_Term_quotedName___elambda__1___closed__5;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
@ -22013,8 +22013,18 @@ lean_object* _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_quotedName___elambda__1___closed__7;
x_2 = l_Char_HasRepr___closed__1;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_quotedName___elambda__1___closed__7;
x_2 = l_Lean_Parser_Term_quotedName___elambda__1___closed__8;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_2);
lean_ctor_set(x_3, 1, x_1);
@ -22024,137 +22034,146 @@ return x_3;
lean_object* l_Lean_Parser_Term_quotedName___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_4 = l_Lean_Parser_Term_quotedName___elambda__1___closed__4;
lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12;
x_4 = l_Lean_Parser_Term_quotedName___elambda__1___closed__6;
x_5 = lean_ctor_get(x_4, 1);
lean_inc(x_5);
x_6 = lean_ctor_get(x_3, 0);
lean_inc(x_6);
x_7 = lean_array_get_size(x_6);
lean_dec(x_6);
x_8 = lean_ctor_get(x_3, 1);
x_6 = l_Lean_Parser_Term_quotedName___elambda__1___closed__4;
x_7 = lean_ctor_get(x_6, 1);
lean_inc(x_7);
x_8 = lean_ctor_get(x_3, 0);
lean_inc(x_8);
lean_inc(x_2);
x_9 = lean_apply_3(x_5, x_1, x_2, x_3);
x_10 = lean_ctor_get(x_9, 3);
x_9 = lean_array_get_size(x_8);
lean_dec(x_8);
x_10 = lean_ctor_get(x_3, 1);
lean_inc(x_10);
if (lean_obj_tag(x_10) == 0)
{
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_2);
return x_9;
}
else
{
lean_object* x_11; lean_object* x_12; uint8_t x_13;
x_11 = lean_ctor_get(x_10, 0);
lean_inc(x_11);
lean_dec(x_10);
x_12 = lean_ctor_get(x_9, 1);
lean_inc(x_12);
x_13 = lean_nat_dec_eq(x_12, x_8);
lean_dec(x_12);
if (x_13 == 0)
{
lean_dec(x_11);
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_2);
return x_9;
}
else
{
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_27; lean_object* x_28;
lean_inc(x_8);
x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8);
lean_dec(x_7);
x_15 = lean_ctor_get(x_14, 0);
lean_inc(x_15);
x_16 = lean_array_get_size(x_15);
lean_dec(x_15);
lean_inc(x_2);
x_27 = l_Lean_Parser_tokenFn(x_2, x_14);
x_28 = lean_ctor_get(x_27, 3);
lean_inc(x_28);
if (lean_obj_tag(x_28) == 0)
lean_inc(x_1);
x_11 = lean_apply_3(x_7, x_1, x_2, x_3);
x_12 = lean_ctor_get(x_11, 3);
lean_inc(x_12);
if (lean_obj_tag(x_12) == 0)
{
lean_object* x_29; lean_object* x_30;
x_29 = lean_ctor_get(x_27, 0);
lean_inc(x_29);
x_30 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_29);
lean_dec(x_29);
if (lean_obj_tag(x_30) == 2)
lean_dec(x_10);
lean_dec(x_9);
lean_dec(x_5);
lean_dec(x_2);
lean_dec(x_1);
return x_11;
}
else
{
lean_object* x_31; lean_object* x_32; uint8_t x_33;
x_31 = lean_ctor_get(x_30, 1);
lean_object* x_13; lean_object* x_14; uint8_t x_15;
x_13 = lean_ctor_get(x_12, 0);
lean_inc(x_13);
lean_dec(x_12);
x_14 = lean_ctor_get(x_11, 1);
lean_inc(x_14);
x_15 = lean_nat_dec_eq(x_14, x_10);
lean_dec(x_14);
if (x_15 == 0)
{
lean_dec(x_13);
lean_dec(x_10);
lean_dec(x_9);
lean_dec(x_5);
lean_dec(x_2);
lean_dec(x_1);
return x_11;
}
else
{
lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_29; lean_object* x_30;
lean_inc(x_10);
x_16 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10);
lean_dec(x_9);
x_17 = lean_ctor_get(x_16, 0);
lean_inc(x_17);
x_18 = lean_array_get_size(x_17);
lean_dec(x_17);
lean_inc(x_2);
x_29 = l_Lean_Parser_tokenFn(x_2, x_16);
x_30 = lean_ctor_get(x_29, 3);
lean_inc(x_30);
if (lean_obj_tag(x_30) == 0)
{
lean_object* x_31; lean_object* x_32;
x_31 = lean_ctor_get(x_29, 0);
lean_inc(x_31);
lean_dec(x_30);
x_32 = l_Lean_Parser_Term_quotedName___elambda__1___closed__5;
x_33 = lean_string_dec_eq(x_31, x_32);
x_32 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_31);
lean_dec(x_31);
if (x_33 == 0)
if (lean_obj_tag(x_32) == 2)
{
lean_object* x_34; lean_object* x_35;
x_34 = l_Lean_Parser_Term_quotedName___elambda__1___closed__8;
lean_inc(x_8);
x_35 = l_Lean_Parser_ParserState_mkErrorsAt(x_27, x_34, x_8);
x_17 = x_35;
goto block_26;
}
else
{
x_17 = x_27;
goto block_26;
}
}
else
lean_object* x_33; lean_object* x_34; uint8_t x_35;
x_33 = lean_ctor_get(x_32, 1);
lean_inc(x_33);
lean_dec(x_32);
x_34 = l_Lean_Parser_Term_quotedName___elambda__1___closed__5;
x_35 = lean_string_dec_eq(x_33, x_34);
lean_dec(x_33);
if (x_35 == 0)
{
lean_object* x_36; lean_object* x_37;
lean_dec(x_30);
x_36 = l_Lean_Parser_Term_quotedName___elambda__1___closed__8;
lean_inc(x_8);
x_37 = l_Lean_Parser_ParserState_mkErrorsAt(x_27, x_36, x_8);
x_17 = x_37;
goto block_26;
x_36 = l_Lean_Parser_Term_quotedName___elambda__1___closed__9;
lean_inc(x_10);
x_37 = l_Lean_Parser_ParserState_mkErrorsAt(x_29, x_36, x_10);
x_19 = x_37;
goto block_28;
}
else
{
x_19 = x_29;
goto block_28;
}
}
else
{
lean_object* x_38; lean_object* x_39;
lean_dec(x_28);
x_38 = l_Lean_Parser_Term_quotedName___elambda__1___closed__8;
lean_inc(x_8);
x_39 = l_Lean_Parser_ParserState_mkErrorsAt(x_27, x_38, x_8);
x_17 = x_39;
goto block_26;
lean_dec(x_32);
x_38 = l_Lean_Parser_Term_quotedName___elambda__1___closed__9;
lean_inc(x_10);
x_39 = l_Lean_Parser_ParserState_mkErrorsAt(x_29, x_38, x_10);
x_19 = x_39;
goto block_28;
}
block_26:
{
lean_object* x_18;
x_18 = lean_ctor_get(x_17, 3);
lean_inc(x_18);
if (lean_obj_tag(x_18) == 0)
{
lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22;
x_19 = l_Lean_Parser_rawIdentFn(x_2, x_17);
lean_dec(x_2);
x_20 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2;
x_21 = l_Lean_Parser_ParserState_mkNode(x_19, x_20, x_16);
x_22 = l_Lean_Parser_mergeOrElseErrors(x_21, x_11, x_8);
lean_dec(x_8);
return x_22;
}
else
{
lean_object* x_23; lean_object* x_24; lean_object* x_25;
lean_dec(x_18);
lean_object* x_40; lean_object* x_41;
lean_dec(x_30);
x_40 = l_Lean_Parser_Term_quotedName___elambda__1___closed__9;
lean_inc(x_10);
x_41 = l_Lean_Parser_ParserState_mkErrorsAt(x_29, x_40, x_10);
x_19 = x_41;
goto block_28;
}
block_28:
{
lean_object* x_20;
x_20 = lean_ctor_get(x_19, 3);
lean_inc(x_20);
if (lean_obj_tag(x_20) == 0)
{
lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24;
x_21 = lean_apply_3(x_5, x_1, x_2, x_19);
x_22 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2;
x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_18);
x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_13, x_10);
lean_dec(x_10);
return x_24;
}
else
{
lean_object* x_25; lean_object* x_26; lean_object* x_27;
lean_dec(x_20);
lean_dec(x_5);
lean_dec(x_2);
x_23 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2;
x_24 = l_Lean_Parser_ParserState_mkNode(x_17, x_23, x_16);
x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_11, x_8);
lean_dec(x_8);
return x_25;
lean_dec(x_1);
x_25 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2;
x_26 = l_Lean_Parser_ParserState_mkNode(x_19, x_25, x_18);
x_27 = l_Lean_Parser_mergeOrElseErrors(x_26, x_13, x_10);
lean_dec(x_10);
return x_27;
}
}
}
@ -22174,11 +22193,13 @@ return x_3;
lean_object* _init_l_Lean_Parser_Term_quotedName___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_quotedName___closed__1;
x_2 = l_Lean_Parser_Parser_inhabited___closed__1;
x_3 = l_Lean_Parser_andthenInfo(x_1, x_2);
return x_3;
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_quotedName___elambda__1___closed__6;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Term_quotedName___closed__1;
x_4 = l_Lean_Parser_andthenInfo(x_3, x_2);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Term_quotedName___closed__3() {
@ -38297,6 +38318,8 @@ l_Lean_Parser_Term_quotedName___elambda__1___closed__7 = _init_l_Lean_Parser_Ter
lean_mark_persistent(l_Lean_Parser_Term_quotedName___elambda__1___closed__7);
l_Lean_Parser_Term_quotedName___elambda__1___closed__8 = _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__8();
lean_mark_persistent(l_Lean_Parser_Term_quotedName___elambda__1___closed__8);
l_Lean_Parser_Term_quotedName___elambda__1___closed__9 = _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__9();
lean_mark_persistent(l_Lean_Parser_Term_quotedName___elambda__1___closed__9);
l_Lean_Parser_Term_quotedName___closed__1 = _init_l_Lean_Parser_Term_quotedName___closed__1();
lean_mark_persistent(l_Lean_Parser_Term_quotedName___closed__1);
l_Lean_Parser_Term_quotedName___closed__2 = _init_l_Lean_Parser_Term_quotedName___closed__2();

View file

@ -178,6 +178,7 @@ lean_object* l_Lean_SyntaxNode_modifyArgs(lean_object*, lean_object*);
lean_object* l_Lean_SyntaxNode_getArgs___boxed(lean_object*);
lean_object* l_List_map___main___at_Lean_Syntax_formatStxAux___main___spec__4(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_unreachIsNodeIdent___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_String_Iterator_HasRepr___closed__2;
lean_object* l_Lean_SourceInfo_appendToLeading(lean_object*, lean_object*);
lean_object* l_Lean_Syntax_isCharLit_x3f___boxed(lean_object*);
lean_object* l_Lean_Syntax_getTailInfo___main___boxed(lean_object*);
@ -3427,27 +3428,30 @@ _start:
{
if (lean_obj_tag(x_1) == 0)
{
lean_inc(x_2);
return x_2;
lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_3 = l_String_Iterator_HasRepr___closed__2;
x_4 = lean_string_append(x_3, x_2);
x_5 = lean_string_append(x_4, x_3);
return x_5;
}
else
{
lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15;
x_3 = lean_ctor_get(x_1, 0);
x_4 = lean_ctor_get(x_3, 0);
x_5 = lean_ctor_get(x_3, 2);
x_6 = lean_ctor_get(x_4, 0);
x_7 = lean_ctor_get(x_4, 1);
x_8 = lean_ctor_get(x_4, 2);
x_9 = lean_string_utf8_extract(x_6, x_7, x_8);
x_10 = lean_string_append(x_9, x_2);
x_11 = lean_ctor_get(x_5, 0);
x_12 = lean_ctor_get(x_5, 1);
x_13 = lean_ctor_get(x_5, 2);
x_14 = lean_string_utf8_extract(x_11, x_12, x_13);
x_15 = lean_string_append(x_10, x_14);
lean_dec(x_14);
return x_15;
lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
x_6 = lean_ctor_get(x_1, 0);
x_7 = lean_ctor_get(x_6, 0);
x_8 = lean_ctor_get(x_6, 2);
x_9 = lean_ctor_get(x_7, 0);
x_10 = lean_ctor_get(x_7, 1);
x_11 = lean_ctor_get(x_7, 2);
x_12 = lean_string_utf8_extract(x_9, x_10, x_11);
x_13 = lean_string_append(x_12, x_2);
x_14 = lean_ctor_get(x_8, 0);
x_15 = lean_ctor_get(x_8, 1);
x_16 = lean_ctor_get(x_8, 2);
x_17 = lean_string_utf8_extract(x_14, x_15, x_16);
x_18 = lean_string_append(x_13, x_17);
lean_dec(x_17);
return x_18;
}
}
}

View file

@ -723,7 +723,7 @@ lean_object* _init_l_IO_Error_toString___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Already exists");
x_1 = lean_mk_string("already exists");
return x_1;
}
}
@ -731,7 +731,7 @@ lean_object* _init_l_IO_Error_toString___closed__2() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Resource busy");
x_1 = lean_mk_string("resource busy");
return x_1;
}
}
@ -739,7 +739,7 @@ lean_object* _init_l_IO_Error_toString___closed__3() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Resource vanished");
x_1 = lean_mk_string("resource vanished");
return x_1;
}
}
@ -747,7 +747,7 @@ lean_object* _init_l_IO_Error_toString___closed__4() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Unsupported operation");
x_1 = lean_mk_string("unsupported operation");
return x_1;
}
}
@ -755,7 +755,7 @@ lean_object* _init_l_IO_Error_toString___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Hardware fault");
x_1 = lean_mk_string("hardware fault");
return x_1;
}
}
@ -763,7 +763,7 @@ lean_object* _init_l_IO_Error_toString___closed__6() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Directory not empty");
x_1 = lean_mk_string("directory not empty");
return x_1;
}
}
@ -771,7 +771,7 @@ lean_object* _init_l_IO_Error_toString___closed__7() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Illegal operation");
x_1 = lean_mk_string("illegal operation");
return x_1;
}
}
@ -779,7 +779,7 @@ lean_object* _init_l_IO_Error_toString___closed__8() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Protocol error");
x_1 = lean_mk_string("protocol error");
return x_1;
}
}
@ -787,7 +787,7 @@ lean_object* _init_l_IO_Error_toString___closed__9() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Time expired");
x_1 = lean_mk_string("time expired");
return x_1;
}
}
@ -795,7 +795,7 @@ lean_object* _init_l_IO_Error_toString___closed__10() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Interrupted system call");
x_1 = lean_mk_string("interrupted system call");
return x_1;
}
}
@ -803,7 +803,7 @@ lean_object* _init_l_IO_Error_toString___closed__11() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("No such file or directory");
x_1 = lean_mk_string("no such file or directory");
return x_1;
}
}
@ -811,7 +811,7 @@ lean_object* _init_l_IO_Error_toString___closed__12() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Invalid argument");
x_1 = lean_mk_string("invalid argument");
return x_1;
}
}
@ -819,7 +819,7 @@ lean_object* _init_l_IO_Error_toString___closed__13() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Resource exhausted");
x_1 = lean_mk_string("resource exhausted");
return x_1;
}
}
@ -827,7 +827,7 @@ lean_object* _init_l_IO_Error_toString___closed__14() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Inappropriate type");
x_1 = lean_mk_string("inappropriate type");
return x_1;
}
}
@ -835,7 +835,7 @@ lean_object* _init_l_IO_Error_toString___closed__15() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("No such thing");
x_1 = lean_mk_string("no such thing");
return x_1;
}
}