File: .lake/packages/lean4/src/lean/Lean/Linter/Deprecated.lean

full_name: Lean.Linter.initFn._@..lake.packages.lean4.src.lean.Lean.Linter.Deprecated._hyg.6
code: register_builtin_option linter.deprecated : Bool := {
  defValue := true
  descr := "if true, generate deprecation warnings"
}
goal: IO (Lean.Option Bool)

full_name: Lean.Linter.linter.deprecated
code: register_builtin_option linter.deprecated : Bool := {
  defValue := true
  descr := "if true, generate deprecation warnings"
}
goal: Lean.Option Bool

full_name: Lean.Linter.DeprecationEntry.since?
code: structure DeprecationEntry where
  newName? : Option Name := none
  text? : Option String := none
  since? : Option String := none
  deriving Inhabited
goal: Option String

full_name: Lean.Linter.DeprecationEntry.text?
code: structure DeprecationEntry where
  newName? : Option Name := none
  text? : Option String := none
  since? : Option String := none
  deriving Inhabited
goal: Option String

full_name: Lean.Linter.instInhabitedDeprecationEntry
code: structure DeprecationEntry where
  newName? : Option Name := none
  text? : Option String := none
  since? : Option String := none
  deriving Inhabited
goal: Inhabited Lean.Linter.DeprecationEntry

full_name: Lean.Linter.DeprecationEntry
code: structure DeprecationEntry where
  newName? : Option Name := none
  text? : Option String := none
  since? : Option String := none
  deriving Inhabited
goal: Type

full_name: Lean.Linter.DeprecationEntry.newName?
code: structure DeprecationEntry where
  newName? : Option Name := none
  text? : Option String := none
  since? : Option String := none
  deriving Inhabited
goal: Option Lean.Name

full_name: Lean.Linter.deprecatedAttr
code: builtin_initialize deprecatedAttr : ParametricAttribute DeprecationEntry ←
  registerParametricAttribute {
    name := `deprecated
    descr := "mark declaration as deprecated",
    getParam := fun _ stx => do
      let `(attr| deprecated $[$id?]? $[$text?]? $[(since := $since?)]?) := stx
        | throwError "invalid `[deprecated]` attribute"
      let newName? ← id?.mapM Elab.realizeGlobalConstNoOverloadWithInfo
      let text? := text?.map TSyntax.getString
      let since? := since?.map TSyntax.getString
      return { newName?, text?, since? }
  }
goal: Lean.ParametricAttribute Lean.Linter.DeprecationEntry

full_name: Lean.Linter.initFn._@..lake.packages.lean4.src.lean.Lean.Linter.Deprecated._hyg.91
code: builtin_initialize deprecatedAttr : ParametricAttribute DeprecationEntry ←
  registerParametricAttribute {
    name := `deprecated
    descr := "mark declaration as deprecated",
    getParam := fun _ stx => do
      let `(attr| deprecated $[$id?]? $[$text?]? $[(since := $since?)]?) := stx
        | throwError "invalid `[deprecated]` attribute"
      let newName? ← id?.mapM Elab.realizeGlobalConstNoOverloadWithInfo
      let text? := text?.map TSyntax.getString
      let since? := since?.map TSyntax.getString
      return { newName?, text?, since? }
  }
goal: IO (Lean.ParametricAttribute Lean.Linter.DeprecationEntry)

full_name: Lean.Linter.isDeprecated
code: def isDeprecated (env : Environment) (declName : Name) : Bool 
goal: Bool

full_name: Lean.MessageData.isDeprecationWarning
code: def _root_.Lean.MessageData.isDeprecationWarning (msg : MessageData) : Bool 
goal: Bool

full_name: Lean.Linter.getDeprecatedNewName
code: def getDeprecatedNewName (env : Environment) (declName : Name) : Option Name 
goal: Option Lean.Name

full_name: Lean.Linter.checkDeprecated
code: def checkDeprecated [Monad m] [MonadEnv m] [MonadLog m] [AddMessageContext m] [MonadOptions m] (declName : Name) : m Unit 
goal: m Unit