Details
Description
Type hints don't work as expected in binding forms.
The following form results in a reflection warning:
(let [^{:tag (Class/forName "[Ljava.lang.Object;")} a (make-array Object 2)]
(aget a 0))
However, hinting does appear to work correctly on vars:
(def ^{:tag (Class/forName "[Ljava.lang.Object;")} a (make-array Object 2))
(aget a 0) ;; no reflection warning
Activity
Luke VanderHart
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Description |
Type hints don't work as expected in binding forms.
The following form results in a reflection warning: (let [^{:tag (Class/forName "[Ljava.lang.Object;")} a (make-array Object 2)] (aget a 0)) However, hinting does appear to work correctly on vars: (def ^{:tag (Class/forName "[Ljava.lang.Object;")} a (make-array Object 2)) (aget a 0) ;; no reflection warning |
Type hints don't work as expected in binding forms.
The following form results in a reflection warning: (let [^{:tag (Class/forName "[Ljava.lang.Object;")} a (make-array Object 2)] (aget a 0)) However, hinting does appear to work correctly on vars: (def ^{:tag (Class/forName "[Ljava.lang.Object;")} a (make-array Object 2)) (aget a 0) ;; no reflection warning |