summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jvm/clojure/lang/Compiler.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index 4e75daff..cf03280e 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -3047,7 +3047,8 @@ static public class FnExpr implements Expr{
//static fields for constants
for(int i = 0; i < constants.count(); i++)
{
- cv.visitField(ACC_PUBLIC + ACC_FINAL + ACC_STATIC, constantName(i), constantType(i).getDescriptor(),
+ cv.visitField(ACC_PUBLIC + ACC_FINAL
+ + ACC_STATIC, constantName(i), constantType(i).getDescriptor(),
null, null);
}
@@ -3092,10 +3093,12 @@ static public class FnExpr implements Expr{
{
LocalBinding lb = (LocalBinding) s.first();
if(lb.getPrimitiveType() != null)
- cv.visitField(ACC_PUBLIC + ACC_FINAL, lb.name, Type.getType(lb.getPrimitiveType()).getDescriptor(),
+ cv.visitField(ACC_PUBLIC + ACC_FINAL
+ , lb.name, Type.getType(lb.getPrimitiveType()).getDescriptor(),
null, null);
else
- cv.visitField(ACC_PUBLIC + ACC_FINAL, lb.name, OBJECT_TYPE.getDescriptor(), null, null);
+ cv.visitField(ACC_PUBLIC + (onceOnly ? 0 : ACC_FINAL)
+ , lb.name, OBJECT_TYPE.getDescriptor(), null, null);
}
//ctor that takes closed-overs and inits base + fields
// Method m = new Method("<init>", Type.VOID_TYPE, ARG_TYPES[closes.count()]);