/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Gets the prototype of this method as either a * {@code static} or instance method. In the case of a * {@code static} method, this is the same as the raw * prototype. In the case of an instance method, this has an * appropriately-typed {@code this} argument as the first * one. * * @param isStatic whether the method should be considered static * @return {@code non-null;} the method prototype */ public final Prototype getPrototype(boolean isStatic) { if (isStatic) { return prototype; } else { if (instancePrototype == null) { Type thisType = getDefiningClass().getClassType(); instancePrototype = prototype.withFirstParameter(thisType); } return instancePrototype; } }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
/** * Interns an instance, adding to the descriptor as necessary based * on the given definer, name, and flags. For example, an init * method has an uninitialized object of type {@code definer} * as its first argument. * * @param descriptor {@code non-null;} the descriptor string * @param definer {@code non-null;} class the method is defined on * @param isStatic whether this is a static method * @param isInit whether this is an init method * @return {@code non-null;} the interned instance */ public static Prototype intern(String descriptor, Type definer, boolean isStatic, boolean isInit) { Prototype base = intern(descriptor); if (isStatic) { return base; } if (isInit) { definer = definer.asUninitialized(Integer.MAX_VALUE); } return base.withFirstParameter(definer); }
Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeVirtual(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeSuper(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeDirect(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeInterface(meth); Prototype proto = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); Prototype meth = proto.withFirstParameter(definer.getClassType()); return opInvokePolymorphic(meth);
Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeVirtual(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeSuper(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeDirect(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeInterface(meth);
Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeVirtual(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeSuper(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeDirect(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeInterface(meth);
Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeVirtual(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeSuper(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeDirect(meth); Prototype meth = cstMeth.getPrototype(); CstType definer = cstMeth.getDefiningClass(); meth = meth.withFirstParameter(definer.getClassType()); return opInvokeInterface(meth);