Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
108dea730b
|
@ -87,15 +87,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -72,15 +72,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.util.HashSet;
|
|||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cast.ir.ssa.AstAssertInstruction;
|
||||
import com.ibm.wala.cast.java.ipa.modref.AstJavaModRef;
|
||||
|
@ -35,7 +36,6 @@ import com.ibm.wala.ssa.SSAInstruction;
|
|||
import com.ibm.wala.ssa.SSAMonitorInstruction;
|
||||
import com.ibm.wala.ssa.SSAPutInstruction;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.graph.traverse.DFS;
|
||||
|
||||
|
|
|
@ -11,3 +11,4 @@ javacProjectSettings = true
|
|||
bin.excludes = dat/core-modules/.eslintrc,\
|
||||
dat/core-modules/.gitignore,\
|
||||
dat/core-modules/.gitkeep
|
||||
javacDefaultEncoding.. = UTF-8
|
||||
|
|
|
@ -16,6 +16,7 @@ import java.io.IOException;
|
|||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.Properties;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
|
@ -35,7 +36,6 @@ import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
|
|||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
import com.ibm.wala.util.NullProgressMonitor;
|
||||
import com.ibm.wala.util.ProgressMaster;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.io.CommandLine;
|
||||
import com.ibm.wala.util.io.FileProvider;
|
||||
import com.ibm.wala.util.io.FileUtil;
|
||||
|
@ -80,7 +80,7 @@ public class HTMLCGBuilder {
|
|||
* @throws IOException
|
||||
* @throws ClassHierarchyException
|
||||
*/
|
||||
public static CGBuilderResult buildHTMLCG(String src, int timeout, CGBuilderType builderType, Function<Void, JSSourceExtractor> fExtractor)
|
||||
public static CGBuilderResult buildHTMLCG(String src, int timeout, CGBuilderType builderType, Supplier<JSSourceExtractor> fExtractor)
|
||||
throws ClassHierarchyException, IOException {
|
||||
CGBuilderResult res = new CGBuilderResult();
|
||||
URL url = null;
|
||||
|
|
|
@ -16,6 +16,7 @@ import java.net.MalformedURLException;
|
|||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cast.ipa.callgraph.CAstAnalysisScope;
|
||||
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
|
||||
|
@ -41,7 +42,6 @@ import com.ibm.wala.ssa.IR;
|
|||
import com.ibm.wala.ssa.IRFactory;
|
||||
import com.ibm.wala.ssa.SSAOptions;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
|
||||
|
|
|
@ -77,15 +77,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.net.URL;
|
|||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.ibm.wala.cast.ipa.callgraph.CAstAnalysisScope;
|
||||
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
|
||||
|
@ -45,7 +46,6 @@ import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
|||
import com.ibm.wala.util.NullProgressMonitor;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
/**
|
||||
* Utility class for building call graphs.
|
||||
|
@ -89,11 +89,11 @@ public class FieldBasedCGUtil {
|
|||
this.translatorFactory = translatorFactory;
|
||||
}
|
||||
|
||||
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, boolean supportFullPointerAnalysis, Function<Void, JSSourceExtractor> fExtractor) throws WalaException, CancelException {
|
||||
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, boolean supportFullPointerAnalysis, Supplier<JSSourceExtractor> fExtractor) throws WalaException, CancelException {
|
||||
return buildCG(url, builderType, new NullProgressMonitor(), supportFullPointerAnalysis, fExtractor);
|
||||
}
|
||||
|
||||
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Function<Void, JSSourceExtractor> fExtractor) throws WalaException, CancelException {
|
||||
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Supplier<JSSourceExtractor> fExtractor) throws WalaException, CancelException {
|
||||
if (url.getFile().endsWith(".js")) {
|
||||
return buildScriptCG(url, builderType, monitor, supportFullPointerAnalysis);
|
||||
} else {
|
||||
|
@ -116,7 +116,7 @@ public class FieldBasedCGUtil {
|
|||
return buildCG(loaders, scripts, builderType, monitor, supportFullPointerAnalysis);
|
||||
}
|
||||
|
||||
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildPageCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Function<Void, JSSourceExtractor> fExtractor) throws WalaException, CancelException {
|
||||
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildPageCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Supplier<JSSourceExtractor> fExtractor) throws WalaException, CancelException {
|
||||
JavaScriptLoaderFactory loaders = new WebPageLoaderFactory(translatorFactory);
|
||||
SourceModule[] scripts = JSCallGraphBuilderUtil.makeHtmlScope(url, loaders, fExtractor);
|
||||
return buildCG(loaders, scripts, builderType, monitor, supportFullPointerAnalysis);
|
||||
|
|
|
@ -16,6 +16,7 @@ import java.io.IOException;
|
|||
import java.net.JarURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
|
@ -52,7 +53,6 @@ import com.ibm.wala.ssa.IRFactory;
|
|||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.io.FileProvider;
|
||||
|
||||
/**
|
||||
|
@ -169,11 +169,11 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J
|
|||
return CG;
|
||||
}
|
||||
|
||||
public static JSCFABuilder makeHTMLCGBuilder(URL url, Function<Void, JSSourceExtractor> fExtractor) throws WalaException {
|
||||
public static JSCFABuilder makeHTMLCGBuilder(URL url, Supplier<JSSourceExtractor> fExtractor) throws WalaException {
|
||||
return makeHTMLCGBuilder(url, CGBuilderType.ZERO_ONE_CFA, fExtractor);
|
||||
}
|
||||
|
||||
public static JSCFABuilder makeHTMLCGBuilder(URL url, CGBuilderType builderType, Function<Void, JSSourceExtractor> fExtractor) throws WalaException {
|
||||
public static JSCFABuilder makeHTMLCGBuilder(URL url, CGBuilderType builderType, Supplier<JSSourceExtractor> fExtractor) throws WalaException {
|
||||
IRFactory<IMethod> irFactory = AstIRFactory.makeDefaultFactory();
|
||||
CAstRewriterFactory<?, ?> preprocessor = builderType.extractCorrelatedPairs ? new CorrelatedPairExtractorFactory(translatorFactory, url) : null;
|
||||
JavaScriptLoaderFactory loaders = new WebPageLoaderFactory(translatorFactory, preprocessor);
|
||||
|
@ -186,7 +186,7 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J
|
|||
return builder;
|
||||
}
|
||||
|
||||
public static SourceModule[] makeHtmlScope(URL url, JavaScriptLoaderFactory loaders, Function<Void,JSSourceExtractor> fExtractor) {
|
||||
public static SourceModule[] makeHtmlScope(URL url, JavaScriptLoaderFactory loaders, Supplier<JSSourceExtractor> fExtractor) {
|
||||
Set<Module> scripts = HashSetFactory.make();
|
||||
|
||||
JavaScriptLoader.addBootstrapFile(WebUtil.preamble);
|
||||
|
@ -205,14 +205,14 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J
|
|||
return scriptsArray;
|
||||
}
|
||||
|
||||
public static CallGraph makeHTMLCG(URL url, Function<Void, JSSourceExtractor> fExtractor) throws IllegalArgumentException, CancelException, WalaException {
|
||||
public static CallGraph makeHTMLCG(URL url, Supplier<JSSourceExtractor> fExtractor) throws IllegalArgumentException, CancelException, WalaException {
|
||||
SSAPropagationCallGraphBuilder b = makeHTMLCGBuilder(url, fExtractor);
|
||||
CallGraph CG = b.makeCallGraph(b.getOptions());
|
||||
dumpCG(b.getCFAContextInterpreter(), b.getPointerAnalysis(), CG);
|
||||
return CG;
|
||||
}
|
||||
|
||||
public static CallGraph makeHTMLCG(URL url, CGBuilderType builderType, Function<Void, JSSourceExtractor> fExtractor) throws IllegalArgumentException,
|
||||
public static CallGraph makeHTMLCG(URL url, CGBuilderType builderType, Supplier<JSSourceExtractor> fExtractor) throws IllegalArgumentException,
|
||||
CancelException, WalaException {
|
||||
PropagationCallGraphBuilder b = makeHTMLCGBuilder(url, builderType, fExtractor);
|
||||
CallGraph CG = b.makeCallGraph(b.getOptions());
|
||||
|
|
|
@ -15,7 +15,8 @@ import java.net.URL;
|
|||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -53,19 +54,17 @@ import com.ibm.wala.ssa.SymbolTable;
|
|||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.NullProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.intset.OrdinalSet;
|
||||
import com.ibm.wala.util.strings.Atom;
|
||||
|
||||
public abstract class TestPointerAnalyses {
|
||||
|
||||
private final class CheckPointers extends Predicate<Pair<Set<Pair<CGNode, NewSiteReference>>, Set<Pair<CGNode, NewSiteReference>>>> {
|
||||
private final class CheckPointers implements Predicate<Pair<Set<Pair<CGNode, NewSiteReference>>, Set<Pair<CGNode, NewSiteReference>>>> {
|
||||
private Set<Pair<String,Integer>> map(Set<Pair<CGNode, NewSiteReference>> sites) {
|
||||
Set<Pair<String,Integer>> result = HashSetFactory.make();
|
||||
for(Pair<CGNode,NewSiteReference> s : sites) {
|
||||
|
|
|
@ -82,15 +82,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -11,10 +11,11 @@
|
|||
|
||||
package com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
public class FilteredFlowGraphBuilder extends FlowGraphBuilder {
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.util.Collection;
|
|||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.analysis.pointers.HeapGraph;
|
||||
import com.ibm.wala.cast.ipa.callgraph.AstHeapModel;
|
||||
|
@ -57,7 +58,6 @@ import com.ibm.wala.ssa.SSANewInstruction;
|
|||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.CompoundIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
|
|
|
@ -19,17 +19,17 @@ import java.util.Map;
|
|||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.Stack;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
public class DefaultSourceExtractor extends DomLessSourceExtractor{
|
||||
|
||||
public static Function<Void,JSSourceExtractor> factory = new Function<Void,JSSourceExtractor>() {
|
||||
public static Supplier<JSSourceExtractor> factory = new Supplier<JSSourceExtractor>() {
|
||||
@Override
|
||||
public JSSourceExtractor apply(Void object) {
|
||||
public JSSourceExtractor get() {
|
||||
return new DefaultSourceExtractor();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -23,6 +23,7 @@ import java.util.Collections;
|
|||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.io.ByteOrderMark;
|
||||
|
@ -32,7 +33,6 @@ import com.ibm.wala.cast.ir.translator.TranslatorToCAst.Error;
|
|||
import com.ibm.wala.cast.js.html.jericho.JerichoHtmlParser;
|
||||
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
/**
|
||||
* extracts JavaScript source code from HTML, with no model of the actual
|
||||
|
@ -42,9 +42,9 @@ public class DomLessSourceExtractor extends JSSourceExtractor {
|
|||
private static final Pattern LEGAL_JS_IDENTIFIER_REGEXP = Pattern.compile("^[a-zA-Z$_][a-zA-Z\\d$_]*$");
|
||||
private static final Pattern LEGAL_JS_KEYWORD_REGEXP = Pattern.compile("^((break)|(case)|(catch)|(continue)|(debugger)|(default)|(delete)|(do)|(else)|(finally)|(for)|(function)|(if)|(in)|(instanceof)|(new)|(return)|(switch)|(this)|(throw)|(try)|(typeof)|(var)|(void)|(while)|(with))$");
|
||||
|
||||
public static Function<Void,JSSourceExtractor> factory = new Function<Void,JSSourceExtractor>() {
|
||||
public static Supplier<JSSourceExtractor> factory = new Supplier<JSSourceExtractor>() {
|
||||
@Override
|
||||
public JSSourceExtractor apply(Void object) {
|
||||
public JSSourceExtractor get() {
|
||||
return new DomLessSourceExtractor();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -18,11 +18,11 @@ import java.net.MalformedURLException;
|
|||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.ibm.wala.cast.ir.translator.TranslatorToCAst.Error;
|
||||
import com.ibm.wala.cast.js.html.jericho.JerichoHtmlParser;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
public class WebUtil {
|
||||
|
||||
|
@ -47,9 +47,9 @@ public class WebUtil {
|
|||
* such file exists)
|
||||
* @throws Error
|
||||
*/
|
||||
public static Pair<Set<MappedSourceModule>,File> extractScriptFromHTML(URL url, Function<Void,JSSourceExtractor> fSourceExtractor) throws Error {
|
||||
public static Pair<Set<MappedSourceModule>,File> extractScriptFromHTML(URL url, Supplier<JSSourceExtractor> fSourceExtractor) throws Error {
|
||||
try {
|
||||
JSSourceExtractor extractor = fSourceExtractor.apply(null);
|
||||
JSSourceExtractor extractor = fSourceExtractor.get();
|
||||
Set<MappedSourceModule> sources = extractor.extractSources(url, factory.getParser(), new IdentityUrlResolver());
|
||||
return Pair.make(sources, extractor.getTempFile());
|
||||
} catch (IOException e) {
|
||||
|
|
|
@ -13,6 +13,7 @@ import java.util.ArrayList;
|
|||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.cast.js.loader.JavaScriptLoader;
|
||||
import com.ibm.wala.cast.js.types.JavaScriptMethods;
|
||||
|
@ -26,7 +27,6 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.MapUtil;
|
||||
import com.ibm.wala.util.collections.Util;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
/**
|
||||
* Utility class to serialize call graphs as JSON objects.
|
||||
|
|
|
@ -72,15 +72,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -13,6 +13,7 @@ package com.ibm.wala.cast.ipa.callgraph;
|
|||
import java.util.ConcurrentModificationException;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.cast.ir.cfg.AstInducedCFG;
|
||||
import com.ibm.wala.cast.ir.ssa.AstLexicalRead;
|
||||
|
@ -35,7 +36,6 @@ import com.ibm.wala.types.MethodReference;
|
|||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
public class AstCallGraph extends ExplicitCallGraph {
|
||||
public AstCallGraph(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) {
|
||||
|
|
|
@ -17,7 +17,9 @@ import com.ibm.wala.classLoader.CallSiteReference;
|
|||
import com.ibm.wala.classLoader.CodeScanner;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.*;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.cfa.ContextInsensitiveSSAInterpreter;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
|
|
|
@ -18,8 +18,18 @@ import java.util.Set;
|
|||
import com.ibm.wala.analysis.reflection.ReflectionContextInterpreter;
|
||||
import com.ibm.wala.cast.ipa.callgraph.AstCallGraph.AstCGNode;
|
||||
import com.ibm.wala.cast.ipa.callgraph.ScopeMappingInstanceKeys.ScopeMappingInstanceKey;
|
||||
import com.ibm.wala.cast.ir.ssa.*;
|
||||
import com.ibm.wala.cast.ir.ssa.AstAssertInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.AstEchoInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.AstGlobalRead;
|
||||
import com.ibm.wala.cast.ir.ssa.AstGlobalWrite;
|
||||
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
|
||||
import com.ibm.wala.cast.ir.ssa.AstInstructionVisitor;
|
||||
import com.ibm.wala.cast.ir.ssa.AstIsDefinedInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access;
|
||||
import com.ibm.wala.cast.ir.ssa.AstLexicalRead;
|
||||
import com.ibm.wala.cast.ir.ssa.AstLexicalWrite;
|
||||
import com.ibm.wala.cast.ir.ssa.EachElementGetInstruction;
|
||||
import com.ibm.wala.cast.ir.ssa.EachElementHasNextInstruction;
|
||||
import com.ibm.wala.cast.ir.translator.AstTranslator;
|
||||
import com.ibm.wala.cast.loader.AstMethod;
|
||||
import com.ibm.wala.cast.loader.AstMethod.LexicalInformation;
|
||||
|
|
|
@ -12,6 +12,7 @@ package com.ibm.wala.cast.ipa.callgraph;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
|
@ -23,7 +24,6 @@ import com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory;
|
|||
import com.ibm.wala.ipa.callgraph.propagation.PointerKey;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.CompoundIterator;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
|
|
|
@ -12,6 +12,7 @@ package com.ibm.wala.cast.ipa.lexical;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.cast.ipa.callgraph.ScopeMappingInstanceKeys.ScopeMappingInstanceKey;
|
||||
import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access;
|
||||
|
@ -27,7 +28,6 @@ import com.ibm.wala.ssa.SSAInstruction;
|
|||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Iterator2Iterable;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.intset.OrdinalSet;
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,7 +17,6 @@ import java.util.Iterator;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
|
||||
import com.ibm.wala.cast.ir.ssa.analysis.LiveAnalysis;
|
||||
import com.ibm.wala.cast.loader.AstMethod;
|
||||
import com.ibm.wala.cast.loader.AstMethod.DebuggingInformation;
|
||||
|
|
|
@ -19,6 +19,8 @@ import java.util.Iterator;
|
|||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
|
@ -27,12 +29,10 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.classLoader.ModuleEntry;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.types.TypeName;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.strings.Atom;
|
||||
import com.ibm.wala.util.warnings.Warning;
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@ package com.ibm.wala.cast.util;
|
|||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cast.tree.CAstNode;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.graph.traverse.DFSDiscoverTimeIterator;
|
||||
|
|
|
@ -15,17 +15,16 @@
|
|||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="false"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="com.ibm.wala.core.tests" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.ibm.wala.core.tests"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.core.testdata/bin" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.core.testdata/@dot" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.core.testdata/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry path="3" projectName="com.ibm.wala.core.testdata" type="1"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="com.ibm.wala.core.tests" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.ibm.wala.core.tests"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.core.testdata/bin" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.ibm.wala.core.testdata/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry path="3" projectName="com.ibm.wala.core.testdata" type="1"/> "/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/ikvm-8.1.5717.0"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx800M -verbose:gc -Dcom.ibm.wala.util.fixedpoint.impl.verbose=true"/>
|
||||
</launchConfiguration>
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
package com.ibm.wala.core.tests.basic;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
|
||||
import com.ibm.wala.util.graph.traverse.DFSAllPathsFinder;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
package com.ibm.wala.core.tests.callGraph;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -24,7 +25,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
|||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
public class CHACallGraphTest {
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ package com.ibm.wala.core.tests.callGraph;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
import org.junit.Test;
|
||||
|
@ -36,7 +37,6 @@ import com.ibm.wala.shrikeCT.InvalidClassFileException;
|
|||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.io.TemporaryFile;
|
||||
|
||||
public class Java7CallGraphTest extends DynamicCallGraphTestBase {
|
||||
|
|
|
@ -21,6 +21,7 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
import org.apache.tools.ant.Project;
|
||||
|
@ -39,7 +40,6 @@ import com.ibm.wala.types.ClassLoaderReference;
|
|||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.types.Selector;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.io.TemporaryFile;
|
||||
|
@ -147,7 +147,7 @@ public abstract class DynamicCallGraphTestBase extends WalaTestCase {
|
|||
}
|
||||
|
||||
protected void checkEdges(CallGraph staticCG) throws IOException {
|
||||
checkEdges(staticCG, Predicate.<MethodReference>truePred());
|
||||
checkEdges(staticCG, (x) -> true );
|
||||
}
|
||||
|
||||
protected void checkEdges(CallGraph staticCG, Predicate<MethodReference> filter) throws IOException {
|
||||
|
@ -170,7 +170,7 @@ public abstract class DynamicCallGraphTestBase extends WalaTestCase {
|
|||
}
|
||||
|
||||
protected void checkNodes(CallGraph staticCG) throws IOException {
|
||||
checkNodes(staticCG, Predicate.<MethodReference>truePred());
|
||||
checkNodes(staticCG, (x) -> true);
|
||||
}
|
||||
|
||||
protected void checkNodes(CallGraph staticCG, Predicate<MethodReference> filter) throws IOException {
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.io.IOException;
|
|||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Properties;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.examples.properties.WalaExamplesProperties;
|
||||
|
@ -33,7 +34,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
|||
import com.ibm.wala.properties.WalaProperties;
|
||||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.config.AnalysisScopeReader;
|
||||
|
@ -196,7 +196,7 @@ public class PDFCallGraph {
|
|||
* <li> {@link LocalPointerKey}
|
||||
* </ul>
|
||||
*/
|
||||
private static class ApplicationLoaderFilter extends Predicate<CGNode> {
|
||||
private static class ApplicationLoaderFilter implements Predicate<CGNode> {
|
||||
|
||||
@Override public boolean test(CGNode o) {
|
||||
if (o == null)
|
||||
|
|
|
@ -13,6 +13,7 @@ package com.ibm.wala.examples.drivers;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.examples.properties.WalaExamplesProperties;
|
||||
|
@ -36,7 +37,6 @@ import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions;
|
|||
import com.ibm.wala.ipa.slicer.Statement;
|
||||
import com.ibm.wala.properties.WalaProperties;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.config.AnalysisScopeReader;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.Properties;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.core.tests.slicer.SlicerTest;
|
||||
|
@ -47,7 +48,6 @@ import com.ibm.wala.ssa.SSAInstruction;
|
|||
import com.ibm.wala.ssa.SSAInvokeInstruction;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.config.AnalysisScopeReader;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.Properties;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
|
@ -24,7 +25,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
|||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.properties.WalaProperties;
|
||||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.CollectionFilter;
|
||||
import com.ibm.wala.util.config.AnalysisScopeReader;
|
||||
|
|
|
@ -62,15 +62,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
@ -98,8 +89,8 @@
|
|||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.2</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.function.IntFunction;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IField;
|
||||
|
@ -28,7 +29,6 @@ import com.ibm.wala.util.collections.EmptyIterator;
|
|||
import com.ibm.wala.util.collections.IntMapIterator;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.debug.UnimplementedError;
|
||||
import com.ibm.wala.util.functions.IntFunction;
|
||||
import com.ibm.wala.util.graph.AbstractNumberedGraph;
|
||||
import com.ibm.wala.util.graph.NumberedEdgeManager;
|
||||
import com.ibm.wala.util.graph.NumberedGraph;
|
||||
|
|
|
@ -13,12 +13,12 @@ package com.ibm.wala.analysis.pointers;
|
|||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.propagation.HeapModel;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PointerKey;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
import com.ibm.wala.util.graph.impl.NumberedNodeIterator;
|
||||
import com.ibm.wala.util.graph.traverse.DFS;
|
||||
|
|
|
@ -13,6 +13,8 @@ package com.ibm.wala.analysis.reflection.java7;
|
|||
import java.lang.ref.SoftReference;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
|
@ -44,11 +46,9 @@ import com.ibm.wala.ssa.SSAPutInstruction;
|
|||
import com.ibm.wala.types.FieldReference;
|
||||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.intset.IntSet;
|
||||
import com.ibm.wala.util.intset.IntSetUtil;
|
||||
|
||||
|
|
|
@ -15,12 +15,13 @@ import java.util.Collection;
|
|||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.shrikeBT.Constants;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.CompoundIterator;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
import com.ibm.wala.util.collections.IteratorPlusOne;
|
||||
|
@ -227,13 +228,13 @@ public abstract class AbstractCFG<I, T extends IBasicBlock<I>> implements Contro
|
|||
throw new IllegalArgumentException("N is null");
|
||||
}
|
||||
if (N.equals(exit())) {
|
||||
return Predicate.filter(iterator(), new Predicate<T>() {
|
||||
return new FilterIterator<>(iterator(), new Predicate<T>() {
|
||||
@Override
|
||||
public boolean test(T o) {
|
||||
int i = getNumber(o);
|
||||
return normalToExit.get(i) || exceptionalToExit.get(i);
|
||||
}
|
||||
}).iterator();
|
||||
});
|
||||
} else {
|
||||
int number = getNumber(N);
|
||||
boolean normalIn = getNumberOfNormalIn(N) > 0;
|
||||
|
@ -340,13 +341,13 @@ public abstract class AbstractCFG<I, T extends IBasicBlock<I>> implements Contro
|
|||
|
||||
Iterator<T> iterateExceptionalPredecessors(T N) {
|
||||
if (N.equals(exit())) {
|
||||
return Predicate.filter(iterator(), new Predicate<T>() {
|
||||
return new FilterIterator<>(iterator(), new Predicate<T>() {
|
||||
@Override
|
||||
public boolean test(T o) {
|
||||
int i = getNumber(o);
|
||||
return exceptionalToExit.get(i);
|
||||
}
|
||||
}).iterator();
|
||||
});
|
||||
} else {
|
||||
return exceptionalEdgeManager.getPredNodes(N);
|
||||
}
|
||||
|
@ -354,13 +355,13 @@ public abstract class AbstractCFG<I, T extends IBasicBlock<I>> implements Contro
|
|||
|
||||
Iterator<T> iterateNormalPredecessors(T N) {
|
||||
if (N.equals(exit())) {
|
||||
return Predicate.filter(iterator(), new Predicate<T>() {
|
||||
return new FilterIterator<>(iterator(), new Predicate<T>() {
|
||||
@Override
|
||||
public boolean test(T o) {
|
||||
int i = getNumber(o);
|
||||
return normalToExit.get(i);
|
||||
}
|
||||
}).iterator();
|
||||
});
|
||||
} else {
|
||||
int number = getNumber(N);
|
||||
if (number > 0 && fallThru.get(number - 1)) {
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
package com.ibm.wala.dataflow.IFDS;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
@ -76,7 +76,7 @@ public class BackwardsSupergraph<T, P> implements ISupergraph<T, P> {
|
|||
/**
|
||||
* a filter that accepts only exit nodes from the original graph.
|
||||
*/
|
||||
private class ExitFilter extends Predicate {
|
||||
private class ExitFilter implements Predicate {
|
||||
/*
|
||||
* @see com.ibm.wala.util.Filter#accepts(java.lang.Object)
|
||||
*/
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
package com.ibm.wala.dataflow.IFDS;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
|
@ -32,7 +33,6 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
|
|||
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
|
|
@ -45,6 +45,8 @@ import java.util.LinkedHashSet;
|
|||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.analysis.reflection.InstanceKeyWithNode;
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
|
@ -113,7 +115,6 @@ import com.ibm.wala.ssa.SSAArrayStoreInstruction;
|
|||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.SSANewInstruction;
|
||||
import com.ibm.wala.ssa.SSAPutInstruction;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.ArraySet;
|
||||
import com.ibm.wala.util.collections.ArraySetMultiMap;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
|
@ -127,7 +128,6 @@ import com.ibm.wala.util.collections.Pair;
|
|||
import com.ibm.wala.util.collections.Util;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.debug.UnimplementedError;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.intset.IntSet;
|
||||
import com.ibm.wala.util.intset.IntSetAction;
|
||||
import com.ibm.wala.util.intset.MutableIntSet;
|
||||
|
@ -517,7 +517,7 @@ public class DemandRefinementPointsTo extends AbstractDemandPointsTo {
|
|||
*/
|
||||
@Override
|
||||
public Collection<InstanceKey> getPointsTo(PointerKey pk) {
|
||||
return getPointsTo(pk, Predicate.<InstanceKey> falsePred()).snd;
|
||||
return getPointsTo(pk, (InstanceKey k) -> { return false; }).snd;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -525,7 +525,7 @@ public class DemandRefinementPointsTo extends AbstractDemandPointsTo {
|
|||
* <code>null</code> if the points-to set can't be computed in the allocated budget
|
||||
*/
|
||||
public Collection<InstanceKeyAndState> getPointsToWithStates(PointerKey pk) {
|
||||
return getPointsToWithStates(pk, Predicate.<InstanceKey> falsePred()).snd;
|
||||
return getPointsToWithStates(pk, (InstanceKey k) -> { return false; }).snd;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -13,6 +13,7 @@ package com.ibm.wala.escape;
|
|||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.ssa.DefUse;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
|
@ -21,7 +22,6 @@ import com.ibm.wala.ssa.SSACFG;
|
|||
import com.ibm.wala.ssa.SSACFG.BasicBlock;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.SSAReturnInstruction;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
|
|
@ -20,6 +20,8 @@ import java.util.LinkedHashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.jar.Attributes;
|
||||
import java.util.jar.JarFile;
|
||||
import java.util.jar.Manifest;
|
||||
|
@ -39,7 +41,6 @@ import com.ibm.wala.types.Descriptor;
|
|||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.types.TypeName;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
|
@ -47,7 +48,6 @@ import com.ibm.wala.util.collections.MapIterator;
|
|||
import com.ibm.wala.util.collections.MapUtil;
|
||||
import com.ibm.wala.util.config.SetOfClasses;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.io.RtJar;
|
||||
import com.ibm.wala.util.strings.Atom;
|
||||
import com.ibm.wala.util.strings.ImmutableByteArray;
|
||||
|
|
|
@ -13,6 +13,7 @@ package com.ibm.wala.ipa.callgraph;
|
|||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.dataflow.graph.BitVectorSolver;
|
||||
import com.ibm.wala.fixpoint.BitVectorVariable;
|
||||
|
@ -20,7 +21,6 @@ import com.ibm.wala.ipa.modref.GenReach;
|
|||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.CancelRuntimeException;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.graph.impl.GraphInverter;
|
||||
import com.ibm.wala.util.intset.OrdinalSet;
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@ import java.util.Iterator;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Stack;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
|
@ -35,7 +37,6 @@ import com.ibm.wala.shrikeBT.IInvokeInstruction;
|
|||
import com.ibm.wala.ssa.DefUse;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.ComposedIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
|
@ -43,7 +44,6 @@ import com.ibm.wala.util.collections.HashSetFactory;
|
|||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
import com.ibm.wala.util.collections.IteratorUtil;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.graph.NumberedEdgeManager;
|
||||
import com.ibm.wala.util.intset.IntSet;
|
||||
import com.ibm.wala.util.intset.IntSetUtil;
|
||||
|
|
|
@ -15,6 +15,8 @@ import java.util.Collections;
|
|||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.function.IntFunction;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
|
@ -32,14 +34,12 @@ import com.ibm.wala.ssa.IR;
|
|||
import com.ibm.wala.ssa.ISSABasicBlock;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.IntMapIterator;
|
||||
import com.ibm.wala.util.collections.SparseVector;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.functions.IntFunction;
|
||||
import com.ibm.wala.util.graph.NumberedEdgeManager;
|
||||
import com.ibm.wala.util.intset.BasicNaturalRelation;
|
||||
import com.ibm.wala.util.intset.IBinaryNaturalRelation;
|
||||
|
|
|
@ -13,6 +13,7 @@ package com.ibm.wala.ipa.callgraph.impl;
|
|||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
|
@ -21,7 +22,6 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.ipa.callgraph.Context;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
package com.ibm.wala.ipa.callgraph.propagation;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
|
@ -18,11 +20,9 @@ import com.ibm.wala.classLoader.NewSiteReference;
|
|||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.Context;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
/**
|
||||
* An {@link InstanceKey} which represents a {@link NewSiteReference} in some {@link IMethod}. Note that this differs from
|
||||
|
|
|
@ -12,6 +12,8 @@ package com.ibm.wala.ipa.callgraph.propagation;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
|
@ -20,13 +22,11 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.ComposedIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
/**
|
||||
* An instance key which represents a unique set for each concrete type.
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
package com.ibm.wala.ipa.callgraph.propagation;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.IVector;
|
||||
import com.ibm.wala.util.collections.SimpleVector;
|
||||
|
|
|
@ -16,6 +16,7 @@ import java.util.HashSet;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.fixedpoint.impl.GeneralStatement;
|
||||
import com.ibm.wala.fixpoint.AbstractOperator;
|
||||
|
@ -25,7 +26,6 @@ import com.ibm.wala.fixpoint.IFixedPointSystem;
|
|||
import com.ibm.wala.fixpoint.IVariable;
|
||||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.fixpoint.UnaryStatement;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.CompoundIterator;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.util.Collection;
|
|||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.SyntheticMethod;
|
||||
|
@ -31,8 +32,9 @@ import com.ibm.wala.ssa.SSACheckCastInstruction;
|
|||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
|
||||
/**
|
||||
* A helper class which can modify a {@link PropagationCallGraphBuilder} to deal with reflective factory methods.
|
||||
|
@ -78,7 +80,7 @@ public class ReflectionHandler {
|
|||
}
|
||||
}
|
||||
};
|
||||
Collection<Statement> casts = Predicate.filter(slice.iterator(), f);
|
||||
Collection<Statement> casts = Iterator2Collection.toSet(new FilterIterator<>(slice.iterator(), f));
|
||||
changedNodes.addAll(modifyFactoryInterpreter(st, casts, builder.getContextInterpreter(), builder.getClassHierarchy()));
|
||||
}
|
||||
for (Iterator<CGNode> it = changedNodes.iterator(); it.hasNext();) {
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.HashSet;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.ibm.wala.analysis.reflection.CloneInterpreter;
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
|
@ -78,7 +79,6 @@ import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
|||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.debug.UnimplementedError;
|
||||
import com.ibm.wala.util.functions.VoidFunction;
|
||||
import com.ibm.wala.util.intset.IntIterator;
|
||||
import com.ibm.wala.util.intset.IntSet;
|
||||
import com.ibm.wala.util.intset.IntSetAction;
|
||||
|
@ -510,7 +510,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
|
|||
|
||||
private class CrossProductRec {
|
||||
private final InstanceKey[][] invariants;
|
||||
private final VoidFunction<InstanceKey[]> f;
|
||||
private final Consumer<InstanceKey[]> f;
|
||||
private final SSAAbstractInvokeInstruction call;
|
||||
private final CGNode caller;
|
||||
private final int[] params;
|
||||
|
@ -518,7 +518,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
|
|||
private final InstanceKey[] keys;
|
||||
|
||||
private CrossProductRec(InstanceKey[][] invariants, SSAAbstractInvokeInstruction call, CGNode caller,
|
||||
VoidFunction<InstanceKey[]> f) {
|
||||
Consumer<InstanceKey[]> f) {
|
||||
this.invariants = invariants;
|
||||
this.f = f;
|
||||
this.call = call;
|
||||
|
@ -530,7 +530,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
|
|||
|
||||
protected void rec(final int pi, final int rhsi) {
|
||||
if (pi == params.length) {
|
||||
f.apply(keys);
|
||||
f.accept(keys);
|
||||
} else {
|
||||
final int p = params[pi];
|
||||
InstanceKey[] ik = invariants != null ? invariants[p] : null;
|
||||
|
@ -1743,9 +1743,9 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
|
|||
@Override
|
||||
public void act(final int x) {
|
||||
new CrossProductRec(constParams, call, node,
|
||||
new VoidFunction<InstanceKey[]>() {
|
||||
new Consumer<InstanceKey[]>() {
|
||||
@Override
|
||||
public void apply(InstanceKey[] v) {
|
||||
public void accept(InstanceKey[] v) {
|
||||
IClass recv = null;
|
||||
if (call.getCallSite().isDispatch()) {
|
||||
recv = v[0].getConcreteType();
|
||||
|
@ -2009,7 +2009,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
|
|||
}
|
||||
|
||||
protected void iterateCrossProduct(final CGNode caller, final SSAAbstractInvokeInstruction call, final InstanceKey[][] invariants,
|
||||
final VoidFunction<InstanceKey[]> f) {
|
||||
final Consumer<InstanceKey[]> f) {
|
||||
new CrossProductRec(invariants, call, caller, f).rec(0, 0);
|
||||
}
|
||||
|
||||
|
@ -2022,9 +2022,9 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
|
|||
// associated with the instruction
|
||||
final CallSiteReference site = instruction.getCallSite();
|
||||
final Set<CGNode> targets = HashSetFactory.make();
|
||||
VoidFunction<InstanceKey[]> f = new VoidFunction<InstanceKey[]>() {
|
||||
Consumer<InstanceKey[]> f = new Consumer<InstanceKey[]>() {
|
||||
@Override
|
||||
public void apply(InstanceKey[] v) {
|
||||
public void accept(InstanceKey[] v) {
|
||||
IClass recv = null;
|
||||
if (site.isDispatch()) {
|
||||
recv = v[0].getConcreteType();
|
||||
|
|
|
@ -11,16 +11,16 @@
|
|||
package com.ibm.wala.ipa.callgraph.propagation;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
/**
|
||||
* An {@link InstanceKey} which represents the set of all allocation sites
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.util.Collection;
|
|||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.analysis.typeInference.TypeAbstraction;
|
||||
import com.ibm.wala.analysis.typeInference.TypeInference;
|
||||
|
@ -36,7 +37,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
|
|||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.SymbolTable;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
@ -175,15 +176,14 @@ public class TypeBasedHeapModel implements HeapModel {
|
|||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Iterator<PointerKey> iteratePointerKeys() {
|
||||
initAllPKeys();
|
||||
return Predicate.filter(pKeys.values().iterator(), new Predicate() {
|
||||
return new FilterIterator<>(pKeys.values().iterator(), new Predicate() {
|
||||
@Override
|
||||
public boolean test(Object o) {
|
||||
return o instanceof PointerKey;
|
||||
}
|
||||
}).iterator();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -12,6 +12,8 @@ package com.ibm.wala.ipa.cfg;
|
|||
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.cfg.IBasicBlock;
|
||||
|
@ -21,13 +23,11 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.ssa.ISSABasicBlock;
|
||||
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.IndiscriminateFilter;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.debug.UnimplementedError;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.graph.NumberedGraph;
|
||||
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
|
||||
import com.ibm.wala.util.intset.BitVector;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
package com.ibm.wala.ipa.cfg;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
|
@ -19,7 +20,6 @@ import com.ibm.wala.ssa.IR;
|
|||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.analysis.ExplodedControlFlowGraph;
|
||||
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,11 +17,11 @@ import java.util.Iterator;
|
|||
import java.util.List;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.cfg.IBasicBlock;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
import com.ibm.wala.util.graph.AbstractNumberedGraph;
|
||||
|
|
|
@ -20,6 +20,7 @@ import java.util.Iterator;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.classLoader.ArrayClass;
|
||||
import com.ibm.wala.classLoader.ClassLoaderFactory;
|
||||
|
@ -43,7 +44,6 @@ import com.ibm.wala.util.collections.MapIterator;
|
|||
import com.ibm.wala.util.collections.MapUtil;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.debug.UnimplementedError;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.ref.CacheReference;
|
||||
import com.ibm.wala.util.ref.ReferenceCleanser;
|
||||
import com.ibm.wala.util.strings.Atom;
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.util.Collection;
|
|||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IField;
|
||||
|
@ -33,7 +34,6 @@ import com.ibm.wala.ssa.SSAInstruction;
|
|||
import com.ibm.wala.ssa.SSANewInstruction;
|
||||
import com.ibm.wala.ssa.SSAPutInstruction;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.intset.OrdinalSet;
|
||||
|
||||
/**
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.util.Collection;
|
|||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.dataflow.graph.AbstractMeetOperator;
|
||||
import com.ibm.wala.dataflow.graph.BitVectorFramework;
|
||||
|
@ -44,7 +45,6 @@ import com.ibm.wala.ssa.analysis.ExplodedControlFlowGraph;
|
|||
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.CancelRuntimeException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
|
|
|
@ -17,6 +17,7 @@ import java.util.HashMap;
|
|||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.analysis.stackMachine.AbstractIntStackMachine;
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
|
@ -52,7 +53,6 @@ import com.ibm.wala.ssa.SSAPhiInstruction;
|
|||
import com.ibm.wala.ssa.SSAPiInstruction;
|
||||
import com.ibm.wala.ssa.SSAReturnInstruction;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
package com.ibm.wala.ipa.slicer;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.dataflow.IFDS.ISupergraph;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
|
|
@ -17,6 +17,7 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.ibm.wala.cfg.AbstractCFG;
|
||||
import com.ibm.wala.cfg.BytecodeCFG;
|
||||
|
@ -36,7 +37,6 @@ import com.ibm.wala.util.collections.Iterator2Collection;
|
|||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.debug.UnimplementedError;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.graph.impl.NumberedNodeIterator;
|
||||
import com.ibm.wala.util.intset.BitVector;
|
||||
import com.ibm.wala.util.intset.IntSet;
|
||||
|
|
|
@ -4,6 +4,8 @@ import java.io.File;
|
|||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
|
@ -18,10 +20,8 @@ import com.ibm.wala.ipa.slicer.SDG;
|
|||
import com.ibm.wala.ipa.slicer.Slicer.ControlDependenceOptions;
|
||||
import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions;
|
||||
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.VoidFunction;
|
||||
import com.ibm.wala.util.io.FileUtil;
|
||||
|
||||
public class APKCallGraphDriver {
|
||||
|
@ -55,10 +55,10 @@ public class APKCallGraphDriver {
|
|||
} catch (Throwable e) {
|
||||
// no timeout specified
|
||||
}
|
||||
FileUtil.recurseFiles(new VoidFunction<File>() {
|
||||
FileUtil.recurseFiles(new Consumer<File>() {
|
||||
|
||||
@Override
|
||||
public void apply(File apk) {
|
||||
public void accept(File apk) {
|
||||
System.gc();
|
||||
System.err.println("Analyzing " + apk + "...");
|
||||
try {
|
||||
|
|
|
@ -20,6 +20,8 @@ import java.net.URI;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
|
@ -53,12 +55,10 @@ import com.ibm.wala.types.MethodReference;
|
|||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.MapIterator;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.io.TemporaryFile;
|
||||
|
||||
public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase {
|
||||
|
|
|
@ -21,6 +21,8 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
@ -35,11 +37,9 @@ import com.ibm.wala.types.ClassLoaderReference;
|
|||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.NullProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.HashMapFactory;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.VoidFunction;
|
||||
import com.ibm.wala.util.io.FileUtil;
|
||||
|
||||
public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
||||
|
@ -161,9 +161,9 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
|
|||
|
||||
public static Collection<Object[]> generateData(String droidBenchRoot, final URI[] androidLibs, final File androidJavaJar, final String filter) {
|
||||
final List<Object[]> files = new LinkedList<>();
|
||||
FileUtil.recurseFiles(new VoidFunction<File>() {
|
||||
FileUtil.recurseFiles(new Consumer<File>() {
|
||||
@Override
|
||||
public void apply(File f) {
|
||||
public void accept(File f) {
|
||||
Set<MethodReference> uncalled = uncalledFunctions.get(f.getName());
|
||||
if (uncalled == null) {
|
||||
uncalled = Collections.emptySet();
|
||||
|
|
|
@ -16,6 +16,7 @@ import static com.ibm.wala.dalvik.test.util.Util.getJavaJar;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -28,7 +29,6 @@ import com.ibm.wala.shrikeCT.InvalidClassFileException;
|
|||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.io.TemporaryFile;
|
||||
|
||||
|
|
|
@ -116,15 +116,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -46,6 +46,7 @@ import java.util.Collection;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.core.tests.util.TestConstants;
|
||||
|
@ -88,7 +89,6 @@ import com.ibm.wala.types.ClassLoaderReference;
|
|||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.NullProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.ProgressMaster;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
|
|
|
@ -13,6 +13,7 @@ package com.ibm.wala.cast.js.client;
|
|||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.Plugin;
|
||||
|
@ -57,7 +58,6 @@ import com.ibm.wala.util.NullProgressMonitor;
|
|||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.config.SetOfClasses;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
public class EclipseJavaScriptAnalysisEngine<I extends InstanceKey> extends EclipseProjectSourceAnalysisEngine<IJavaScriptProject, I> {
|
||||
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.ide.util;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.wst.jsdt.core.IJavaScriptProject;
|
||||
import org.eclipse.wst.jsdt.core.JavaScriptCore;
|
||||
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
|
||||
public class JavaScriptHeadlessUtil extends HeadlessUtil {
|
||||
|
||||
public static IJavaScriptProject getJavaScriptProjectFromWorkspace(final String projectName) {
|
||||
|
|
|
@ -17,6 +17,7 @@ import java.util.Iterator;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
@ -55,7 +56,6 @@ import com.ibm.wala.ide.util.HeadlessUtil.Parser;
|
|||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.collections.Pair;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
package com.ibm.wala.examples.drivers;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.jface.window.ApplicationWindow;
|
||||
|
@ -23,7 +24,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchy;
|
|||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.CollectionFilter;
|
||||
import com.ibm.wala.util.config.AnalysisScopeReader;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
package com.ibm.wala.ide.ui;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.eclipse.jface.action.Action;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
|
@ -23,7 +24,6 @@ import com.ibm.wala.ssa.SSAGetInstruction;
|
|||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.SSAPhiInstruction;
|
||||
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.WalaException;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
|
|
|
@ -14,6 +14,7 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
@ -24,7 +25,6 @@ import org.eclipse.core.runtime.IPath;
|
|||
import com.ibm.wala.classLoader.ModuleEntry;
|
||||
import com.ibm.wala.ide.classloader.EclipseSourceFileModule;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import com.ibm.wala.util.io.CommandLine;
|
||||
|
||||
public class HeadlessUtil {
|
||||
|
|
|
@ -86,15 +86,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -58,6 +58,7 @@ import java.util.Deque;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.scandroid.domain.CodeElement;
|
||||
import org.scandroid.domain.FieldElement;
|
||||
|
@ -90,7 +91,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchy;
|
|||
import com.ibm.wala.ssa.ISSABasicBlock;
|
||||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
import com.ibm.wala.util.graph.Graph;
|
||||
import com.ibm.wala.util.graph.GraphSlicer;
|
||||
|
|
|
@ -57,15 +57,6 @@
|
|||
</repositories>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -10,7 +10,6 @@ Export-Package: com.ibm.wala.dataflow.graph,
|
|||
com.ibm.wala.util.collections,
|
||||
com.ibm.wala.util.config,
|
||||
com.ibm.wala.util.debug,
|
||||
com.ibm.wala.util.functions,
|
||||
com.ibm.wala.util.graph,
|
||||
com.ibm.wala.util.graph.dominators,
|
||||
com.ibm.wala.util.graph.impl,
|
||||
|
|
|
@ -43,15 +43,6 @@
|
|||
</distributionManagement>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>jdk17</id>
|
||||
<activation>
|
||||
<jdk>1.7</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<javadoc.options></javadoc.options>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>jdk18</id>
|
||||
<activation>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.fixedpoint.impl;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -18,7 +19,6 @@ import com.ibm.wala.fixpoint.IFixedPointStatement;
|
|||
import com.ibm.wala.fixpoint.IFixedPointSystem;
|
||||
import com.ibm.wala.fixpoint.IVariable;
|
||||
import com.ibm.wala.fixpoint.UnaryStatement;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.EmptyIterator;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.HashSetFactory;
|
||||
|
@ -95,7 +95,7 @@ public class DefaultFixedPointSystem<T extends IVariable<T>> implements IFixedPo
|
|||
@Override
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public Iterator<AbstractStatement> getStatements() {
|
||||
return new FilterIterator(graph.iterator(), new Predicate() {
|
||||
return new FilterIterator(graph.iterator(), new Predicate<Object>() {
|
||||
@Override public boolean test(Object x) {
|
||||
return x instanceof AbstractStatement;
|
||||
}
|
||||
|
|
|
@ -1,138 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html.
|
||||
*
|
||||
* This file is a derivative of code released by the University of
|
||||
* California under the terms listed below.
|
||||
*
|
||||
* Refinement Analysis Tools is Copyright (c) 2007 The Regents of the
|
||||
* University of California (Regents). Provided that this notice and
|
||||
* the following two paragraphs are included in any distribution of
|
||||
* Refinement Analysis Tools or its derivative work, Regents agrees
|
||||
* not to assert any of Regents' copyright rights in Refinement
|
||||
* Analysis Tools against recipient for recipient's reproduction,
|
||||
* preparation of derivative works, public display, public
|
||||
* performance, distribution or sublicensing of Refinement Analysis
|
||||
* Tools and derivative works, in source code and object code form.
|
||||
* This agreement not to assert does not confer, by implication,
|
||||
* estoppel, or otherwise any license or rights in any intellectual
|
||||
* property of Regents, including, but not limited to, any patents
|
||||
* of Regents or Regents' employees.
|
||||
*
|
||||
* IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT,
|
||||
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
||||
* INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE
|
||||
* AND ITS DOCUMENTATION, EVEN IF REGENTS HAS BEEN ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND FURTHER DISCLAIMS ANY STATUTORY
|
||||
* WARRANTY OF NON-INFRINGEMENT. THE SOFTWARE AND ACCOMPANYING
|
||||
* DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
|
||||
* IS". REGENTS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
|
||||
* UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*/
|
||||
package com.ibm.wala.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Interface for defining an arbitrary predicate on {@link Object}s.
|
||||
*/
|
||||
public abstract class Predicate<T> {
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static final Predicate FALSE = new Predicate() {
|
||||
@Override
|
||||
public boolean test(Object o) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static final Predicate TRUE = FALSE.not();
|
||||
|
||||
public static <T> Predicate<T> truePred() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public static <T> Predicate<T> falsePred() {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/** Test whether an {@link Object} satisfies this {@link Predicate} */
|
||||
public abstract boolean test(T t);
|
||||
|
||||
/** Return a predicate that is a negation of this predicate */
|
||||
public Predicate<T> not() {
|
||||
final Predicate<T> originalPredicate = this;
|
||||
return new Predicate<T>() {
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return !originalPredicate.test(t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a predicate that is a conjunction of this predicate and another predicate
|
||||
*/
|
||||
public Predicate<T> and(final Predicate<T> conjunct) {
|
||||
final Predicate<T> originalPredicate = this;
|
||||
return new Predicate<T>() {
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return originalPredicate.test(t) && conjunct.test(t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a predicate that is a conjunction of this predicate and another predicate
|
||||
*/
|
||||
public Predicate<T> or(final Predicate<T> disjunct) {
|
||||
final Predicate<T> originalPredicate = this;
|
||||
return new Predicate<T>() {
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return originalPredicate.test(t) || disjunct.test(t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the predicate "is an element of c"
|
||||
*/
|
||||
public static <T> Predicate<T> isElementOf(final Collection<T> c) {
|
||||
return new Predicate<T>() {
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return c.contains(t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter a collection: generate a new list from an existing collection, consisting of the elements satisfying some predicate.
|
||||
*
|
||||
* @throws IllegalArgumentException if src == null
|
||||
*/
|
||||
public static <T> List<T> filter(Iterator<T> src, Predicate<T> pred) throws IllegalArgumentException {
|
||||
if (src == null) {
|
||||
throw new IllegalArgumentException("src == null");
|
||||
}
|
||||
ArrayList<T> result = new ArrayList<>();
|
||||
for (; src.hasNext();) {
|
||||
T curElem = src.next();
|
||||
if (pred.test(curElem))
|
||||
result.add(curElem);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -12,13 +12,11 @@
|
|||
package com.ibm.wala.util.collections;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
/**
|
||||
* A filter defined by set membership
|
||||
*/
|
||||
public class CollectionFilter<T> extends Predicate<T> {
|
||||
public class CollectionFilter<T> implements Predicate<T> {
|
||||
|
||||
private final Collection<? extends T> S;
|
||||
|
||||
|
|
|
@ -12,8 +12,7 @@ package com.ibm.wala.util.collections;
|
|||
|
||||
import java.util.Iterator;
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* A <code>FilterIterator</code> filters an <code>Iterator</code> to generate a new one.
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2011 IBM Corporation.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package com.ibm.wala.util.collections;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
|
||||
/**
|
||||
* A migration aid, to move from Filter to Predicate
|
||||
*/
|
||||
@Deprecated
|
||||
public class FilterPredicate<T> extends Predicate<T> {
|
||||
|
||||
public static <T> FilterPredicate<T> toPredicate(Predicate<T> f) {
|
||||
return new FilterPredicate<>(f);
|
||||
}
|
||||
|
||||
private final Predicate<T> f;
|
||||
|
||||
private FilterPredicate(Predicate<T> f) {
|
||||
this.f = f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(T t) {
|
||||
return f.test(t);
|
||||
}
|
||||
|
||||
}
|
|
@ -10,12 +10,12 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.util.collections;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* intersection of two filters
|
||||
*/
|
||||
public class Filtersection<T> extends Predicate<T> {
|
||||
public class Filtersection<T> implements Predicate<T> {
|
||||
|
||||
final private Predicate<T> a;
|
||||
final private Predicate<T> b;
|
||||
|
|
|
@ -10,12 +10,13 @@
|
|||
*******************************************************************************/
|
||||
|
||||
package com.ibm.wala.util.collections;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* A filter that accepts everything.
|
||||
*/
|
||||
public class IndiscriminateFilter<T> extends Predicate<T> {
|
||||
public class IndiscriminateFilter<T> implements Predicate<T> {
|
||||
|
||||
public static <T> IndiscriminateFilter<T> singleton() {
|
||||
return new IndiscriminateFilter<>();
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
package com.ibm.wala.util.collections;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.IntFunction;
|
||||
|
||||
import com.ibm.wala.util.functions.IntFunction;
|
||||
import com.ibm.wala.util.intset.IntIterator;
|
||||
|
||||
/**
|
||||
|
|
|
@ -11,9 +11,8 @@
|
|||
package com.ibm.wala.util.collections;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
/**
|
||||
* utilities dealing with Iterators
|
||||
*/
|
||||
|
|
|
@ -13,8 +13,7 @@ package com.ibm.wala.util.collections;
|
|||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* An <code>MapIterator</code> maps an <code>Iterator</code> contents to produce a new Iterator
|
||||
|
|
|
@ -10,12 +10,12 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.util.collections;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* A filter "A or B"
|
||||
*/
|
||||
public class OrFilter<T> extends Predicate<T> {
|
||||
public class OrFilter<T> implements Predicate<T> {
|
||||
|
||||
public static <T> OrFilter<T> createOrFilter(Predicate<T> a, Predicate<T> b) {
|
||||
if (a == null || b == null) {
|
||||
|
|
|
@ -51,9 +51,8 @@ import java.util.HashSet;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* Miscellaneous utility functions.
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2002 - 2006 IBM Corporation.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package com.ibm.wala.util.functions;
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
public interface Function<X,Y> {
|
||||
|
||||
Y apply(X object);
|
||||
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2002 - 2006 IBM Corporation.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package com.ibm.wala.util.functions;
|
||||
|
||||
/**
|
||||
*/
|
||||
public interface IntFunction<T> {
|
||||
|
||||
T apply(int i);
|
||||
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2013 IBM Corporation.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package com.ibm.wala.util.functions;
|
||||
|
||||
public interface VoidFunction<T> {
|
||||
|
||||
void apply(T v);
|
||||
|
||||
}
|
|
@ -12,8 +12,7 @@ package com.ibm.wala.util.graph;
|
|||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import com.ibm.wala.util.functions.Function;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class GXL {
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
package com.ibm.wala.util.graph;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.ibm.wala.dataflow.graph.AbstractMeetOperator;
|
||||
import com.ibm.wala.dataflow.graph.BitVectorFramework;
|
||||
|
@ -24,7 +25,6 @@ import com.ibm.wala.fixpoint.BitVectorVariable;
|
|||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
|
||||
import com.ibm.wala.util.Predicate;
|
||||
import com.ibm.wala.util.collections.FilterIterator;
|
||||
import com.ibm.wala.util.collections.Iterator2Collection;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue