| Ticket UUID: | d22ad202055093292992c6aea053188f8b3d4abe | ||
| Title: | "dict unset d key subkey" fails if key does not exist | ||
| Type: | Bug | Created on: | 2018-07-02 10:24:28 |
| Submitter: | oehhar | Assigned to: | nobody |
| Subsystem: | 15. Dict Object | Severity: | Minor |
| Priority: | 5 Medium | Last modified: | 2020-11-16 14:19:43 |
| Status: | Closed | Closed by: | oehhar |
| Resolution: | Fixed | Closed on: | 2020-11-16 14:19:43 |
| Version: | >= 8.5 | ||
| Description: | ||||
|
If a dictionary key is unset, there is no error, if it does not exist:
% set d {}
% dict unset d a
There is an error raised, if a key on the path of the subkey does not exist:
% set d {}
% dict unset d a b
key "a" not known in dictionary
IMHO this is inconsistent and should not rise an error. At least the documentation should write about error behaviour. I can understand, that an error is raised, if the (sub)dict is not a valid dict.
% set d {1}
% dict unset d a
missing value to go with key
% set d {a 1}
% dict unset d a b
missing value to go with key
| ||||
| User Comments: | ||||
sebres added on 2018-07-02 11:03:13:
Still worse (as regards the inconsistency), it does not produce any error if dictionary self (variable) does not exists:
So I'm agree with Harald's conclusion, the `dict unset` must not produce an error if sub-key does not exists also. oehhar added on 2020-11-16 14:19:30:
Tested again with tcl8.6.10. Is fixed. Thank you, Harald | ||||
