}
@Override
public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) {
Ruby runtime = context.runtime;
StaticScope scope = (StaticScope) startingScope.retrieve(context, self, currDynScope, temp);
RubyModule rubyClass = scope.getModule();
// SSS FIXME: Copied from ASTInterpreter.getClassVariableBase and adapted
while (scope != null && (rubyClass.isSingleton() || rubyClass == runtime.getDummy())) {
scope = scope.getPreviousCRefScope();
rubyClass = scope.getModule();
if (scope.getPreviousCRefScope() == null) {
runtime.getWarnings().warn(ID.CVAR_FROM_TOPLEVEL_SINGLETON_METHOD, "class variable access from toplevel singleton method");
}
}
if ((scope == null) && (object != null)) {