Details
-
Type:
Enhancement
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Completed
-
Affects Version/s: Release 1.5, Release 1.8
-
Fix Version/s: None
-
Component/s: None
-
Labels:
-
Patch:Code and Test
Description
Here is a map-destructuring blunder that I wish the compiler warned about:
(defn server [{servlet ::servlet type ::type :or {::type :jetty} :as service-map}])
It would be splendid to get a warning that :or keys that are not symbols being bound have no effect.
The incomplete code snippet above comes from Pedestal.service 0.1.0.
Here is a complete one-line example with the coding error:
user> (defn picnic [{botulism :botulism :or {:botulism 6}}] botulism) #'user/picnic user> (picnic {}) nil user> ;; I intended 6.
Should this be a warning or an exception? I don't know of any similar example of the compiler giving a warning, so I would expect the latter.