27 lines
751 B
Plaintext
27 lines
751 B
Plaintext
|
/-
|
||
|
Copyright (c) 2022 Henrik Böving. All rights reserved.
|
||
|
Released under Apache 2.0 license as described in the file LICENSE.
|
||
|
Authors: Henrik Böving
|
||
|
-/
|
||
|
import Lean
|
||
|
|
||
|
import DocGen4.Process.Base
|
||
|
import DocGen4.Process.NameInfo
|
||
|
|
||
|
namespace DocGen4.Process
|
||
|
|
||
|
open Lean Meta
|
||
|
|
||
|
def OpaqueInfo.ofOpaqueVal (v : OpaqueVal) : MetaM OpaqueInfo := do
|
||
|
let info ← Info.ofConstantVal v.toConstantVal
|
||
|
let t ← prettyPrintTerm v.value
|
||
|
let env ← getEnv
|
||
|
let isPartial := env.find? (Compiler.mkUnsafeRecName v.name) |>.isSome
|
||
|
if isPartial then
|
||
|
pure $ OpaqueInfo.mk info t DefinitionSafety.partial
|
||
|
else
|
||
|
let safety := if v.isUnsafe then DefinitionSafety.unsafe else DefinitionSafety.safe
|
||
|
pure $ OpaqueInfo.mk info t safety
|
||
|
|
||
|
end DocGen4.Process
|