/* THIS FILE IS GENERATED. DO NOT EDIT */
package org.jruby.gen;

import org.jruby.Ruby;
import org.jruby.RubyModule;
import org.jruby.RubyClass;
import org.jruby.anno.TypePopulator;
import org.jruby.internal.runtime.methods.JavaMethod;
import org.jruby.internal.runtime.methods.DynamicMethod;
import org.jruby.runtime.Arity;
import org.jruby.runtime.Visibility;
import org.jruby.runtime.MethodIndex;
import java.util.Arrays;
import java.util.List;
import javax.annotation.Generated;

@Generated("org.jruby.anno.AnnotationBinder")
@SuppressWarnings("deprecation")
public class org$jruby$RubyBasicObject$POPULATOR extends TypePopulator {
    public void populate(RubyModule cls, Class clazz) {
        JavaMethod javaMethod;
        DynamicMethod moduleMethod, aliasedMethod;
        RubyClass singletonClass = cls.getSingletonClass();
        Ruby runtime = cls.getRuntime();
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$s$0$0$method_missing(cls, Visibility.PRIVATE, "method_missing");
        populateMethod(javaMethod, -1, "method_missing", true, false, org.jruby.RubyBasicObject.class, "method_missing", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG1_ARY_BLOCK);
        aliasedMethod = cls.putMethod(runtime, "method_missing", javaMethod);
        moduleMethod = populateModuleMethod(cls, javaMethod);
        aliasedMethod = singletonClass.putMethod(runtime, "method_missing", moduleMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$s$1$0$singleton_method_added(cls, Visibility.PRIVATE, "singleton_method_added");
        populateMethod(javaMethod, 1, "singleton_method_added", true, false, org.jruby.RubyBasicObject.class, "singleton_method_added", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG2_BLOCK);
        aliasedMethod = cls.putMethod(runtime, "singleton_method_added", javaMethod);
        moduleMethod = populateModuleMethod(cls, javaMethod);
        aliasedMethod = singletonClass.putMethod(runtime, "singleton_method_added", moduleMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$s$1$0$singleton_method_undefined(cls, Visibility.PRIVATE, "singleton_method_undefined");
        populateMethod(javaMethod, 1, "singleton_method_undefined", true, false, org.jruby.RubyBasicObject.class, "singleton_method_undefined", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG2_BLOCK);
        aliasedMethod = cls.putMethod(runtime, "singleton_method_undefined", javaMethod);
        moduleMethod = populateModuleMethod(cls, javaMethod);
        aliasedMethod = singletonClass.putMethod(runtime, "singleton_method_undefined", moduleMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$s$1$0$singleton_method_removed(cls, Visibility.PRIVATE, "singleton_method_removed");
        populateMethod(javaMethod, 1, "singleton_method_removed", true, false, org.jruby.RubyBasicObject.class, "singleton_method_removed", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG2_BLOCK);
        aliasedMethod = cls.putMethod(runtime, "singleton_method_removed", javaMethod);
        moduleMethod = populateModuleMethod(cls, javaMethod);
        aliasedMethod = singletonClass.putMethod(runtime, "singleton_method_removed", moduleMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$1$0$op_equal(cls, Visibility.PUBLIC, "==");
        populateMethod(javaMethod, 1, "op_equal", false, false, org.jruby.RubyBasicObject.class, "op_equal", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG1);
        aliasedMethod = cls.putMethod(runtime, "==", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$0$0$op_not(cls, Visibility.PUBLIC, "!");
        populateMethod(javaMethod, 0, "op_not", false, false, org.jruby.RubyBasicObject.class, "op_not", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG0);
        aliasedMethod = cls.putMethod(runtime, "!", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$0$0$id(cls, Visibility.PUBLIC, "__id__");
        populateMethod(javaMethod, 0, "id", false, false, org.jruby.RubyBasicObject.class, "id", org.jruby.runtime.builtin.IRubyObject.class, ARG0);
        aliasedMethod = cls.putMethod(runtime, "__id__", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$1$0$equal_p(cls, Visibility.PUBLIC, "equal?");
        populateMethod(javaMethod, 1, "equal_p", false, false, org.jruby.RubyBasicObject.class, "equal_p", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG1);
        aliasedMethod = cls.putMethod(runtime, "equal?", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$instance_eval(cls, Visibility.PUBLIC, "instance_eval");
        populateMethod(javaMethod, -1, "instance_eval", false, false, org.jruby.RubyBasicObject.class, "instance_eval", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG0_BLOCK);
        aliasedMethod = cls.putMethod(runtime, "instance_eval", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$send(cls, Visibility.PUBLIC, "__send__");
        populateMethod(javaMethod, -1, "send", false, false, org.jruby.RubyBasicObject.class, "send", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG1_BLOCK);
        aliasedMethod = cls.putMethod(runtime, "__send__", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$0$3$instance_exec(cls, Visibility.PUBLIC, "instance_exec");
        populateMethod(javaMethod, -1, "instance_exec", false, false, org.jruby.RubyBasicObject.class, "instance_exec", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG0_ARY_BLOCK);
        aliasedMethod = cls.putMethod(runtime, "instance_exec", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$0$0$initialize(cls, Visibility.PRIVATE, "initialize");
        populateMethod(javaMethod, 0, "initialize", false, false, org.jruby.RubyBasicObject.class, "initialize", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG0);
        aliasedMethod = cls.putMethod(runtime, "initialize", javaMethod);
        javaMethod = new org.jruby.RubyBasicObject$INVOKER$i$1$0$op_not_equal(cls, Visibility.PUBLIC, "!=");
        populateMethod(javaMethod, 1, "op_not_equal", false, false, org.jruby.RubyBasicObject.class, "op_not_equal", org.jruby.runtime.builtin.IRubyObject.class, CONTEXT_ARG1);
        aliasedMethod = cls.putMethod(runtime, "!=", javaMethod);

        runtime.addBoundMethods("org.jruby.RubyBasicObject", "op_equal", "==", "method_missing", "method_missing", "op_not", "!", "singleton_method_added", "singleton_method_added", "singleton_method_undefined", "singleton_method_undefined", "singleton_method_removed", "singleton_method_removed", "id", "__id__", "equal_p", "equal?", "instance_eval", "instance_eval", "instance_exec", "instance_exec", "initialize", "initialize", "op_not_equal", "!=");
    }
    static {
        MethodIndex.addMethodReadFieldsPacked(1023, "instance_eval;instance_exec");
        MethodIndex.addMethodWriteFieldsPacked(1023, "instance_eval;instance_exec");
    }
}