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.
KeyedDeclsAttribute
definition.
Important: mkConst valueTypeName
and γ
must be definitionally equal.
- builtinName : Lean.Name
Builtin attribute name, if any (e.g., `builtin_term_elab)
- name : Lean.Name
Attribute name (e.g., `term_elab)
- descr : String
Attribute description
- valueTypeName : Lean.Name
- evalKey : Bool → Lean.Syntax → Lean.AttrM Lean.KeyedDeclsAttribute.Key
Convert
Syntax
into aKey
, the default implementation expects an identifier. - onAdded : Bool → Lean.Name → Lean.AttrM Unit
Instances For
Equations
- One or more equations did not get rendered due to their size.
- declName : Lean.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 } }
- 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 Lean.Name
- erased : Lean.PHashSet Lean.Name
Instances For
Equations
- Lean.KeyedDeclsAttribute.instInhabitedExtensionState = { default := { newEntries := default, table := default, declNames := default, erased := default } }
- defn : Lean.KeyedDeclsAttribute.Def γ
- tableRef : IO.Ref (Lean.KeyedDeclsAttribute.Table γ)
Instances For
Instances For
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Retrieve entries tagged with [attr key]
or [builtinAttr key]
.
Instances For
Retrieve values tagged with [attr key]
or [builtinAttr key]
.