A builder for attributes that are applied to declarations of a common type and
group them by the given attribute argument (an arbitrary Name
, currently).
Also creates a second "builtin" attribute used for bootstrapping, which saves
the applied declarations in an IO.Ref
instead of an environment extension.
Used to register elaborators, macros, tactics, and delaborators.
Equations
Instances For
KeyedDeclsAttribute
definition.
Important: mkConst valueTypeName
and γ
must be definitionally equal.
- builtinName : Lake.Name
Builtin attribute name, if any (e.g., `builtin_term_elab)
- name : Lake.Name
Attribute name (e.g., `term_elab)
- descr : String
Attribute description
- valueTypeName : Lake.Name
- evalKey : Bool → Lean.Syntax → Lean.AttrM Lean.KeyedDeclsAttribute.Key
Convert
Syntax
into aKey
, the default implementation expects an identifier. - onAdded : Bool → Lake.Name → Lean.AttrM Unit
Instances For
Equations
- One or more equations did not get rendered due to their size.
- declName : Lake.Name
Name of a declaration stored in the environment which has type
mkConst Def.valueTypeName
.
Instances For
Equations
- Lean.KeyedDeclsAttribute.instInhabitedOLeanEntry = { default := { key := default, declName := default } }
- declName : Lake.Name
- value : γ
Recall that we cannot store
γ
into .olean files because it is a closure. GivenOLeanEntry.declName
, we convert it into aγ
by using the unsafe functionevalConstCheck
.
Instances For
Equations
Instances For
- newEntries : List Lean.KeyedDeclsAttribute.OLeanEntry
- table : Lean.KeyedDeclsAttribute.Table γ
- declNames : Lean.PHashSet Lake.Name
- erased : Lean.PHashSet Lake.Name
Instances For
Equations
- Lean.KeyedDeclsAttribute.instInhabitedExtensionState = { default := { newEntries := default, table := default, declNames := default, erased := default } }
Equations
Instances For
- defn : Lean.KeyedDeclsAttribute.Def γ
- tableRef : IO.Ref (Lean.KeyedDeclsAttribute.Table γ)
Instances For
Equations
- ⋯ = ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Retrieve entries tagged with [attr key]
or [builtinAttr key]
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Retrieve values tagged with [attr key]
or [builtinAttr key]
.
Equations
- Lean.KeyedDeclsAttribute.getValues attr env key = List.map Lean.KeyedDeclsAttribute.AttributeEntry.value (Lean.KeyedDeclsAttribute.getEntries attr env key)