diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/analysis/typeInference/AstTypeInference.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/analysis/typeInference/AstTypeInference.java index ddac2df55..9be6dd0fe 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/analysis/typeInference/AstTypeInference.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/analysis/typeInference/AstTypeInference.java @@ -10,8 +10,19 @@ *****************************************************************************/ package com.ibm.wala.cast.analysis.typeInference; -import com.ibm.wala.analysis.typeInference.*; -import com.ibm.wala.cast.ir.ssa.*; +import com.ibm.wala.analysis.typeInference.ConeType; +import com.ibm.wala.analysis.typeInference.TypeAbstraction; +import com.ibm.wala.analysis.typeInference.TypeInference; +import com.ibm.wala.cast.ir.ssa.AstAssertInstruction; +import com.ibm.wala.cast.ir.ssa.AstGlobalRead; +import com.ibm.wala.cast.ir.ssa.AstGlobalWrite; +import com.ibm.wala.cast.ir.ssa.AstInstructionVisitor; +import com.ibm.wala.cast.ir.ssa.AstIsDefinedInstruction; +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.ssa.NonExceptingThrowInstruction; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.IR; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCFAPointerKeys.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCFAPointerKeys.java index 236e88959..902e35a9f 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCFAPointerKeys.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCFAPointerKeys.java @@ -10,7 +10,7 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.ipa.callgraph.propagation.cfa.*; +import com.ibm.wala.ipa.callgraph.propagation.cfa.CFAPointerKeys; public class AstCFAPointerKeys extends DelegatingAstPointerKeys { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java index 8a6046023..02785f2ea 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java @@ -22,7 +22,6 @@ import com.ibm.wala.ipa.callgraph.Context; import com.ibm.wala.ipa.callgraph.propagation.cfa.ContextInsensitiveSSAInterpreter; import com.ibm.wala.ssa.IR; import com.ibm.wala.util.collections.EmptyIterator; -import com.ibm.wala.util.warnings.WarningSet; public class AstContextInsensitiveSSAContextInterpreter extends ContextInsensitiveSSAInterpreter @@ -37,7 +36,7 @@ public class AstContextInsensitiveSSAContextInterpreter } public Iterator iterateNewSites(CGNode N) { - IR ir = getIR(N, new WarningSet()); + IR ir = getIR(N); if (ir == null) { return EmptyIterator.instance(); } else { @@ -46,7 +45,7 @@ public class AstContextInsensitiveSSAContextInterpreter } public Iterator iterateCallSites(CGNode N) { - IR ir = getIR(N, new WarningSet()); + IR ir = getIR(N); if (ir == null) { return EmptyIterator.instance(); } else { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstGlobalPointerKey.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstGlobalPointerKey.java index 371f79687..51fbdff25 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstGlobalPointerKey.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstGlobalPointerKey.java @@ -10,7 +10,7 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.ipa.callgraph.propagation.*; +import com.ibm.wala.ipa.callgraph.propagation.AbstractPointerKey; public class AstGlobalPointerKey extends AbstractPointerKey { private final String globalName; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstPointerKeyFactory.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstPointerKeyFactory.java index c9b3c536a..3cec4fefb 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstPointerKeyFactory.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstPointerKeyFactory.java @@ -10,9 +10,11 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.ipa.callgraph.propagation.*; +import java.util.Iterator; -import java.util.*; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory; public interface AstPointerKeyFactory extends PointerKeyFactory { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java index f9a613d29..90e880137 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java @@ -35,7 +35,8 @@ import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access; import com.ibm.wala.cast.ir.translator.AstTranslator; import com.ibm.wala.cast.loader.AstMethod; import com.ibm.wala.cast.loader.AstMethod.LexicalInformation; -import com.ibm.wala.classLoader.*; +import com.ibm.wala.classLoader.CallSiteReference; +import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.fixedpoint.impl.AbstractOperator; import com.ibm.wala.fixedpoint.impl.UnaryOperator; import com.ibm.wala.fixpoint.IVariable; @@ -45,8 +46,23 @@ import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.ReflectionSpecification; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; -import com.ibm.wala.ipa.callgraph.propagation.*; -import com.ibm.wala.ipa.callgraph.propagation.cfa.*; +import com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory; +import com.ibm.wala.ipa.callgraph.propagation.LocalPointerKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysisImpl; +import com.ibm.wala.ipa.callgraph.propagation.PointerFlowGraph; +import com.ibm.wala.ipa.callgraph.propagation.PointerFlowGraphFactory; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory; +import com.ibm.wala.ipa.callgraph.propagation.PointsToMap; +import com.ibm.wala.ipa.callgraph.propagation.PointsToSetVariable; +import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder; +import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; +import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder; +import com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultSSAInterpreter; +import com.ibm.wala.ipa.callgraph.propagation.cfa.DelegatingSSAContextInterpreter; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.DefUse; import com.ibm.wala.ssa.IR; @@ -58,13 +74,12 @@ import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.debug.Trace; -import com.ibm.wala.util.graph.*; +import com.ibm.wala.util.graph.Graph; import com.ibm.wala.util.graph.traverse.NumberedDFSDiscoverTimeIterator; import com.ibm.wala.util.intset.IntSetAction; import com.ibm.wala.util.intset.IntSetUtil; import com.ibm.wala.util.intset.MutableIntSet; import com.ibm.wala.util.intset.MutableMapping; -import com.ibm.wala.util.warnings.WarningSet; public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCallGraphBuilder { @@ -86,17 +101,17 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa // /////////////////////////////////////////////////////////////////////////// - protected AstSSAPropagationCallGraphBuilder(IClassHierarchy cha, WarningSet warnings, AnalysisOptions options, + protected AstSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, PointerKeyFactory pointerKeyFactory) { - super(cha, warnings, options, pointerKeyFactory); + super(cha, options, pointerKeyFactory); } public SSAContextInterpreter makeDefaultContextInterpreters(SSAContextInterpreter appContextInterpreter, AnalysisOptions options, - IClassHierarchy cha, ReflectionSpecification reflect, WarningSet warnings) { - SSAContextInterpreter c = new DefaultSSAInterpreter(options, warnings); + IClassHierarchy cha, ReflectionSpecification reflect) { + SSAContextInterpreter c = new DefaultSSAInterpreter(options); c = new DelegatingSSAContextInterpreter(new AstContextInsensitiveSSAContextInterpreter(options), c); - c = new DelegatingSSAContextInterpreter(new FactoryBypassInterpreter(options, reflect, warnings), c); + c = new DelegatingSSAContextInterpreter(new FactoryBypassInterpreter(options, reflect), c); if (appContextInterpreter == null) return c; @@ -369,7 +384,7 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa if (lexicalKey instanceof LocalPointerKey) { CGNode lnode = ((LocalPointerKey) lexicalKey).getNode(); int lvn = ((LocalPointerKey) lexicalKey).getValueNumber(); - IR lir = getBuilder().getCFAContextInterpreter().getIR(lnode, getWarnings()); + IR lir = getBuilder().getCFAContextInterpreter().getIR(lnode); SymbolTable lsymtab = lir.getSymbolTable(); DefUse ldu = getOptions().getSSACache().findOrCreateDU(lir, lnode.getContext()); if (contentsAreInvariant(lsymtab, ldu, lvn)) { @@ -655,7 +670,7 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa final Set result = new HashSet(); PointerKey F = getBuilder().getPointerKeyForLocal(opNode, 1); - IR ir = getBuilder().getCFAContextInterpreter().getIR(opNode, getWarnings()); + IR ir = getBuilder().getCFAContextInterpreter().getIR(opNode); SymbolTable symtab = ir.getSymbolTable(); DefUse du = getOptions().getSSACache().findOrCreateDU(ir, opNode.getContext()); if (contentsAreInvariant(symtab, du, 1)) { @@ -705,8 +720,8 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa if (name.equals(names[i].fst) && definer.equals(names[i].snd)) { int vn = LI.getExitExposedUses()[i]; if (vn > 0) { - IR ir = getBuilder().getCFAContextInterpreter().getIR(definingNode, getWarnings()); - DefUse du = getBuilder().getCFAContextInterpreter().getDU(definingNode, getWarnings()); + IR ir = getBuilder().getCFAContextInterpreter().getIR(definingNode); + DefUse du = getBuilder().getCFAContextInterpreter().getDU(definingNode); SymbolTable st = ir.getSymbolTable(); PointerKey rhs = getBuilder().getPointerKeyForLocal(definingNode, vn); @@ -777,7 +792,7 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa } else if (M instanceof AstMethod) { - AstIR ir = (AstIR) getBuilder().getCFAContextInterpreter().getIR(n, getWarnings()); + AstIR ir = (AstIR) getBuilder().getCFAContextInterpreter().getIR(n); int pc = callSite.getProgramCounter(); LexicalInformation L = ((AstMethod) M).lexicalInfo; @@ -838,7 +853,7 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa if (L == null) return null; - AstIR ir = (AstIR) getBuilder().getCFAContextInterpreter().getIR(n, getWarnings()); + AstIR ir = (AstIR) getBuilder().getCFAContextInterpreter().getIR(n); int pc = callSite.getProgramCounter(); AbstractLexicalInvoke I = (AbstractLexicalInvoke) ir.getInstructions()[pc]; @@ -908,9 +923,9 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa } private void newFieldOperation(CGNode opNode, final int objVn, final int fieldsVn, final boolean isLoadOperation, final ReflectedFieldAction action) { - IR ir = getBuilder().getCFAContextInterpreter().getIR(opNode, getWarnings()); + IR ir = getBuilder().getCFAContextInterpreter().getIR(opNode); SymbolTable symtab = ir.getSymbolTable(); - DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode, getWarnings()); + DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey objKey = getBuilder().getPointerKeyForLocal(opNode, objVn); final PointerKey fieldKey = getBuilder().getPointerKeyForLocal(opNode, fieldsVn); @@ -1139,9 +1154,9 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa } protected void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, int rhsVn) { - IR ir = getBuilder().getCFAContextInterpreter().getIR(opNode, getWarnings()); + IR ir = getBuilder().getCFAContextInterpreter().getIR(opNode); SymbolTable symtab = ir.getSymbolTable(); - DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode, getWarnings()); + DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey rhsKey = getBuilder().getPointerKeyForLocal(opNode, rhsVn); if (contentsAreInvariant(symtab, du, rhsVn)) { system.recordImplicitPointsToSet(rhsKey); @@ -1174,7 +1189,7 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa } catch (RuntimeException e) { System.err.println("error: " + e); - System.err.println(getBuilder().getCFAContextInterpreter().getIR(opNode, getWarnings())); + System.err.println(getBuilder().getCFAContextInterpreter().getIR(opNode)); throw e; } } diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java index c5590c78e..9cc677f10 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java @@ -34,7 +34,6 @@ import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.Atom; import com.ibm.wala.util.collections.HashMapFactory; import com.ibm.wala.util.collections.HashSetFactory; -import com.ibm.wala.util.warnings.WarningSet; /** * A CallGraph implementation adapted to work for graphs that contain code @@ -118,10 +117,10 @@ public class CrossLanguageCallGraph extends AstCallGraph { return root.addCheckcast(type, rv); } - public SSANewInstruction addAllocation(TypeReference type, WarningSet warnings) { + public SSANewInstruction addAllocation(TypeReference type) { Atom language = type.getClassLoader().getLanguage(); AbstractRootMethod root = getLanguageRoot(language); - return root.addAllocation(type, warnings); + return root.addAllocation(type); } public SSAInvokeInstruction addInvocation(int[] params, CallSiteReference site) { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageContextSelector.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageContextSelector.java index 3183ce16f..acc2ff20f 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageContextSelector.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageContextSelector.java @@ -10,13 +10,15 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.classLoader.*; -import com.ibm.wala.ipa.callgraph.*; -import com.ibm.wala.ipa.callgraph.propagation.*; -import com.ibm.wala.util.Atom; -import com.ibm.wala.util.warnings.*; +import java.util.Map; -import java.util.*; +import com.ibm.wala.classLoader.CallSiteReference; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.ContextSelector; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.util.Atom; /** * A ContextSelector implementation adapted to work for analysi across @@ -66,11 +68,6 @@ public class CrossLanguageContextSelector implements ContextSelector { return getSelector(site).mayUnderstand(caller, site, targetMethod, instance); } - public void setWarnings(WarningSet newWarnings) { - for(Iterator ss = languageSelectors.values().iterator(); ss.hasNext(); ) { - ((ContextSelector)ss.next()).setWarnings(newWarnings); - } - } public boolean allSitesDispatchIdentically(CGNode node, CallSiteReference site) { return getSelector(site).allSitesDispatchIdentically(node, site); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java index 1a3557cce..0abbd39a5 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java @@ -10,12 +10,15 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.classLoader.*; -import com.ibm.wala.ipa.callgraph.*; -import com.ibm.wala.types.*; -import com.ibm.wala.util.Atom; +import java.util.Map; -import java.util.*; +import com.ibm.wala.classLoader.CallSiteReference; +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.MethodTargetSelector; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.util.Atom; /** * A MethodTargetSelector implementation that supports multiple languages. diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageSSAPropagationCallGraphBuilder.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageSSAPropagationCallGraphBuilder.java index 7c42aa6e1..cde8f00e7 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageSSAPropagationCallGraphBuilder.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageSSAPropagationCallGraphBuilder.java @@ -26,61 +26,43 @@ import com.ibm.wala.ssa.SSACFG.BasicBlock; import com.ibm.wala.util.Atom; import com.ibm.wala.util.graph.Graph; import com.ibm.wala.util.intset.MutableMapping; -import com.ibm.wala.util.warnings.WarningSet; -public abstract class CrossLanguageSSAPropagationCallGraphBuilder - extends AstSSAPropagationCallGraphBuilder -{ +public abstract class CrossLanguageSSAPropagationCallGraphBuilder extends AstSSAPropagationCallGraphBuilder { public interface PointerVisitorFactory { - PointerFlowGraph.InstructionVisitor make (PointerAnalysis pa, - CallGraph cg, - Graph delegate, - CGNode node, - IR ir, - BasicBlock bb); + PointerFlowGraph.InstructionVisitor make(PointerAnalysis pa, CallGraph cg, Graph delegate, CGNode node, IR ir, + BasicBlock bb); } - private final TargetLanguageSelector - visitors; + private final TargetLanguageSelector visitors; - private final TargetLanguageSelector - interesting; + private final TargetLanguageSelector interesting; - protected abstract TargetLanguageSelector - makeMainVisitorSelector(); + protected abstract TargetLanguageSelector makeMainVisitorSelector(); - protected abstract TargetLanguageSelector - makeInterestingVisitorSelector(); + protected abstract TargetLanguageSelector makeInterestingVisitorSelector(); - protected abstract TargetLanguageSelector - makePointerVisitorSelector(CrossLanguagePointerFlowGraph analysis); + protected abstract TargetLanguageSelector makePointerVisitorSelector( + CrossLanguagePointerFlowGraph analysis); - protected abstract TargetLanguageSelector - makeImplicitVisitorSelector(CrossLanguagePointerAnalysisImpl analysis); + protected abstract TargetLanguageSelector makeImplicitVisitorSelector( + CrossLanguagePointerAnalysisImpl analysis); - protected abstract TargetLanguageSelector - makeRootNodeSelector(); + protected abstract TargetLanguageSelector makeRootNodeSelector(); - protected CrossLanguageSSAPropagationCallGraphBuilder( - IClassHierarchy cha, - WarningSet warnings, - AnalysisOptions options, - PointerKeyFactory pointerKeyFactory) - { - super(cha, warnings, options, pointerKeyFactory); + protected CrossLanguageSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, + PointerKeyFactory pointerKeyFactory) { + super(cha, options, pointerKeyFactory); visitors = makeMainVisitorSelector(); interesting = makeInterestingVisitorSelector(); } protected ExplicitCallGraph createEmptyCallGraph(IClassHierarchy cha, AnalysisOptions options) { - return new CrossLanguageCallGraph(makeRootNodeSelector(), - cha, - options); + return new CrossLanguageCallGraph(makeRootNodeSelector(), cha, options); } protected static Atom getLanguage(CGNode node) { - return node.getMethod().getReference().getDeclaringClass().getClassLoader().getLanguage(); + return node.getMethod().getReference().getDeclaringClass().getClassLoader().getLanguage(); } protected InterestingVisitor makeInterestingVisitor(CGNode node, int vn) { @@ -91,17 +73,10 @@ public abstract class CrossLanguageSSAPropagationCallGraphBuilder return visitors.get(getLanguage(node), node); } - protected static class CrossLanguagePointerFlowGraph - extends AstPointerFlowGraph - { - private final TargetLanguageSelector - pointerVisitors; + protected static class CrossLanguagePointerFlowGraph extends AstPointerFlowGraph { + private final TargetLanguageSelector pointerVisitors; - protected CrossLanguagePointerFlowGraph( - CrossLanguageSSAPropagationCallGraphBuilder builder, - PointerAnalysis pa, - CallGraph cg) - { + protected CrossLanguagePointerFlowGraph(CrossLanguageSSAPropagationCallGraphBuilder builder, PointerAnalysis pa, CallGraph cg) { super(pa, cg); this.pointerVisitors = builder.makePointerVisitorSelector(this); } @@ -114,55 +89,28 @@ public abstract class CrossLanguageSSAPropagationCallGraphBuilder public PointerFlowGraphFactory getPointerFlowGraphFactory() { return new PointerFlowGraphFactory() { public PointerFlowGraph make(PointerAnalysis pa, CallGraph cg) { - return new CrossLanguagePointerFlowGraph( - CrossLanguageSSAPropagationCallGraphBuilder.this, - pa, - cg); + return new CrossLanguagePointerFlowGraph(CrossLanguageSSAPropagationCallGraphBuilder.this, pa, cg); } }; } protected PropagationSystem makeSystem(AnalysisOptions options) { - return new PropagationSystem(callGraph, - pointerKeyFactory, - instanceKeyFactory, - options.getSupportRefinement(), - getWarnings()) { - public PointerAnalysis - makePointerAnalysis(PropagationCallGraphBuilder builder) - { - assert builder == CrossLanguageSSAPropagationCallGraphBuilder.this; - return new CrossLanguagePointerAnalysisImpl( - CrossLanguageSSAPropagationCallGraphBuilder.this, - cg, - pointsToMap, - instanceKeys, - pointerKeyFactory, - instanceKeyFactory); + return new PropagationSystem(callGraph, pointerKeyFactory, instanceKeyFactory, options.getSupportRefinement()) { + public PointerAnalysis makePointerAnalysis(PropagationCallGraphBuilder builder) { + assert builder == CrossLanguageSSAPropagationCallGraphBuilder.this; + return new CrossLanguagePointerAnalysisImpl(CrossLanguageSSAPropagationCallGraphBuilder.this, cg, pointsToMap, + instanceKeys, pointerKeyFactory, instanceKeyFactory); } }; } - protected static class CrossLanguagePointerAnalysisImpl - extends AstPointerAnalysisImpl - { - private final TargetLanguageSelector - implicitVisitors; + protected static class CrossLanguagePointerAnalysisImpl extends AstPointerAnalysisImpl { + private final TargetLanguageSelector implicitVisitors; - protected CrossLanguagePointerAnalysisImpl( - CrossLanguageSSAPropagationCallGraphBuilder builder, - CallGraph cg, - PointsToMap pointsToMap, - MutableMapping instanceKeys, - PointerKeyFactory pointerKeys, - InstanceKeyFactory iKeyFactory) - { - super(builder, - cg, - pointsToMap, - instanceKeys, - pointerKeys, - iKeyFactory); + protected CrossLanguagePointerAnalysisImpl(CrossLanguageSSAPropagationCallGraphBuilder builder, CallGraph cg, + PointsToMap pointsToMap, MutableMapping instanceKeys, PointerKeyFactory pointerKeys, + InstanceKeyFactory iKeyFactory) { + super(builder, cg, pointsToMap, instanceKeys, pointerKeys, iKeyFactory); this.implicitVisitors = builder.makeImplicitVisitorSelector(this); } @@ -172,13 +120,9 @@ public abstract class CrossLanguageSSAPropagationCallGraphBuilder } protected void customInit() { - for(Iterator roots = - ((CrossLanguageCallGraph)callGraph).getLanguageRoots(); - roots.hasNext(); ) - { - markDiscovered( (CGNode) roots.next() ); + for (Iterator roots = ((CrossLanguageCallGraph) callGraph).getLanguageRoots(); roots.hasNext();) { + markDiscovered((CGNode) roots.next()); } } } - diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/DelegatingAstPointerKeys.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/DelegatingAstPointerKeys.java index ee9cba456..e87cf95ad 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/DelegatingAstPointerKeys.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/DelegatingAstPointerKeys.java @@ -10,13 +10,24 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.classLoader.*; -import com.ibm.wala.ipa.callgraph.*; -import com.ibm.wala.ipa.callgraph.propagation.*; -import com.ibm.wala.util.*; -import com.ibm.wala.util.collections.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; -import java.util.*; +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey; +import com.ibm.wala.ipa.callgraph.propagation.ConstantKey; +import com.ibm.wala.ipa.callgraph.propagation.FilteredPointerKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory; +import com.ibm.wala.util.Atom; +import com.ibm.wala.util.collections.NonNullSingletonIterator; public class DelegatingAstPointerKeys implements AstPointerKeyFactory { private final PointerKeyFactory base; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/MiscellaneousHacksContextSelector.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/MiscellaneousHacksContextSelector.java index f2807048f..f579824e8 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/MiscellaneousHacksContextSelector.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/MiscellaneousHacksContextSelector.java @@ -22,103 +22,82 @@ import com.ibm.wala.ipa.callgraph.Context; import com.ibm.wala.ipa.callgraph.ContextSelector; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.cha.IClassHierarchy; -import com.ibm.wala.types.*; +import com.ibm.wala.types.ClassLoaderReference; +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.Atom; -import com.ibm.wala.util.debug.*; -import com.ibm.wala.util.warnings.WarningSet; +import com.ibm.wala.util.debug.Assertions; +import com.ibm.wala.util.debug.Trace; -public class MiscellaneousHacksContextSelector implements ContextSelector -{ +public class MiscellaneousHacksContextSelector implements ContextSelector { private final Set methodsToSpecialize; private final ContextSelector specialPolicy; + private final ContextSelector basePolicy; - public MiscellaneousHacksContextSelector(ContextSelector special, - ContextSelector base, - IClassHierarchy cha, - String[][] descriptors) - { + public MiscellaneousHacksContextSelector(ContextSelector special, ContextSelector base, IClassHierarchy cha, + String[][] descriptors) { basePolicy = base; specialPolicy = special; methodsToSpecialize = new HashSet(); - for(int i = 0; i < descriptors.length; i++) { + for (int i = 0; i < descriptors.length; i++) { String[] descr = descriptors[i]; switch (descr.length) { // loader name, loader language, classname, method name, method descr case 5: { - MethodReference ref = - MethodReference.findOrCreate( - TypeReference.findOrCreate( - new ClassLoaderReference( - Atom.findOrCreateUnicodeAtom( descr[0] ), - Atom.findOrCreateUnicodeAtom( descr[1] )), - TypeName.string2TypeName( descr[2] ) ), - Atom.findOrCreateUnicodeAtom( descr[3] ), - Descriptor.findOrCreateUTF8( descr[4] )); + MethodReference ref = MethodReference.findOrCreate(TypeReference.findOrCreate(new ClassLoaderReference(Atom + .findOrCreateUnicodeAtom(descr[0]), Atom.findOrCreateUnicodeAtom(descr[1])), TypeName.string2TypeName(descr[2])), Atom + .findOrCreateUnicodeAtom(descr[3]), Descriptor.findOrCreateUTF8(descr[4])); - if (cha.resolveMethod( ref ) != null) { - methodsToSpecialize.add( cha.resolveMethod( ref ).getReference() ); - } else { - methodsToSpecialize.add( ref ); - } - break; + if (cha.resolveMethod(ref) != null) { + methodsToSpecialize.add(cha.resolveMethod(ref).getReference()); + } else { + methodsToSpecialize.add(ref); + } + break; } - // classname, method name, method descr + // classname, method name, method descr case 3: { - MethodReference ref = - MethodReference.findOrCreate( - TypeReference.findOrCreate( - new ClassLoaderReference( - Atom.findOrCreateUnicodeAtom("Application"), - ClassLoaderReference.Java), - TypeName.string2TypeName( descr[0] ) ), - Atom.findOrCreateUnicodeAtom( descr[1] ), - Descriptor.findOrCreateUTF8( descr[2] )); + MethodReference ref = MethodReference.findOrCreate(TypeReference.findOrCreate(new ClassLoaderReference(Atom + .findOrCreateUnicodeAtom("Application"), ClassLoaderReference.Java), TypeName.string2TypeName(descr[0])), Atom + .findOrCreateUnicodeAtom(descr[1]), Descriptor.findOrCreateUTF8(descr[2])); - methodsToSpecialize.add( cha.resolveMethod( ref ).getReference() ); - break; + methodsToSpecialize.add(cha.resolveMethod(ref).getReference()); + break; } - // loader name, classname, meaning all methods of that class + // loader name, classname, meaning all methods of that class case 2: { - IClass klass = - cha.lookupClass( - TypeReference.findOrCreate( - new ClassLoaderReference( - Atom.findOrCreateUnicodeAtom( descr[0] ), - ClassLoaderReference.Java), - TypeName.string2TypeName( descr[1] ) ) ); + IClass klass = cha.lookupClass(TypeReference.findOrCreate(new ClassLoaderReference(Atom.findOrCreateUnicodeAtom(descr[0]), + ClassLoaderReference.Java), TypeName.string2TypeName(descr[1]))); - for(Iterator M = klass.getDeclaredMethods().iterator(); M.hasNext(); ) { - methodsToSpecialize.add( ((IMethod)M.next()).getReference() ); - } + for (Iterator M = klass.getDeclaredMethods().iterator(); M.hasNext();) { + methodsToSpecialize.add(((IMethod) M.next()).getReference()); + } - break; + break; } - // classname, meaning all methods of that class + // classname, meaning all methods of that class case 1: { - IClass klass = - cha.lookupClass( - TypeReference.findOrCreate( - new ClassLoaderReference( - Atom.findOrCreateUnicodeAtom("Application"), - ClassLoaderReference.Java), - TypeName.string2TypeName( descr[0] ) ) ); + IClass klass = cha.lookupClass(TypeReference.findOrCreate(new ClassLoaderReference(Atom + .findOrCreateUnicodeAtom("Application"), ClassLoaderReference.Java), TypeName.string2TypeName(descr[0]))); - for(Iterator M = klass.getDeclaredMethods().iterator(); M.hasNext(); ) { - methodsToSpecialize.add( ((IMethod)M.next()).getReference() ); - } + for (Iterator M = klass.getDeclaredMethods().iterator(); M.hasNext();) { + methodsToSpecialize.add(((IMethod) M.next()).getReference()); + } - break; + break; } - default: - Assertions.UNREACHABLE(); + default: + Assertions.UNREACHABLE(); } } @@ -126,21 +105,15 @@ public class MiscellaneousHacksContextSelector implements ContextSelector } public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey receiver) { - if (methodsToSpecialize.contains( site.getDeclaredTarget() ) - || - methodsToSpecialize.contains( callee.getReference() ) ) - { + if (methodsToSpecialize.contains(site.getDeclaredTarget()) || methodsToSpecialize.contains(callee.getReference())) { return specialPolicy.getCalleeTarget(caller, site, callee, receiver); } else { return basePolicy.getCalleeTarget(caller, site, callee, receiver); } } - /* (non-Javadoc) - * @see com.ibm.wala.ipa.callgraph.ContextSelector#contextIsIrrelevant(com.ibm.wala.ipa.callgraph.CGNode, com.ibm.wala.classLoader.CallSiteReference) - */ public boolean contextIsIrrelevant(CGNode node, CallSiteReference site) { - return basePolicy.contextIsIrrelevant(node,site); + return basePolicy.contextIsIrrelevant(node, site); } public int getBoundOnNumberOfTargets(CGNode caller, CallSiteReference reference, IMethod targetMethod) { @@ -151,10 +124,6 @@ public class MiscellaneousHacksContextSelector implements ContextSelector return true; } - public void setWarnings(WarningSet newWarnings) { - // no-op, not bound to warnings - } - public boolean allSitesDispatchIdentically(CGNode node, CallSiteReference site) { return false; } diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java index edf0c1b1f..0676dba1f 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java @@ -19,12 +19,11 @@ import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.Entrypoint; -import com.ibm.wala.ipa.callgraph.impl.*; +import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.debug.Assertions; -import com.ibm.wala.util.warnings.WarningSet; public abstract class ScriptEntryPoints implements Iterable { @@ -46,17 +45,17 @@ public abstract class ScriptEntryPoints implements Iterable { return 1; } - public SSAAbstractInvokeInstruction addCall(AbstractRootMethod m, WarningSet warnings) { + public SSAAbstractInvokeInstruction addCall(AbstractRootMethod m){ CallSiteReference site = makeSite(0); if (site == null) { return null; } - int functionVn = makeArgument(m, 0, warnings); + int functionVn = makeArgument(m, 0); int paramVns[] = new int[getNumberOfParameters() - 1]; for (int j = 0; j < paramVns.length; j++) { - paramVns[j] = makeArgument(m, j + 1, warnings); + paramVns[j] = makeArgument(m, j + 1); } return ((ScriptFakeRoot) m).addDirectCall(functionVn, paramVns, site); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java index 049247d7a..4c4f38fb8 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java @@ -10,11 +10,17 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.cast.types.*; -import com.ibm.wala.classLoader.*; -import com.ibm.wala.ipa.callgraph.*; +import com.ibm.wala.cast.types.AstMethodReference; +import com.ibm.wala.cast.types.AstTypeReference; +import com.ibm.wala.classLoader.CallSiteReference; +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ipa.cha.IClassHierarchy; -import com.ibm.wala.types.*; +import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.TypeReference; public class StandardFunctionTargetSelector implements MethodTargetSelector { private final IClassHierarchy cha; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java index f7a52bd5e..d3ce7d459 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java @@ -10,17 +10,21 @@ *****************************************************************************/ package com.ibm.wala.cast.ipa.callgraph; -import com.ibm.wala.classLoader.*; -import com.ibm.wala.ipa.callgraph.*; -import com.ibm.wala.ipa.callgraph.propagation.*; -import com.ibm.wala.ssa.*; +import java.io.File; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Iterator; + +import com.ibm.wala.classLoader.SourceFileModule; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder; +import com.ibm.wala.ssa.IR; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.debug.Trace; -import java.io.*; -import java.net.*; -import java.util.*; - public class Util { public static SourceFileModule makeSourceModule(URL script, String dir, String name) { @@ -47,7 +51,7 @@ public class Util { for (Iterator x = CG.iterator(); x.hasNext();) { CGNode N = (CGNode) x.next(); Trace.println("\nIR of node " + N); - IR ir = N.getIR(builder.getWarnings()); + IR ir = N.getIR(); if (ir != null) { Trace.println(ir); } else { @@ -59,27 +63,25 @@ public class Util { for (Iterator x = PA.getPointerKeys().iterator(); x.hasNext();) { PointerKey n = (PointerKey) x.next(); try { - Trace.println(n + " --> " + PA.getPointsToSet(n)); + Trace.println(n + " --> " + PA.getPointsToSet(n)); } catch (Throwable e) { - Trace.println("error computing set for " + n); + Trace.println("error computing set for " + n); } } } public static SourceFileModule[] handleFileNames(String[] fileNameArgs) { - SourceFileModule[] fileNames = new SourceFileModule[ fileNameArgs.length ]; - for(int i = 0; i < fileNameArgs.length; i++) { + SourceFileModule[] fileNames = new SourceFileModule[fileNameArgs.length]; + for (int i = 0; i < fileNameArgs.length; i++) { if (new File(fileNameArgs[i]).exists()) { - try { - fileNames[i] = - Util.makeSourceModule( - new URL("file:"+fileNameArgs[i]), fileNameArgs[i]); - } catch (MalformedURLException e) { - Assertions.UNREACHABLE( e.toString() ); - } + try { + fileNames[i] = Util.makeSourceModule(new URL("file:" + fileNameArgs[i]), fileNameArgs[i]); + } catch (MalformedURLException e) { + Assertions.UNREACHABLE(e.toString()); + } } else { - URL url = Util.class.getClassLoader().getResource(fileNameArgs[i]); - fileNames[i] = Util.makeSourceModule(url, fileNameArgs[i]); + URL url = Util.class.getClassLoader().getResource(fileNameArgs[i]); + fileNames[i] = Util.makeSourceModule(url, fileNameArgs[i]); } } diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/cha/CrossLanguageClassHierarchy.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/cha/CrossLanguageClassHierarchy.java index 0f04e3abd..4cc14d833 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/cha/CrossLanguageClassHierarchy.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/cha/CrossLanguageClassHierarchy.java @@ -35,7 +35,6 @@ import com.ibm.wala.util.collections.ComposedIterator; import com.ibm.wala.util.collections.HashMapFactory; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.debug.Assertions; -import com.ibm.wala.util.warnings.WarningSet; /** * This class hierarchy represents a family of disjoint class hierarchies, one @@ -223,7 +222,7 @@ public class CrossLanguageClassHierarchy implements IClassHierarchy { this.hierarchies = hierarchies; } - public static CrossLanguageClassHierarchy make(AnalysisScope scope, ClassLoaderFactory factory, WarningSet warnings, + public static CrossLanguageClassHierarchy make(AnalysisScope scope, ClassLoaderFactory factory, Map languageMap) throws ClassHierarchyException { Set languages = HashSetFactory.make(); for (Iterator ldrs = scope.getLoaders().iterator(); ldrs.hasNext();) { @@ -235,7 +234,7 @@ public class CrossLanguageClassHierarchy implements IClassHierarchy { Atom l = (Atom) ls.next(); Language L = (Language) languageMap.get(l); assert L != null : l.toString(); - hierarchies.put(l, ClassHierarchy.make(scope, factory, warnings, L)); + hierarchies.put(l, ClassHierarchy.make(scope, factory, L)); } return new CrossLanguageClassHierarchy(scope, factory, hierarchies); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/AstInducedCFG.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/AstInducedCFG.java index 751d6e584..c5ffe8525 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/AstInducedCFG.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/AstInducedCFG.java @@ -10,11 +10,20 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.cfg; -import com.ibm.wala.cast.ir.ssa.*; -import com.ibm.wala.cfg.*; -import com.ibm.wala.classLoader.*; -import com.ibm.wala.ipa.callgraph.*; -import com.ibm.wala.ssa.*; +import com.ibm.wala.cast.ir.ssa.AstAssertInstruction; +import com.ibm.wala.cast.ir.ssa.AstGlobalRead; +import com.ibm.wala.cast.ir.ssa.AstGlobalWrite; +import com.ibm.wala.cast.ir.ssa.AstInstructionVisitor; +import com.ibm.wala.cast.ir.ssa.AstIsDefinedInstruction; +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.ssa.NonExceptingThrowInstruction; +import com.ibm.wala.cfg.InducedCFG; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ssa.SSAInstruction; public class AstInducedCFG extends InducedCFG { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/DelegatingCFG.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/DelegatingCFG.java index 6fdde64e4..5b91e3c0d 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/DelegatingCFG.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/DelegatingCFG.java @@ -10,14 +10,17 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.cfg; -import com.ibm.wala.cfg.*; +import java.util.Collection; + +import com.ibm.wala.cfg.ControlFlowGraph; +import com.ibm.wala.cfg.IBasicBlock; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.shrikeBT.IInstruction; -import com.ibm.wala.util.graph.*; +import com.ibm.wala.util.graph.AbstractNumberedGraph; +import com.ibm.wala.util.graph.EdgeManager; +import com.ibm.wala.util.graph.NodeManager; import com.ibm.wala.util.intset.BitVector; -import java.util.*; - public class DelegatingCFG extends AbstractNumberedGraph implements ControlFlowGraph { protected final ControlFlowGraph parent; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/Util.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/Util.java index 6ea3eb31b..f53a5a6cc 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/Util.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/Util.java @@ -10,10 +10,11 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.cfg; -import com.ibm.wala.cfg.*; -import com.ibm.wala.util.debug.Assertions; +import java.util.Iterator; -import java.util.*; +import com.ibm.wala.cfg.ControlFlowGraph; +import com.ibm.wala.cfg.IBasicBlock; +import com.ibm.wala.util.debug.Assertions; public class Util { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AbstractLexicalInvoke.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AbstractLexicalInvoke.java index 3946b4a3b..497313a17 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AbstractLexicalInvoke.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AbstractLexicalInvoke.java @@ -13,7 +13,9 @@ package com.ibm.wala.cast.ir.ssa; import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access; import com.ibm.wala.classLoader.CallSiteReference; -import com.ibm.wala.ssa.*; +import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; +import com.ibm.wala.ssa.SymbolTable; +import com.ibm.wala.ssa.ValueDecorator; import com.ibm.wala.util.debug.Assertions; /** diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIRFactory.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIRFactory.java index 8b6514525..fd0552ebb 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIRFactory.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIRFactory.java @@ -30,7 +30,6 @@ import com.ibm.wala.ssa.SymbolTable; import com.ibm.wala.ssa.SSACFG.ExceptionHandlerBasicBlock; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.debug.Assertions; -import com.ibm.wala.util.warnings.WarningSet; public class AstIRFactory implements IRFactory { private final boolean keepIR; @@ -42,7 +41,7 @@ public class AstIRFactory implements IRFactory { this.keptIRs = (keepIR) ? new HashMap() : null; } - public ControlFlowGraph makeCFG(final IMethod method, final Context context, final WarningSet warnings) { + public ControlFlowGraph makeCFG(final IMethod method, final Context context) { return ((AstMethod) method).getControlFlowGraph(); } @@ -95,7 +94,7 @@ public class AstIRFactory implements IRFactory { } } - public IR makeIR(final IMethod method, final Context context, final SSAOptions options, final WarningSet warnings) { + public IR makeIR(final IMethod method, final Context context, final SSAOptions options) { Assertions._assert(method instanceof AstMethod, method.toString()); if (keepIR) { if (keptIRs.containsKey(method)) { @@ -106,7 +105,7 @@ public class AstIRFactory implements IRFactory { AbstractCFG oldCfg = ((AstMethod) method).cfg; SSAInstruction[] instrs = (SSAInstruction[]) oldCfg.getInstructions(); - IR newIR = new AstIR((AstMethod) method, instrs, ((AstMethod) method).symtab, new SSACFG(method, oldCfg, instrs, warnings), + IR newIR = new AstIR((AstMethod) method, instrs, ((AstMethod) method).symtab, new SSACFG(method, oldCfg, instrs), options); if (keepIR) { @@ -120,19 +119,19 @@ public class AstIRFactory implements IRFactory { return new DefaultIRFactory() { private final AstIRFactory astFactory = new AstIRFactory(keepAstIRs); - public IR makeIR(IMethod method, Context context, SSAOptions options, WarningSet warnings) { + public IR makeIR(IMethod method, Context context, SSAOptions options) { if (method instanceof AstMethod) { - return astFactory.makeIR(method, context, options, warnings); + return astFactory.makeIR(method, context, options); } else { - return super.makeIR(method, context, options, warnings); + return super.makeIR(method, context, options); } } - public ControlFlowGraph makeCFG(IMethod method, Context context, WarningSet warnings) { + public ControlFlowGraph makeCFG(IMethod method, Context context) { if (method instanceof AstMethod) { - return astFactory.makeCFG(method, context, warnings); + return astFactory.makeCFG(method, context); } else { - return super.makeCFG(method, context, warnings); + return super.makeCFG(method, context); } } }; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstInstructionVisitor.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstInstructionVisitor.java index 507a649e5..b4e1a4118 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstInstructionVisitor.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstInstructionVisitor.java @@ -10,7 +10,7 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.ssa; -import com.ibm.wala.ssa.*; +import com.ibm.wala.ssa.SSAInstruction; public interface AstInstructionVisitor extends SSAInstruction.IVisitor { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIsDefinedInstruction.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIsDefinedInstruction.java index 8354dfb25..9a72fcde3 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIsDefinedInstruction.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstIsDefinedInstruction.java @@ -1,10 +1,14 @@ package com.ibm.wala.cast.ir.ssa; -import com.ibm.wala.ssa.*; -import com.ibm.wala.types.*; -import com.ibm.wala.util.debug.Assertions; +import java.util.Collection; +import java.util.Collections; -import java.util.*; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SymbolTable; +import com.ibm.wala.ssa.ValueDecorator; +import com.ibm.wala.types.FieldReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.debug.Assertions; public class AstIsDefinedInstruction extends SSAInstruction { private final FieldReference fieldRef; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalRead.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalRead.java index fcfb01a3b..0e8c3f176 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalRead.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalRead.java @@ -10,7 +10,9 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.ssa; -import com.ibm.wala.ssa.*; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SymbolTable; +import com.ibm.wala.ssa.ValueDecorator; import com.ibm.wala.util.debug.Assertions; /** diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalWrite.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalWrite.java index b1045643c..57a76d2e9 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalWrite.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalWrite.java @@ -10,7 +10,9 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.ssa; -import com.ibm.wala.ssa.*; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SymbolTable; +import com.ibm.wala.ssa.ValueDecorator; import com.ibm.wala.util.debug.Assertions; /** diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/FixedParametersLexicalInvokeInstruction.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/FixedParametersLexicalInvokeInstruction.java index b5ba21b7d..8e694a351 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/FixedParametersLexicalInvokeInstruction.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/FixedParametersLexicalInvokeInstruction.java @@ -11,8 +11,8 @@ package com.ibm.wala.cast.ir.ssa; import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access; -import com.ibm.wala.classLoader.*; -import com.ibm.wala.ssa.*; +import com.ibm.wala.classLoader.CallSiteReference; +import com.ibm.wala.ssa.SSAInstruction; /** * This abstract instruction extends the abstract lexical invoke with diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AstTranslator.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AstTranslator.java index 5d0dcc781..77c75bee8 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AstTranslator.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AstTranslator.java @@ -22,13 +22,31 @@ import java.util.Map; import java.util.Set; import java.util.Stack; -import com.ibm.wala.cast.ir.ssa.*; +import com.ibm.wala.cast.ir.ssa.AssignInstruction; +import com.ibm.wala.cast.ir.ssa.AstAssertInstruction; +import com.ibm.wala.cast.ir.ssa.AstConstants; +import com.ibm.wala.cast.ir.ssa.AstGlobalRead; +import com.ibm.wala.cast.ir.ssa.AstGlobalWrite; +import com.ibm.wala.cast.ir.ssa.AstIsDefinedInstruction; +import com.ibm.wala.cast.ir.ssa.AstLexicalAccess; +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.ssa.AstLexicalAccess.Access; import com.ibm.wala.cast.loader.AstMethod.DebuggingInformation; import com.ibm.wala.cast.loader.AstMethod.LexicalInformation; -import com.ibm.wala.cast.tree.*; +import com.ibm.wala.cast.tree.CAstControlFlowMap; +import com.ibm.wala.cast.tree.CAstEntity; +import com.ibm.wala.cast.tree.CAstNode; +import com.ibm.wala.cast.tree.CAstSourcePositionMap; +import com.ibm.wala.cast.tree.CAstSymbol; +import com.ibm.wala.cast.tree.CAstType; import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position; -import com.ibm.wala.cast.tree.impl.*; +import com.ibm.wala.cast.tree.impl.CAstCloner; +import com.ibm.wala.cast.tree.impl.CAstImpl; +import com.ibm.wala.cast.tree.impl.CAstOperator; +import com.ibm.wala.cast.tree.impl.CAstRewriter; import com.ibm.wala.cast.tree.visit.CAstVisitor; import com.ibm.wala.cast.types.AstTypeReference; import com.ibm.wala.cast.util.CAstPrinter; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToIR.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToIR.java index 06416619f..ffd1b5161 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToIR.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToIR.java @@ -10,10 +10,10 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.translator; -import com.ibm.wala.classLoader.*; +import java.io.IOException; +import java.util.Set; -import java.io.*; -import java.util.*; +import com.ibm.wala.classLoader.ModuleEntry; public interface TranslatorToIR { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstEntity.java index 19203aa4c..708696b5a 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstEntity.java @@ -10,7 +10,9 @@ *****************************************************************************/ package com.ibm.wala.cast.tree; -import java.util.*; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; /** * The assumption is that abstract syntax trees pertain to particular diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstQualifier.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstQualifier.java index 066542f69..1f4fa8b44 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstQualifier.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstQualifier.java @@ -13,7 +13,8 @@ */ package com.ibm.wala.cast.tree; -import java.util.*; +import java.util.HashSet; +import java.util.Set; public class CAstQualifier { public static final Set/* */sQualifiers = new HashSet(); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstSourcePositionMap.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstSourcePositionMap.java index 1744fa7c3..58112bd67 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstSourcePositionMap.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstSourcePositionMap.java @@ -10,8 +10,9 @@ *****************************************************************************/ package com.ibm.wala.cast.tree; -import java.io.*; -import java.net.*; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; import java.util.Iterator; /** diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/TranslatorToCAst.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/TranslatorToCAst.java index 325cf149f..cdbd85e53 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/TranslatorToCAst.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/TranslatorToCAst.java @@ -10,7 +10,8 @@ *****************************************************************************/ package com.ibm.wala.cast.tree; -import java.io.*; +import java.io.IOException; +import java.io.Reader; /** * Encapsulates a translator from source files to CAstEntities. This diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstCloner.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstCloner.java index 26138fb51..50d1aad65 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstCloner.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstCloner.java @@ -19,7 +19,7 @@ import com.ibm.wala.cast.tree.CAstEntity; import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.tree.CAstNodeTypeMap; import com.ibm.wala.cast.tree.CAstSourcePositionMap; -import com.ibm.wala.util.debug.*; +import com.ibm.wala.util.debug.Assertions; public class CAstCloner extends CAstRewriter { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstImpl.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstImpl.java index 344c84f50..508bb9967 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstImpl.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstImpl.java @@ -10,12 +10,13 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; +import java.util.NoSuchElementException; + +import com.ibm.wala.cast.tree.CAst; +import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.util.CAstPrinter; import com.ibm.wala.util.debug.Assertions; -import java.util.NoSuchElementException; - /** * An implementation of CAst, i.e. a simple factory for creating capa * ast nodes. This class simply creates generic nodes with a kind diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstNodeTypeMapRecorder.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstNodeTypeMapRecorder.java index ef83dd73d..8a8a5b153 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstNodeTypeMapRecorder.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstNodeTypeMapRecorder.java @@ -13,9 +13,11 @@ */ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; +import java.util.HashMap; -import java.util.*; +import com.ibm.wala.cast.tree.CAstNode; +import com.ibm.wala.cast.tree.CAstNodeTypeMap; +import com.ibm.wala.cast.tree.CAstType; public class CAstNodeTypeMapRecorder extends HashMap diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstOperator.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstOperator.java index 5ebe9b3a3..18cc34bb0 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstOperator.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstOperator.java @@ -10,10 +10,10 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; - import java.util.NoSuchElementException; +import com.ibm.wala.cast.tree.CAstNode; + /** * Various operators that are built in to many languages, and hence * perhaps deserve special notice in capa ast interface. There is no diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java index 648d27a87..0b6a1c5bf 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java @@ -10,10 +10,22 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; -import com.ibm.wala.util.collections.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; -import java.util.*; +import com.ibm.wala.cast.tree.CAst; +import com.ibm.wala.cast.tree.CAstControlFlowMap; +import com.ibm.wala.cast.tree.CAstEntity; +import com.ibm.wala.cast.tree.CAstNode; +import com.ibm.wala.cast.tree.CAstNodeTypeMap; +import com.ibm.wala.cast.tree.CAstSourcePositionMap; +import com.ibm.wala.util.collections.EmptyIterator; public abstract class CAstRewriter { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriterFactory.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriterFactory.java index e605d98a9..29a6891b2 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriterFactory.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriterFactory.java @@ -1,6 +1,6 @@ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; +import com.ibm.wala.cast.tree.CAst; public interface CAstRewriterFactory { public CAstRewriter createCAstRewriter(CAst ast); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstSymbolImpl.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstSymbolImpl.java index e81993d20..390edef52 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstSymbolImpl.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstSymbolImpl.java @@ -1,6 +1,6 @@ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; +import com.ibm.wala.cast.tree.CAstSymbol; public class CAstSymbolImpl implements CAstSymbol { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstTypeDictionaryImpl.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstTypeDictionaryImpl.java index c42afc3b4..5894125fb 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstTypeDictionaryImpl.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstTypeDictionaryImpl.java @@ -13,9 +13,12 @@ */ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; +import java.util.HashMap; +import java.util.Map; -import java.util.*; +import com.ibm.wala.cast.tree.CAstReference; +import com.ibm.wala.cast.tree.CAstType; +import com.ibm.wala.cast.tree.CAstTypeDictionary; public class CAstTypeDictionaryImpl implements CAstTypeDictionary { private final Map/**/ fMap= new HashMap(); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstValueImpl.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstValueImpl.java index c0c00f2fb..ef2db1bac 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstValueImpl.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstValueImpl.java @@ -10,7 +10,7 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; +import com.ibm.wala.cast.tree.CAstNode; /** * An implementation of CAst, i.e. a simple factory for creating capa diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/DelegatingEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/DelegatingEntity.java index ddaadb328..cdd813cc7 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/DelegatingEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/DelegatingEntity.java @@ -10,9 +10,16 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; -import java.util.*; +import com.ibm.wala.cast.tree.CAstControlFlowMap; +import com.ibm.wala.cast.tree.CAstEntity; +import com.ibm.wala.cast.tree.CAstNode; +import com.ibm.wala.cast.tree.CAstNodeTypeMap; +import com.ibm.wala.cast.tree.CAstSourcePositionMap; +import com.ibm.wala.cast.tree.CAstType; public class DelegatingEntity implements CAstEntity { private final CAstEntity base; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/CAstVisitor.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/CAstVisitor.java index 908670013..6a049bed7 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/CAstVisitor.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/CAstVisitor.java @@ -10,13 +10,17 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.visit; -import com.ibm.wala.cast.tree.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import com.ibm.wala.cast.tree.CAstEntity; +import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.util.CAstPrinter; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.debug.Trace; -import java.util.*; - /** * @author Igor Peshansky * Ripped out of Julian's AstTranslator diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/DelegatingCAstVisitor.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/DelegatingCAstVisitor.java index 77287bc84..7e27095a4 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/DelegatingCAstVisitor.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/visit/DelegatingCAstVisitor.java @@ -10,7 +10,8 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.visit; -import com.ibm.wala.cast.tree.*; +import com.ibm.wala.cast.tree.CAstEntity; +import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.util.debug.Assertions; /** diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstMethodReference.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstMethodReference.java index 0d5bb0052..3b085aed7 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstMethodReference.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstMethodReference.java @@ -10,7 +10,10 @@ *****************************************************************************/ package com.ibm.wala.cast.types; -import com.ibm.wala.types.*; +import com.ibm.wala.types.Descriptor; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.Selector; +import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.Atom; public class AstMethodReference { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstTypeReference.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstTypeReference.java index 98e5d6efa..312af0092 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstTypeReference.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/types/AstTypeReference.java @@ -10,7 +10,7 @@ *****************************************************************************/ package com.ibm.wala.cast.types; -import com.ibm.wala.types.*; +import com.ibm.wala.types.TypeName; public class AstTypeReference { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java index 36c116c9b..93df329d6 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java @@ -10,11 +10,14 @@ *****************************************************************************/ package com.ibm.wala.cast.util; -import com.ibm.wala.cast.tree.*; -import com.ibm.wala.util.collections.*; -import com.ibm.wala.util.graph.traverse.*; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; -import java.util.*; +import com.ibm.wala.cast.tree.CAstNode; +import com.ibm.wala.util.collections.Filter; +import com.ibm.wala.util.collections.FilterIterator; +import com.ibm.wala.util.graph.traverse.DFSDiscoverTimeIterator; public class CAstFunctions { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java index ea7a66700..05ef170c1 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java @@ -10,10 +10,15 @@ *****************************************************************************/ package com.ibm.wala.cast.util; -import com.ibm.wala.cast.tree.*; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.util.Collection; +import java.util.Iterator; -import java.io.*; -import java.util.*; +import com.ibm.wala.cast.tree.CAstEntity; +import com.ibm.wala.cast.tree.CAstNode; +import com.ibm.wala.cast.tree.CAstSourcePositionMap; public class CAstPrinter { private static CAstPrinter instance= new CAstPrinter(); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/SourceBuffer.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/SourceBuffer.java index bb3f4287c..ffafd3bdf 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/SourceBuffer.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/SourceBuffer.java @@ -10,11 +10,14 @@ *****************************************************************************/ package com.ibm.wala.cast.util; -import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position; -import com.ibm.wala.cast.tree.impl.*; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; -import java.io.*; -import java.net.*; +import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position; +import com.ibm.wala.cast.tree.impl.AbstractSourcePosition; public class SourceBuffer { private String[] lines;