Comment on Evil

<- View Parent
AnyOldName3@lemmy.world ⁨2⁩ ⁨days⁩ ago

no doesn’t become false, it becomes Norway, and when converted to a boolean, Norway is true. The reason’s because one on YAML’s native types is an ISO country code enum, and if you tell a compliant YAML implementation to load a file without giving it a schema, that type has higher priority than string. If you then call a function that converts from native type to string, it expands the country code to the country name, and a function that coerces to boolean makes country codes true.

The problem’s easy to avoid, though. You can just specify a schema, or use a function that grabs a string/bool directly instead of going via the assumed type first.

The real problem with YAML is how many implementations are a long way from being conformant, and load things differently to each other, but that situation’s been improving.

source
Sort:hotnewtop