diff --git a/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java b/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java index 3eab6dafad..d29df53420 100644 --- a/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java +++ b/src/main/java/org/apache/bcel/generic/INVOKEDYNAMIC.java @@ -127,4 +127,18 @@ public String getClassName( final ConstantPoolGen cpg ) { final ConstantInvokeDynamic cid = (ConstantInvokeDynamic) cp.getConstant(super.getIndex(), Const.CONSTANT_InvokeDynamic); return ((ConstantNameAndType) cp.getConstant(cid.getNameAndTypeIndex())).getName(cp); } + + + /** + * Since InvokeDynamic doesn't refer to a reference type, just return java.lang.Object, + * as that is the only type we can say for sure the reference will be. + * + * @param cpg + * the ConstantPoolGen used to create the instruction + * @return an ObjectType for java.lang.Object + */ + @Override + public ReferenceType getReferenceType(final ConstantPoolGen cpg) { + return new ObjectType(Object.class.getName()); + } }