Skip to content

Commit

Permalink
Fix CTYP-74
Browse files Browse the repository at this point in the history
Better error with malformed TApp
  • Loading branch information
frenchy64 committed Oct 6, 2013
1 parent 20b1682 commit edeb6cf
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/main/clojure/clojure/core/typed/parse_unparse.clj
Expand Up @@ -519,7 +519,10 @@


(defmethod parse-type-list :default (defmethod parse-type-list :default
[[n & args :as syn]] [[n & args :as syn]]
(r/TApp-maker (parse-type n) (mapv parse-type args))) (let [op (parse-type n)]
(when-not ((some-fn r/Name? r/TypeFn? r/F? r/B? r/Poly?) op)
(u/int-error (str "Invalid operator to TApp: " (pr-str (unparse-type op)))))
(r/TApp-maker op (mapv parse-type args))))


(defmethod parse-type Cons [l] (parse-type-list l)) (defmethod parse-type Cons [l] (parse-type-list l))
(defmethod parse-type IPersistentList [l] (parse-type-list l)) (defmethod parse-type IPersistentList [l] (parse-type-list l))
Expand Down
3 changes: 3 additions & 0 deletions src/test/clojure/clojure/core/typed/test/core.clj
Expand Up @@ -2354,6 +2354,9 @@
(deftest CTYP-78-finally-expected-test (deftest CTYP-78-finally-expected-test
(is (check-ns 'clojure.core.typed.test.finally))) (is (check-ns 'clojure.core.typed.test.finally)))


(deftest CTYP-74-malformed-TApp-test
(is (u/tc-error-thrown? (parse-type '([Any -> Any])))))

;(reset-caches) ;(reset-caches)


;(chk/abstract-result ;(chk/abstract-result
Expand Down

0 comments on commit edeb6cf

Please sign in to comment.