It appears that (at least on Linux) if you pass a block of code to a macro, the line numbers for code in the block become the line of the start of the macro invocation rather than the actual lines within the block. This makes debugging hard.
Consider:
call_macro_defined_somewhere!({
one();
two();
three();
});
Line reported for one(), two() and three() is the line that call_macro_defined_somewhere!({ is on. Expected line number for one() to be the line number for call_macro_defined_somewhere!({ plus one, etc.
It appears that (at least on Linux) if you pass a block of code to a macro, the line numbers for code in the block become the line of the start of the macro invocation rather than the actual lines within the block. This makes debugging hard.
Consider:
Line reported for
one(),two()andthree()is the line thatcall_macro_defined_somewhere!({is on. Expected line number forone()to be the line number forcall_macro_defined_somewhere!({plus one, etc.