using &*_expire with interval values defined before

does anyone know why this doesn't work and results in an error?

> const tcp_scan_period = 2 min &redef;
> global tcp_scan: table[addr] of count &write_expire=tcp_scan_period;

> line xx (tcp_scan_period): bad tag in ExprVal::Val

Definitely a bug. I'm able to reproduce it and will include a fix with
the next release (which has been delayed due to some other late-breaking
bugs, sigh).

By the way, any time you see "bad tag", it's definitely a bug, that's
an internal error message.