summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Taggart <alex.taggart@expojure.com>2011-03-09 11:58:13 -0800
committerStuart Halloway <stu@thinkrelevance.com>2011-04-08 09:58:13 -0400
commitdd49d07b75c619075156d1b38bae9a364ffb63b1 (patch)
tree186e6a0513f93cb610ac2e6218a1ed40e4219b08
parent57c5186972c9c0f03d4bb5d2445309f14405e098 (diff)
Fix CLJ-752: Removes inferring ^:dynamic from earmuffed var; updates warning message.
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
-rw-r--r--src/jvm/clojure/lang/Compiler.java13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index a63ecc07..d5ef4108 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -461,13 +461,12 @@ static class DefExpr implements Expr{
}
IPersistentMap mm = sym.meta();
boolean isDynamic = RT.booleanCast(RT.get(mm,dynamicKey));
- if(!isDynamic && sym.name.startsWith("*") && sym.name.endsWith("*") && sym.name.length() > 1)
- {
- RT.errPrintWriter().format("Var %s not marked :dynamic true, setting to :dynamic. You should fix this before next release!\n",
- sym);
- isDynamic = true;
- mm = (IPersistentMap) RT.assoc(mm,dynamicKey, RT.T);
- }
+ if(!isDynamic && sym.name.startsWith("*") && sym.name.endsWith("*") && sym.name.length() > 1)
+ {
+ RT.errPrintWriter().format("Warning: %1$s not declared dynamic and thus is not dynamically rebindable, "
+ +"but its name suggests otherwise. Please either indicate ^:dynamic %1$s or change the name.\n",
+ sym);
+ }
if(RT.booleanCast(RT.get(mm, arglistsKey)))
{
IPersistentMap vm = v.meta();