summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-01-08 00:52:51 +0000
committerRich Hickey <richhickey@gmail.com>2009-01-08 00:52:51 +0000
commit3c0439b77fd9dfb520e8a1bfc9656bfc6d9b0c42 (patch)
tree6020d8de907bb7c4f49bbbbb9d873f6d6d642fc7
parent51ed068c679a4a65a2aa3552f8d088a1b787b08b (diff)
Make syntax-quote Classname. and .method aware, patch from Meikel Brandmeyer
-rw-r--r--src/jvm/clojure/lang/LispReader.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index d7677f7e..922d1cbf 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -679,7 +679,17 @@ public static class SyntaxQuoteReader extends AFn{
+ "__" + RT.nextID() + "__auto__")));
sym = gs;
}
- else
+ else if(sym.ns == null && sym.name.endsWith("."))
+ {
+ Symbol csym = Symbol.intern(null, sym.name.substring(0, sym.name.length() - 1));
+ csym = Compiler.resolveSymbol(csym);
+ sym = Symbol.intern(null, csym.name.concat("."));
+ }
+ else if(sym.ns == null && sym.name.startsWith("."))
+ {
+ // Simply quote method names.
+ }
+ else
sym = Compiler.resolveSymbol(sym);
ret = RT.list(Compiler.QUOTE, sym);
}