diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java index 9a9ad5d6b..0b8d10edb 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java @@ -48,7 +48,8 @@ public class ArgumentTypeEntrypoint extends Entrypoint { IClass klass = cha.lookupClass(t); if (klass == null) { t = null; - } else if (klass.isAbstract()) { + } else if (!klass.isInterface() && klass.isAbstract()) { + // yes, I've seen classes that are marked as "abstract interface" :) t = chooseAConcreteSubClass(klass); } else if (klass.isInterface()) { t = chooseAnImplementor(klass);