summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-04-12 14:05:29 +0000
committerRich Hickey <richhickey@gmail.com>2009-04-12 14:05:29 +0000
commite05a1ad58a40a80f2a33e390184e109d5a8bce4f (patch)
tree928cd5c1233f8ab85b9aa6888f0a6128b3f8cbd3 /src
parent31b821a98adafbdc090ad33db69ed46f9e9bb31d (diff)
Use qualified filenames in var metadata [issue 50], patch from mb
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Compiler.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index 6e31e35f..a465785b 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -362,7 +362,9 @@ static class DefExpr implements Expr{
throw new Exception("Can't create defs outside of current ns");
}
IPersistentMap mm = sym.meta();
- mm = (IPersistentMap) RT.assoc(mm, RT.LINE_KEY, LINE.deref()).assoc(RT.FILE_KEY, SOURCE.deref());
+ Object source_path = SOURCE_PATH.get();
+ source_path = source_path == null ? "NO_SOURCE_FILE" : source_path;
+ mm = (IPersistentMap) RT.assoc(mm, RT.LINE_KEY, LINE.get()).assoc(RT.FILE_KEY, source_path);
Expr meta = analyze(context == C.EVAL ? context : C.EXPRESSION, mm);
return new DefExpr((String) SOURCE.deref(), (Integer) LINE.deref(),
v, analyze(context == C.EVAL ? context : C.EXPRESSION, RT.third(form), v.sym.name),