File tree Expand file tree Collapse file tree
test/clojure/test_clojure Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1164,6 +1164,7 @@ static class QualifiedMethodExpr implements Expr {
11641164 private final Symbol methodSymbol ;
11651165 private final String methodName ;
11661166 private final MethodKind kind ;
1167+ private final Class tagClass ;
11671168
11681169 private enum MethodKind {
11691170 CTOR , INSTANCE , STATIC
@@ -1172,6 +1173,7 @@ private enum MethodKind {
11721173 public QualifiedMethodExpr (Class methodClass , Symbol sym ){
11731174 c = methodClass ;
11741175 methodSymbol = sym ;
1176+ tagClass = tagOf (sym ) != null ? HostExpr .tagToClass (tagOf (sym )) : AFn .class ;
11751177 hintedSig = tagsToClasses (paramTagsOf (sym ));
11761178 if (sym .name .startsWith ("." )) {
11771179 kind = MethodKind .INSTANCE ;
@@ -1208,7 +1210,7 @@ public boolean hasJavaClass() {
12081210
12091211 @ Override
12101212 public Class getJavaClass () {
1211- return AFn . class ;
1213+ return tagClass ;
12121214 }
12131215
12141216 // TBD: caching/reuse of thunks
Original file line number Diff line number Diff line change 99
1010(ns clojure.test-clojure.method-thunks
1111 (:use clojure.test)
12+ (:require [clojure.java.io :as jio])
1213 (:import (clojure.lang Compiler Tuple)
1314 (java.util Arrays UUID Locale)
15+ (java.io File FileFilter)
1416 clojure.lang.IFn$LL))
1517
1618(set! *warn-on-reflection* true )
5254 ((:fromString mts) " 00000000-0000-0001-0000-000000000002" )))
5355 (is (= [1 ] (mt 1 )))
5456 (is (= 97 (first (seq (gbs " a" ))))))
57+
58+ (deftest hinted-method-values
59+ (is (thrown? Exception (eval '(.listFiles (jio/file " ." ) #(File/.isDirectory %)))))
60+ (is (seq (.listFiles (jio/file " ." ) ^FileFilter File/.isDirectory)))
61+ (is (seq (File/.listFiles (jio/file " ." ) ^FileFilter File/.isDirectory)))
62+ (is (seq (^[FileFilter] File/.listFiles (jio/file " ." ) ^FileFilter File/.isDirectory))))
You can’t perform that action at this time.
0 commit comments