Documentation

Mathlib.Tactic.Linter.UpstreamableDecl

The upstreamableDecl linter #

The upstreamableDecl linter detects declarations that could be moved to a file higher up in the import hierarchy. This is intended to assist with splitting files.

def Lean.Name.isLocal (env : Environment) (decl : Name) :

Does this declaration come from the current file?

Equations
    Instances For

      Does the declaration with this name depend on definitions in the current file?

      Here, "definition" means everything that is not a theorem, and so includes def, structure, inductive, etc.

      Equations
        Instances For

          The upstreamableDecl linter detects declarations that could be moved to a file higher up in the import hierarchy. If this is the case, it emits a warning.

          By default, this linter will not fire on definitions, nor private declarations: see options linter.upstreamableDecl.defs and linter.upstreamableDecl.private.

          This is intended to assist with splitting files.

          If set to true, the upstreamableDecl linter will add warnings on definitions.

          The linter does not place a warning on any declaration depending on a definition in the current file (while it does place a warning on the definition itself), since we often create a new file for a definition on purpose.

          If set to true, the upstreamableDecl linter will add warnings on private declarations.

          The upstreamableDecl linter detects declarations that could be moved to a file higher up in the import hierarchy. If this is the case, it emits a warning.

          By default, this linter will not fire on definitions, nor private declarations: see options linter.upstreamableDecl.defs and linter.upstreamableDecl.private.

          This is intended to assist with splitting files.

          Equations
            Instances For