Есть ли встроенная функция Джулии для удаления LineNumberNode
в Expr
? специально для макрозвонков:
julia> ex = :(@foo 1)
:(#= REPL[5]:1 =# @foo 1)
julia> dump(ex)
Expr
head: Symbol macrocall
args: Array{Any}((3,))
1: Symbol @foo
2: LineNumberNode
line: Int64 1
file: Symbol REPL[5]
3: Int64 1
Пробовал MacroTools.striplines
, но
julia> ex = :(@foo 1+1)
:(#= REPL[7]:1 =# @foo 1 + 1)
julia> MacroTools.striplines(ex) |> dump
Expr
head: Symbol macrocall
args: Array{Any}((3,))
1: Symbol @foo
2: LineNumberNode
line: Int64 1
file: Symbol REPL[7]
3: Expr
head: Symbol call
args: Array{Any}((3,))
1: Symbol +
2: Int64 1
3: Int64 1
Мой вариант использования - сравнение двух разных выражений, сконструированных в разных файлах (поэтому разные данные о номере строки). Мой текущий обходной путь - явно написать Expr (: macrocall, Symbol ("@ foo"), none,: (1 + 1)), что немного многословно.