Commit e0efe77
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
- jvm/clojure/lang
- test/clojure/test_clojure
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | | - | |
| 127 | + | |
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| |||
0 commit comments