Files
Nim/compiler/passaux.nim
Timothee Cour 0483a5ffaf improvements to hint:processing: show import stack, distinguish nims, show includes etc (#18372)
* improvements to hint:processing
* fix tests; do not show hintProcessing for nimscript unless given -d:nimHintProcessingNims
* fix trunner and avoid need for -d:nimHintProcessingNims
* fix some tests
2021-06-30 07:16:31 +02:00

32 lines
917 B
Nim

#
#
# The Nim Compiler
# (c) Copyright 2012 Andreas Rumpf
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
#
## implements some little helper passes
import
ast, passes, msgs, options, lineinfos
from modulegraphs import ModuleGraph, PPassContext
type
VerboseRef = ref object of PPassContext
config: ConfigRef
proc verboseOpen(graph: ModuleGraph; s: PSym; idgen: IdGenerator): PPassContext =
# xxx consider either removing this or keeping for documentation for how to add a pass
result = VerboseRef(config: graph.config, idgen: idgen)
proc verboseProcess(context: PPassContext, n: PNode): PNode =
# called from `process` in `processTopLevelStmt`.
result = n
let v = VerboseRef(context)
message(v.config, n.info, hintProcessingStmt, $v.idgen[])
const verbosePass* = makePass(open = verboseOpen, process = verboseProcess)