lean4-htt/src/Lean/Modifiers.lean

30 lines
961 B
Text

/-
Copyright (c) 2019 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura
-/
prelude
import Lean.EnvExtension
import Lean.PrivateName
namespace Lean
builtin_initialize protectedExt : TagDeclarationExtension ← mkTagDeclarationExtension
def addProtected (env : Environment) (n : Name) : Environment :=
protectedExt.tag env n
def isProtected (env : Environment) (n : Name) : Bool :=
protectedExt.isTagged env n
def mkPrivateName (env : Environment) (n : Name) : Name :=
-- If name is already private, remove previous suffix first. We need to ensure the resulting name
-- is private to *this* module.
Name.mkNum (privateHeader ++ env.mainModule) 0 ++ privateToUserName n
def isPrivateNameFromImportedModule (env : Environment) (n : Name) : Bool :=
match privateToUserName? n with
| some userName => mkPrivateName env userName != n
| _ => false
end Lean