在我的理解中,隐式转换是在语义分析中完成的,但是clang AST命令clang -Xclang -ast-dump -fsyntax-only file.cpp
AST中生成AST类型转换信息,如下所示:
...
'- ImplicitCastExpr 0x7fdc27050558 <col:14> 'int'
......
ImplicitCastExpr 0x7f878884c2d0 <col:19> 'unsigned int'
...
因此问题来了。
隐式类型转换通常发生在编译器的语义分析(更具体地说是类型检查(中,但有些可能发生在解析中以制作更简单的 AST(直接将文字转换为其值等(。
如果您具体查看您使用的命令选项,我们会发现这意味着
-仅语法 运行预处理器、解析器和类型检查阶段。
https://clang.llvm.org/docs/CommandGuide/clang.html
因此,我们看到我们希望输出类型信息(需要隐式转换(。
注意:我可能不清楚,但类型检查只是语义分析的一个阶段。