From 6546d5d6a4ad99bc8da54bcb7b8463067541179a Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Fri, 13 Apr 2018 12:51:58 -0500 Subject: [PATCH] Resolve the last two Eclipse warnings about using raw types Fixes bug #244. --- .../src/com/ibm/wala/cast/java/test/IRTests.java | 2 +- .../com/ibm/wala/cast/java/test/JavaIRTests.java | 14 +++++++------- .../wala/cast/java/test/SyncDuplicatorTests.java | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 4 +++- .../cast/java/client/JavaSourceAnalysisEngine.java | 2 +- .../java/client/impl/ZeroCFABuilderFactory.java | 3 ++- .../wala/cast/java/ipa/slicer/AstJavaSlicer.java | 4 ++-- .../.settings/org.eclipse.jdt.core.prefs | 4 +++- .../cast/js/client/impl/ZeroCFABuilderFactory.java | 3 ++- .../analysis/SimpleThreadEscapeAnalysis.java | 8 ++++---- .../ibm/wala/client/AbstractAnalysisEngine.java | 14 +++++++------- .../java/client/JDTJavaSourceAnalysisEngine.java | 2 +- .../js/client/EclipseJavaScriptAnalysisEngine.java | 2 +- .../ide/client/EclipseProjectAnalysisEngine.java | 2 +- 14 files changed, 36 insertions(+), 30 deletions(-) diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java index 55d43033b..95b9b5bb7 100644 --- a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java @@ -348,7 +348,7 @@ public abstract class IRTests { protected abstract AbstractAnalysisEngine, ?> getAnalysisEngine(String[] mainClassDescriptors, Collection sources, List libs); - public Pair> runTest(Collection sources, List libs, + public Pair> runTest(Collection sources, List libs, String[] mainClassDescriptors, List ca, boolean assertReachable) throws IllegalArgumentException, CancelException, IOException { AbstractAnalysisEngine, ?> engine = getAnalysisEngine(mainClassDescriptors, sources, libs); diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java index 4b3681583..1a4b546fa 100644 --- a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java @@ -318,13 +318,13 @@ public abstract class JavaIRTests extends IRTests { } @Test public void testInnerClassA() throws IllegalArgumentException, CancelException, IOException { - Pair> x = + Pair> x = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), new ArrayList(), true); // can't do an IRAssertion() -- we need the pointer analysis CallGraph cg = x.fst; - PointerAnalysis pa = x.snd; + PointerAnalysis pa = x.snd; Iterator iter = cg.iterator(); while ( iter.hasNext() ) { @@ -377,13 +377,13 @@ public abstract class JavaIRTests extends IRTests { } @Test public void testInnerClassSuper() throws IllegalArgumentException, CancelException, IOException { - Pair> x = + Pair> x = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), new ArrayList(), true); // can't do an IRAssertion() -- we need the pointer analysis CallGraph cg = x.fst; - PointerAnalysis pa = x.snd; + PointerAnalysis pa = x.snd; Iterator iter = cg.iterator(); while ( iter.hasNext() ) { @@ -534,15 +534,15 @@ public abstract class JavaIRTests extends IRTests { } @Test public void testMiniaturSliceBug() throws IllegalArgumentException, CancelException, IOException { - Pair> x = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); + Pair> x = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); - PointerAnalysis pa = x.snd; + PointerAnalysis pa = x.snd; CallGraph cg = x.fst; // test partial slice MethodReference sliceRootRef = getSliceRootReference("MiniaturSliceBug", "validNonDispatchedCall", "(LIntWrapper;)V"); Set roots = cg.getNodes(sliceRootRef); - Pair,SDG> y = AstJavaSlicer.computeAssertionSlice(cg, pa, roots, false); + Pair,SDG> y = AstJavaSlicer.computeAssertionSlice(cg, pa, roots, false); Collection slice = y.fst; SlicerTest.dumpSlice(slice); Assert.assertEquals(0, SlicerTest.countAllocations(slice)); diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTests.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTests.java index e279545f4..50de1501b 100644 --- a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTests.java +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTests.java @@ -40,7 +40,7 @@ public abstract class SyncDuplicatorTests extends IRTests { Descriptor.findOrCreateUTF8(Language.JAVA, "(Ljava/lang/Object;)Z")), IInvokeInstruction.Dispatch.STATIC); @Test public void testMonitor2() throws IllegalArgumentException, CancelException, IOException { - Pair> result = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); + Pair> result = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); System.err.println(result.fst); } diff --git a/com.ibm.wala.cast.java/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.java/.settings/org.eclipse.jdt.core.prefs index dbfe9d595..5465e174f 100644 --- a/com.ibm.wala.cast.java/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.java/.settings/org.eclipse.jdt.core.prefs @@ -17,6 +17,7 @@ org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.APILeak=error org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=error org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=error @@ -77,7 +78,7 @@ org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariable org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=error -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=error org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=error org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=error @@ -90,6 +91,7 @@ org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.terminalDeprecation=error org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=error diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java index 3bfc6d91e..849b97451 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java @@ -167,7 +167,7 @@ public abstract class JavaSourceAnalysisEngine extends Ab } @Override - protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { + protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { return new ZeroCFABuilderFactory().make(options, cache, cha, scope); } } diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java index 5f423b413..903041ba9 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java @@ -16,6 +16,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Util; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -26,7 +27,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class ZeroCFABuilderFactory { - public CallGraphBuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope) { + public CallGraphBuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope) { Util.addDefaultSelectors(options, cha); Util.addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return new AstJavaZeroXCFABuilder(cha, options, cache, null, null, ZeroXInstanceKeys.NONE); diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/slicer/AstJavaSlicer.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/slicer/AstJavaSlicer.java index 9bc35a825..66d7d233a 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/slicer/AstJavaSlicer.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/slicer/AstJavaSlicer.java @@ -89,10 +89,10 @@ public class AstJavaSlicer extends Slicer { return gatherStatements(CG, partialRoots, o -> (o instanceof SSAGetInstruction) || (o instanceof SSAArrayLoadInstruction)); } - public static Pair, SDG> computeAssertionSlice(CallGraph CG, PointerAnalysis pa, + public static Pair, SDG> computeAssertionSlice(CallGraph CG, PointerAnalysis pa, Collection partialRoots, boolean multiThreadedCode) throws IllegalArgumentException, CancelException { CallGraph pcg = PartialCallGraph.make(CG, new LinkedHashSet<>(partialRoots)); - SDG sdg = new SDG<>(pcg, pa, new AstJavaModRef<>(), DataDependenceOptions.FULL, ControlDependenceOptions.FULL); + SDG sdg = new SDG<>(pcg, pa, new AstJavaModRef<>(), DataDependenceOptions.FULL, ControlDependenceOptions.FULL); //System.err.println(("SDG:\n" + sdg)); Set stmts = gatherAssertions(CG, partialRoots); if (multiThreadedCode) { diff --git a/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs index c3cb0dec9..86d282952 100644 --- a/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs @@ -17,6 +17,7 @@ org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.APILeak=error org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=error org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore @@ -77,7 +78,7 @@ org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariable org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=error -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=error org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=error org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=error @@ -90,6 +91,7 @@ org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=enabled org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.terminalDeprecation=error org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=error diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java index 088628fd0..a60b56a94 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java @@ -15,6 +15,7 @@ import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions; import com.ibm.wala.cast.js.ipa.callgraph.JSZeroOrOneXCFABuilder; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -25,7 +26,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class ZeroCFABuilderFactory { - public CallGraphBuilder make(JSAnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha) { + public CallGraphBuilder make(JSAnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha) { com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha); options.setSelector(new StandardFunctionTargetSelector(cha, options.getMethodTargetSelector())); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java index 77898945e..f1ba1ff5a 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java @@ -205,7 +205,7 @@ public class SimpleThreadEscapeAnalysis extends AbstractAnalysisEngine pa = getPointerAnalysis(); + PointerAnalysis pa = getPointerAnalysis(); // // collect all places where objects can escape their creating thread: @@ -252,7 +252,7 @@ public class SimpleThreadEscapeAnalysis extends AbstractAnalysisEngine objects = pa.getPointsToSet(root); + OrdinalSet objects = pa.getPointsToSet(root); for (InstanceKey obj : objects) { escapingInstanceKeys.add(obj); } @@ -270,7 +270,7 @@ public class SimpleThreadEscapeAnalysis extends AbstractAnalysisEngine fobjects = pa.getPointsToSet(fk); + OrdinalSet fobjects = pa.getPointsToSet(fk); for (InstanceKey fobj : fobjects) { if (!escapingInstanceKeys.contains(fobj)) { newKeys.add(fobj); @@ -282,7 +282,7 @@ public class SimpleThreadEscapeAnalysis extends AbstractAnalysisEngine fobjects = pa.getPointsToSet(fk); + OrdinalSet fobjects = pa.getPointsToSet(fk); for (InstanceKey fobj : fobjects) { if (!escapingInstanceKeys.contains(fobj)) { newKeys.add(fobj); diff --git a/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java b/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java index d782ba4ce..399a7a182 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java +++ b/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java @@ -118,7 +118,7 @@ public abstract class AbstractAnalysisEngine pointerAnalysis; + protected PointerAnalysis pointerAnalysis; /** * Graph view of flow of pointers between heap abstractions @@ -127,11 +127,11 @@ public abstract class AbstractAnalysisEngine getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache2); - protected X buildCallGraph(IClassHierarchy cha, AnalysisOptions options, boolean savePointerAnalysis, + protected CallGraphBuilder buildCallGraph(IClassHierarchy cha, AnalysisOptions options, boolean savePointerAnalysis, IProgressMonitor monitor) throws IllegalArgumentException, CancelException { - X builder = getCallGraphBuilder(cha, options, cache); + CallGraphBuilder builder = getCallGraphBuilder(cha, options, cache); cg = builder.makeCallGraph(options, monitor); @@ -254,7 +254,7 @@ public abstract class AbstractAnalysisEngine getPointerAnalysis() { + public PointerAnalysis getPointerAnalysis() { return pointerAnalysis; } @@ -265,7 +265,7 @@ public abstract class AbstractAnalysisEngine getSDG(DataDependenceOptions data, ControlDependenceOptions ctrl) { + public SDG getSDG(DataDependenceOptions data, ControlDependenceOptions ctrl) { return new SDG<>(getCallGraph(), getPointerAnalysis(), data, ctrl); } @@ -301,7 +301,7 @@ public abstract class AbstractAnalysisEngine defaultCallGraphBuilder() throws IllegalArgumentException, CancelException, IOException { buildAnalysisScope(); IClassHierarchy cha = buildClassHierarchy(); setClassHierarchy(cha); diff --git a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java index f42eb8b89..edca0b3d5 100644 --- a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java +++ b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java @@ -106,7 +106,7 @@ public class JDTJavaSourceAnalysisEngine extends EclipseP } @Override - protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, + protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { return new ZeroCFABuilderFactory().make(options, cache, cha, scope); } diff --git a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java index 1b1d31d25..38ced16db 100644 --- a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java +++ b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java @@ -113,7 +113,7 @@ public class EclipseJavaScriptAnalysisEngine extends Ecli } @Override - protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, + protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { return new ZeroCFABuilderFactory().make((JSAnalysisOptions)options, cache, cha); } diff --git a/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java b/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java index a23cac8c7..44beb6afe 100644 --- a/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java +++ b/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java @@ -48,7 +48,7 @@ abstract public class EclipseProjectAnalysisEngine ext abstract protected EclipseProjectPath createProjectPath(P project) throws IOException, CoreException; @Override - abstract protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache); + abstract protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache); abstract protected AnalysisScope makeAnalysisScope();