Skip to content

Instantly share code, notes, and snippets.

@frenchy64
Created May 15, 2014 19:26
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frenchy64/93b375eed8ce610fdcf4 to your computer and use it in GitHub Desktop.
Save frenchy64/93b375eed8ce610fdcf4 to your computer and use it in GitHub Desktop.
File mapping
(ns clojure.core.typed.test.interop
(:import (java.io File))
(:require [clojure.core.typed :as t :refer [ann non-nil-return check-ns cf]]))
(ann f File)
(def f (File. "a"))
(ann prt (U nil String))
(def prt (.getParent ^File f))
(non-nil-return java.io.File/getName :all)
(ann nme String)
(def nme (.getName ^File f))
;=> (-> (t/check-ns-info) :file-mapping clojure.pprint/pprint)
;...
;([{:file "clojure/core/typed/test/interop.clj", :column 13, :line 3}
; ""]
; [{:file "clojure/core/typed/test/interop.clj"} ""]
; [{:file "clojure/core/typed/test/interop.clj", :column 5, :line 1} ""]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 1} ""]
; [{:file "clojure/core/typed/test/interop.clj", :column 8, :line 5} ""]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 5}
; "Any"]
; [{:file "clojure/core/typed/test/interop.clj", :column 8, :line 6}
; "java.io.File"]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 6}
; "(clojure.lang.Var java.io.File java.io.File)"]
; [{:file "clojure/core/typed/test/interop.clj", :column 10, :line 8}
; ""]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 8}
; "Any"]
; [{:file "clojure/core/typed/test/interop.clj", :column 28, :line 9}
; "java.io.File"]
; [{:file "clojure/core/typed/test/interop.clj", :column 10, :line 9}
; "(U nil java.lang.String)"]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 9}
; "(clojure.lang.Var (U nil java.lang.String) (U java.lang.String nil))"]
; [{:file "clojure/core/typed/test/interop.clj", :column 17, :line 11}
; ""]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 11}
; "Any"]
; [{:file "clojure/core/typed/test/interop.clj", :column 10, :line 12}
; ""]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 12}
; "Any"]
; [{:file "clojure/core/typed/test/interop.clj", :column 26, :line 13}
; "java.io.File"]
; [{:file "clojure/core/typed/test/interop.clj", :column 10, :line 13}
; "java.lang.String"]
; [{:file "clojure/core/typed/test/interop.clj", :column 1, :line 13}
; "(clojure.lang.Var java.lang.String java.lang.String)"])
nil
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment