Details
-
Type:
Enhancement
-
Status:
Open
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Patch:Code and Test
Description
The implementation of clojure.core/get returns null if its argument is not a valid associative collection. However, calling 'get' on something which is neither nil nor an Associative collection is almost certainly a bug, and should be indicated by an exception.
This behavior can obscure common programmer errors such as:
(def a (atom {:a 1 :b 2})
(:foo a) ; forgot to deref a
;;=> nil
CLJ-932 was accepted as a similar enhancement to 'clojure.core/contains?'
Attached patch 0001 throws an IllegalArgumentException as the fall-through case of RT.getFrom.
Attachments
Activity
Stuart Sierra
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Patch | Code and Test [ 10002 ] | |
| Description |
The implementation of clojure.core/get returns null if its argument is not a valid associative collection. However, calling 'get' on something which is neither nil nor an Associative collection is almost certainly a programmer error, and should be indicated by an exception.
|
The implementation of clojure.core/get returns null if its argument is not a valid associative collection. However, calling 'get' on something which is neither nil nor an Associative collection is almost certainly a bug, and should be indicated by an exception.
This behavior can obscure common programmer errors such as: {code} (def a (atom {:a 1 :b 2}) (:foo a) ; forgot to deref a ;;=> nil {code} Attached patch 0001 throws an IllegalArgumentException as the fall-through case of RT.getFrom. |
| Attachment | 0001-CLJ-1107-Throw-exception-for-get-called-on-unsupport.patch [ 11672 ] |
Andy Fingerhut
made changes -
| Attachment | clj-1107-throw-on-get-for-unsupported-types-patch-v2.txt [ 12004 ] |