@TruffleBoundary public static void setClassVariable( RubyModule module, String name, Object value, RubyNode currentNode) { CompilerAsserts.neverPartOfCompilation(); // Look in the current module if (module.getClassVariables().containsKey(name)) { module.setClassVariable(currentNode, name, value); return; } // Look in ancestors for (RubyModule ancestor : module.parentAncestors()) { if (ancestor.getClassVariables().containsKey(name)) { ancestor.setClassVariable(currentNode, name, value); return; } } // Not existing class variable - set in the current module module.setClassVariable(currentNode, name, value); }