File tree Expand file tree Collapse file tree 1 file changed +16
-5
lines changed
Expand file tree Collapse file tree 1 file changed +16
-5
lines changed Original file line number Diff line number Diff line change 15421542 (interop/invoke-static-method ctx bindings class method children))
15431543 nil )))))
15441544 #?@(:clj [(and f-meta (:sci.impl.analyzer/interop f-meta))
1545- (let [[obj & children ] (analyze-children ctx (rest expr))
1545+ (let [[obj & args ] (analyze-children ctx (rest expr))
15461546 meth (-> (second f)
15471547 str
15481548 (subs 1 ))
15491549 clazz (first f)
1550- children ( into -array Object children )
1551- child -count (count children )
1550+ args ( object -array args )
1551+ arg -count (count args )
15521552 stack (assoc m
15531553 :ns @utils/current-ns
15541554 :file @utils/current-file
1555- :sci.impl/f-meta f-meta)]
1555+ :sci.impl/f-meta f-meta)
1556+ ^" [Ljava.lang.Class;" arg-types (when (pos? arg-count)
1557+ (make-array Class arg-count))
1558+ has-types? (volatile! nil )]
1559+ (when arg-types
1560+ (areduce args idx _ret nil
1561+ (let [arg (aget args idx)
1562+ arg-meta (meta arg)]
1563+ (when-let [t (:tag arg-meta)]
1564+ (when-let [t (interop/resolve-type-hint ctx t)]
1565+ (do (vreset! has-types? true )
1566+ (aset arg-types idx t)))))))
15561567 (sci.impl.types/->Node
15571568 (let [obj (sci.impl.types/eval obj ctx bindings)]
15581569 (interop/invoke-instance-method ctx bindings obj clazz
15591570 meth
1560- children child -count nil ))
1571+ args arg -count arg-types ))
15611572 stack))])
15621573 #?@(:clj [(and f-meta (:sci.impl.analyzer/invoke-constructor f-meta))
15631574 (invoke-constructor-node ctx (first f) (rest expr))])
You can’t perform that action at this time.
0 commit comments