Skip to content

Commit f4c86c7

Browse files
committed
fix: array handling
1 parent 136a99d commit f4c86c7

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

reflectconfig

+9-4
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,28 @@
1212
},
1313
{"name": "clojure.lang.Numbers", "allDeclaredFields": true, "allDeclaredMethods": true},
1414
{"name": "clojure.lang.LockingTransaction", "allDeclaredMethods": true},
15-
{"name": "java.lang.String", "allDeclaredMethods": true},
16-
{"name": "java.lang.Long", "allDeclaredMethods": true, "allDeclaredFields": true},
17-
{"name": "java.lang.Double", "allDeclaredMethods": true, "allDeclaredFields": true},
15+
{"name": "java.lang.Byte", "allDeclaredMethods": true, "allDeclaredFields": true},
1816
{"name": "java.lang.Boolean", "allDeclaredMethods": true, "allDeclaredFields": true},
19-
{"name": "java.lang.Integer", "allDeclaredMethods": true, "allDeclaredFields": true},
17+
{"name": "java.lang.Character", "allDeclaredMethods": true, "allDeclaredFields": true},
18+
{"name": "java.lang.Double", "allDeclaredMethods": true, "allDeclaredFields": true},
2019
{"name": "java.lang.Float", "allDeclaredMethods": true, "allDeclaredFields": true},
20+
{"name": "java.lang.Integer", "allDeclaredMethods": true, "allDeclaredFields": true},
21+
{"name": "java.lang.Long", "allDeclaredMethods": true, "allDeclaredFields": true},
22+
{"name": "java.lang.Short", "allDeclaredMethods": true, "allDeclaredFields": true},
23+
{"name": "java.lang.String", "allDeclaredMethods": true},
2124
{"name": "java.lang.AssertionError", "allDeclaredConstructors": true},
2225
{"name": "java.lang.IllegalArgumentException", "allDeclaredConstructors": true},
2326
{"name": "java.lang.Math", "allDeclaredMethods": true, "allDeclaredFields": true},
2427
{"name": "java.lang.Number",
2528
"allDeclaredFields": true,
2629
"allDeclaredMethods": true
2730
},
31+
{"name": "java.lang.reflect.Array", "allDeclaredMethods": true},
2832
{"name": "java.util.concurrent.atomic.AtomicReferenceArray",
2933
"allDeclaredConstructors": true
3034
},
3135
{"name": "java.lang.System", "methods": [{"name": "currentTimeMillis"}, {"name": "nanoTime"}]},
36+
{"name": "clojure.lang.RT", "methods": [{"name": "aclone"}, {"name": "aset"}, {"name": "aget"}]},
3237
{"name": "clojure.lang.LazySeq", "allDeclaredConstructors": true},
3338
{"name": "java.io.StringWriter",
3439
"allDeclaredConstructors": true,

test/clojure_core_test.clj

+9-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,15 @@
4848

4949
(deftest test-arrays
5050
;; Long[][][][]... is not supported by the closed-world assumption
51-
(is (every? some? (take 10 (iterate (fn [x] (into-array [x])) 3)))))
51+
(is (every? some? (take 10 (iterate (fn [x] (into-array [x])) 3))))
52+
(testing "aclone"
53+
(let [a (int-array [1 2 3 4])
54+
b (aclone a)]
55+
(is (every? integer? b))
56+
(is (= 1 (aget a 0) (aget b 0)))
57+
(testing "aget-aset"
58+
(aset-int b 0 2)
59+
(is (= 2 (aget b 0)))))))
5260

5361
(deftest test-xml-lib
5462
(is (map? (clojure.data.xml/parse-str "<a>1</a>"))))

0 commit comments

Comments
 (0)