Comment 5 for bug 1479110

Dan Wells (dbw2) wrote :

Okay, all, here is a document which outlines the options on the table. I'm only showing the "overdue" decision tree, but the "lost" tree would be identical:

(There are certainly more options if we wish to slice and dice.)

I think all three make enough sense to be workable, and that whatever we go with could be made more clear with language tweaks. My take is that the strength of the current design is in cordoning off the new behavior. It is a "two-phase" model, so we only need to check at most two settings to answer the question, "Does this library ever allow negative balances?", which is the most common question we need an answer to in the code. Both of the other models require us to check all four settings to know for sure. At the evaluation stage, both of the first two models can successfully short-circuit after one test by using 'false', while model three *must* always check every layer to get to the only "do not prohibit" case. On the other hand, model three has the potential to be simpler due to binary vs. ternary logic if we can convince people that unset==false (and at the cost of nuance for nested settings).

Does this help? Can anyone point out a similar setting group which we could model? Being consistent would be a big factor if we can find a precedent.