Skip to content

Commit e0efe77

Browse files
foguspuredanger
authored andcommitted
CLJ-2806: Add support for a param-tags metadata via the special metadata field :param-tags taking a vector of symbols corresponding to types and a new reader for supporting it of ^[T U]. Also, added support for using param-tags at compile time to specify a single method for invocation or acccess of qualified class members Class/member and constructors via Class/new. Also implemented method values by expanding the meaning of qualified class member symbolic representation. Added compiler macro to identify Class/method and Class/new member symbols and emit a single-arity function with type hints and coercions on args to fully resolve target constructor, instance method, or static method call. There is no way to specify bound methods.
1 parent 08a2d9b commit e0efe77

7 files changed

Lines changed: 450 additions & 15 deletions

File tree

src/clj/clojure/gvec.clj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
(.chunkedNext this)))
8888
(more [this]
8989
(let [s (.next this)]
90-
(or s (clojure.lang.PersistentList/EMPTY))))
90+
(or s clojure.lang.PersistentList/EMPTY)))
9191
(cons [this o]
9292
(clojure.lang.Cons. o this))
9393
(count [this]
@@ -124,7 +124,7 @@
124124
(new VecSeq am vec (.arrayFor vec nexti) nexti 0 nil))))
125125
(chunkedMore [this]
126126
(let [s (.chunkedNext this)]
127-
(or s (clojure.lang.PersistentList/EMPTY))))
127+
(or s clojure.lang.PersistentList/EMPTY)))
128128

129129
clojure.lang.IMeta
130130
(meta [_]

0 commit comments

Comments
 (0)