Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
So far as I know, this fixes the concealment issues discussed in IE-0015: World model enforcement #15 as well as another place concealment information leaked that I discovered along the way: if you entered a supporter with a concealed item (and no unconcealed items) already on it, you would get "On the is nothing." instead of silence.
Thus this should fix I7-2046 [Mantis 2083] Containers holding concealed items do not show the " (empty)" detail text and I7-2036 [Mantis 2073] Both examine containers and examine supporters rules inconsistent when contents are concealed .
A small optimization to ListEqual in ListWriter.i6t incidentally fixes I7-2296: things being privately-named causing their printed names not to be used in room description.
This adds two test cases, ConcealControl and ConcealExperiment. It reblesses the results for Undescribed, whose output changed as a result of it. (And one can see in its behavior something screwier than a jar explicitly labeled empty having something in scope in it: after the player takes the jar, inventory reveals the previously-undescribed paper within due to the note object acquisitions rule.)
It does not rebless some other tests whose exact output changed as a result of, for instance, line numbers of things in the Standard Rules having changed. It was my assumption you wouldn't want a PR-submitter to be cavalier about redefining success.
Specifically, it fails Gas2, and Tilt3 in the same way master does without this patch. It fails Index-Chart, PM_KindUnalterable, PM_VariableContradiction, PM_KindsCircular, PM_VarKOVClash due to changes in exact output in the project index and these error messages.
Unavoidably, this change means a lot more checking of concealment rules. Naturally, I took every opportunity I could to rule out in advance the need to check them. And it doesn't happen during the parsing loop; room description is very likely the most affected. So I hope there won't be any perceptible speed problems.