diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 00718598fe..4d58fcfd09 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -8548,9 +8548,11 @@ public Expr parse(C context, Object frm) { ObjExpr ret = build(interfaces, null, null, classname, Symbol.intern(classname), null, rform, frm, null); - if(frm instanceof IObj && ((IObj) frm).meta() != null) - return new MetaExpr(ret, MapExpr - .parse(context == C.EVAL ? context : C.EXPRESSION, ((IObj) frm).meta())); + IPersistentMap fmeta = RT.meta(frm); + if(fmeta != null) + fmeta = fmeta.without(RT.LINE_KEY).without(RT.COLUMN_KEY).without(RT.FILE_KEY); + if (RT.count(fmeta) > 0) + return new MetaExpr(ret, MapExpr.parse(context == C.EVAL ? context : C.EXPRESSION, fmeta)); else return ret; }