From 7369258fac45321b8ea0a9d437ff8a699be41e72 Mon Sep 17 00:00:00 2001 From: Stephane Epardaud Date: Thu, 23 Feb 2012 16:45:46 +0100 Subject: [PATCH] Fix for #336: Interop: set static fields --- .../compiler/java/codegen/ExpressionTransformer.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/redhat/ceylon/compiler/java/codegen/ExpressionTransformer.java b/src/com/redhat/ceylon/compiler/java/codegen/ExpressionTransformer.java index cd81e7cda..3a41b3965 100755 --- a/src/com/redhat/ceylon/compiler/java/codegen/ExpressionTransformer.java +++ b/src/com/redhat/ceylon/compiler/java/codegen/ExpressionTransformer.java @@ -1427,8 +1427,15 @@ private JCExpression transformAssignment(Node op, Tree.Term leftTerm, JCExpressi } } else if (variable && (Decl.isClassAttribute(decl))) { // must use the setter, nothing to do, unless it's a java field - if(Decl.isJavaField(decl)) - result = at(op).Assign(makeQualIdent(lhs, decl.getName()), rhs); + if(Decl.isJavaField(decl)){ + if (decl.isStaticallyImportable()) { + // static field + result = at(op).Assign(makeQualIdent(makeQuotedFQIdent(decl.getContainer().getQualifiedNameString()), decl.getName()), rhs); + }else{ + // normal field + result = at(op).Assign(makeQualIdent(lhs, decl.getName()), rhs); + } + } } else if (variable && (decl.isCaptured() || decl.isShared())) { // must use the qualified setter lhs = makeQualIdent(lhs, decl.getName());