ID:2685962
 
mob/Login()
var obj/o = new
o.vis_contents = new // Compiles
var list/l = list(o)
l[1]:vis_contents = new // Doesn't Compile, unknown variable type
There's no bug. When you use = new without a type, it has to infer a type. But because there's no known type for l[1] and you've accessed vis_contents via the : operator, it's not capable of doing any type checking.

Ideally of course it'd be great if the : operator were able to narrow down a common type for any vars of the given name, which in most projects would mean it'd recognize vis_contents as a list and act appropriately. But boy is that difficult.
Makes sense, thank you for the explanation.