summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChouser <chouser@n01se.net>2009-07-13 18:10:49 -0400
committerChouser <chouser@n01se.net>2009-07-25 02:39:07 -0400
commit994f118c56bb3139f87093a6ec44eb8c04acbdaf (patch)
treeb134160ee564590250e28d0f7a46473e49f18f95 /src
parent6e29153854c799cb46abc23382059d6ee20e755e (diff)
Resolve classnames in modern-syntax static calls at syntaxQuote time. Fixes #155
Signed-off-by: Chouser <chouser@n01se.net>
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/LispReader.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index 5bf22e66..368bc1fa 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -704,7 +704,20 @@ public static class SyntaxQuoteReader extends AFn{
// Simply quote method names.
}
else
- sym = Compiler.resolveSymbol(sym);
+ {
+ Object maybeClass = null;
+ if(sym.ns != null)
+ maybeClass = Compiler.currentNS().getMapping(
+ Symbol.intern(null, sym.ns));
+ if(maybeClass instanceof Class)
+ {
+ // Classname/foo -> package.qualified.Classname/foo
+ sym = Symbol.intern(
+ ((Class)maybeClass).getName(), sym.name);
+ }
+ else
+ sym = Compiler.resolveSymbol(sym);
+ }
ret = RT.list(Compiler.QUOTE, sym);
}
else if(isUnquote(form))