From 8649792648a2dfc5612f8bb44f88d6c872fe41e8 Mon Sep 17 00:00:00 2001 From: Zach Tellman Date: Sun, 22 Apr 2012 14:53:10 +0530 Subject: [PATCH] import-fn -> import-macro --- src/potemkin.clj | 2 +- src/potemkin/namespace.clj | 4 ++++ src/potemkin/protocols.clj | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/potemkin.clj b/src/potemkin.clj index 5e237de..1ffd40d 100644 --- a/src/potemkin.clj +++ b/src/potemkin.clj @@ -22,7 +22,7 @@ (import-fn macros/transform-defn-bodies) (import-fn macros/transform-fn-bodies) -(import-fn protocols/defprotocol-once) +(import-macro protocols/defprotocol-once) diff --git a/src/potemkin/namespace.clj b/src/potemkin/namespace.clj index 0de4402..3b17306 100644 --- a/src/potemkin/namespace.clj +++ b/src/potemkin/namespace.clj @@ -22,6 +22,8 @@ protocol (:protocol m)] (when-not vr (throw (IllegalArgumentException. (str "Don't recognize " sym)))) + (when (:macro m) + (throw (IllegalArgumentException. (str "Calling import-fn on a macro: " sym)))) `(do (def ~(with-meta n {:protocol protocol}) (deref ~vr)) (alter-meta! (var ~n) assoc @@ -43,6 +45,8 @@ doc (:doc m)] (when-not vr (throw (IllegalArgumentException. (str "Don't recognize " sym)))) + (when-not (:macro m) + (throw (IllegalArgumentException. (str "Calling import-macro on a non-macro: " sym)))) `(do (def ~n ~(resolve sym)) (alter-meta! (var ~n) assoc diff --git a/src/potemkin/protocols.clj b/src/potemkin/protocols.clj index f030b03..d69dc97 100644 --- a/src/potemkin/protocols.clj +++ b/src/potemkin/protocols.clj @@ -8,7 +8,9 @@ (ns potemkin.protocols) -(defmacro defprotocol-once [name & body] +(defmacro defprotocol-once + "defonce for defprotocol" + [name & body] (if (resolve name) `(do) (list* 'defprotocol name body)))