> But that doesn't stop you from declaring a var s Struct, and never initializing it, or making a NewStruct {}.
Static analysis tools can catch this, no?
Static analysis tools can catch this, no?
And then upstream adds new fields where the zero value is different from the previous behavior, causing users to silently drift away from the intended behavior. I had this happen to me with a type from std, and had to add a specific test to guard against it with future std upgrades: https://github.com/sapcc/go-bits/pull/309/changes#diff-f5721...