function/stdlib: ZipmapFunc precise mark handling #96
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.
ZipmapFunc
can now handle marks on an element-by-element basis, to the extent that thecty
type system is able to do so.Since map keys can't be individually sensitive, any sensitive values in the keys list will aggregate on the map as a whole, but the individual value elements will have their marks preserved individually.
We previously didn't have unit tests for
ZipmapFunc
so this also includes some additional tests not related to marks, in order to cover the other interesting cases this function must handle.Writing the tests for this also exposed some bugs in the
cty
package's handling of marks, and so I've fixed them as additional commits here.