Broken code block in question:
/obj
var/list/type_list = null
/obj/subtype/broken
type_list = null
/obj/subtype
type_list = list(/datum, /atom, /obj,)
/proc/main()
var/obj/O = new /obj/subtype/broken()
world.log << isnull(O.type_list)
When /obj/subtype/broken has to build its init vars, it correctly identifies that type_list is a null constant and checks the parent to see if it should still override its proc. However, because it's being built before its parent type was ready, it will see that /obj/subtype has no init vars and simply assume that it doesn't need to make one.
Broken code block in question:
When
/obj/subtype/brokenhas to build its init vars, it correctly identifies thattype_listis a null constant and checks the parent to see if it should still override its proc. However, because it's being built before its parent type was ready, it will see that/obj/subtypehas no init vars and simply assume that it doesn't need to make one.