final SourceSection sourceSection = translate(node.getPosition());
final RubyNode receiver;
if (useClassVariablesAsIfInClass) {
receiver = BoxingNodeFactory.create(context, sourceSection, new SelfNode(context, sourceSection));
} else {
receiver = new ClassNode(context, sourceSection, BoxingNodeFactory.create(context, sourceSection, new SelfNode(context, sourceSection)));
}
final RubyNode rhs = node.getValueNode().accept(this);
return new WriteClassVariableNode(context, sourceSection, node.getName(), receiver, rhs);
}