if you output the result of a initial() on a value that was init[]'ed at runtime (ie: list()) It triggers a runtime error saying "bad output value"
datum/testlist
var/mylist = list()
mob
verb/testlistworld()
var/datum/testlist/T = new()
var/l = initial(T:mylist)
var/n = null
var/e = list()
world << n
world << e
world << l // <-- line 333
[21:26:53]runtime error: bad output value
[21:26:53]proc name: testlistworld (/mob/verb/testlistworld)
[21:26:53] source file: client.dm,333
[21:26:53] usr: (src)
[21:26:53] src: MrStonedOne (/mob)
[21:26:53] src.loc: the turf (1,1,1) (/turf)
[21:26:53] call stack:
[21:26:53]MrStonedOne (/mob): testlistworld()
The biggest reason I bring this up, is because it shows something fucky happening with the typeid/value. initial(T:mylist) should return a null, but it returns something that acts like a null, but is not a null.
It also fails isnull().
Confirmed bug still exists in 511 latest
If the list is owned by a datum (it's a datum var) you get this psuedo-null returned, however if it's a global or proc var you get a normal /list returned (which you can then output fine with no errors)