diff --git a/sootup.callgraph/src/main/java/sootup/callgraph/AbstractCallGraphAlgorithm.java b/sootup.callgraph/src/main/java/sootup/callgraph/AbstractCallGraphAlgorithm.java index 36e798e3e01..842335ddd6b 100644 --- a/sootup.callgraph/src/main/java/sootup/callgraph/AbstractCallGraphAlgorithm.java +++ b/sootup.callgraph/src/main/java/sootup/callgraph/AbstractCallGraphAlgorithm.java @@ -319,7 +319,6 @@ public CallGraph addClass(@Nonnull CallGraph oldCallGraph, @Nonnull JavaClassTyp Set newMethodSignatures = clazz.getMethods().stream().map(Method::getSignature).collect(Collectors.toSet()); - if (newMethodSignatures.stream().anyMatch(oldCallGraph::containsMethod)) { // FIXME: [ms] handle better - remove from entry point signatures in this case throw new IllegalArgumentException("CallGraph already contains methods from " + classType); @@ -356,7 +355,7 @@ public CallGraph addClass(@Nonnull CallGraph oldCallGraph, @Nonnull JavaClassTyp MethodSignature overridingMethodSig = clazz.getMethod(overriddenMethodSig.getSubSignature()).get().getSignature(); - if( updated.containsMethod(overriddenMethodSig) ){ + if (updated.containsMethod(overriddenMethodSig)) { for (MethodSignature callingMethodSig : updated.callsTo(overriddenMethodSig)) { updated.addCall(callingMethodSig, overridingMethodSig); } diff --git a/sootup.java.core/src/main/java/sootup/java/core/JavaSootClass.java b/sootup.java.core/src/main/java/sootup/java/core/JavaSootClass.java index c4ed4b40049..a4962269df4 100644 --- a/sootup.java.core/src/main/java/sootup/java/core/JavaSootClass.java +++ b/sootup.java.core/src/main/java/sootup/java/core/JavaSootClass.java @@ -37,6 +37,7 @@ import sootup.core.signatures.MethodSubSignature; import sootup.core.types.ClassType; import sootup.core.types.Type; +import sootup.java.core.types.JavaClassType; import sootup.java.core.views.JavaView; public class JavaSootClass extends SootClass { @@ -45,6 +46,12 @@ public JavaSootClass(JavaSootClassSource classSource, SourceType sourceType) { super(classSource, sourceType); } + @Nonnull + @Override + public JavaClassType getType() { + return (JavaClassType) super.getType(); + } + /** * Get all annotations on this class. If provided with a View, will also resolve all inherited * annotations from super classes.