chore: record uses of user-defined attributes as shake dependencies (#11202)
This commit is contained in:
parent
ed34ee0cd5
commit
0b93b3f182
1 changed files with 4 additions and 0 deletions
|
|
@ -7,6 +7,7 @@ module
|
|||
|
||||
prelude
|
||||
public import Lean.Elab.Util
|
||||
public import Lean.Compiler.InitAttr
|
||||
import Lean.Parser.Term
|
||||
|
||||
public section
|
||||
|
|
@ -56,6 +57,9 @@ def elabAttr [Monad m] [MonadEnv m] [MonadResolveName m] [MonadError m] [MonadMa
|
|||
| _ => throwErrorAt attr "Unknown attribute"
|
||||
let .ok _impl := getAttributeImpl (← getEnv) attrName
|
||||
| throwError "Unknown attribute `[{attrName}]`"
|
||||
if let .ok impl := getAttributeImpl (← getEnv) attrName then
|
||||
if isIOUnitRegularInitFn (← getEnv) impl.ref then -- skip `builtin_initialize` attributes
|
||||
recordExtraModUseFromDecl (isMeta := true) impl.ref
|
||||
/- The `AttrM` does not have sufficient information for expanding macros in `args`.
|
||||
So, we expand them before here before we invoke the attributer handlers implemented using `AttrM`. -/
|
||||
return { kind := attrKind, name := attrName, stx := attr }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue