Skip to content

Commit c387ce2

Browse files
committed
Avoid WPI dependency
1 parent a1fe047 commit c387ce2

File tree

6 files changed

+37
-28
lines changed

6 files changed

+37
-28
lines changed

checker/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ sourceSets {
1616
resources {
1717
// Stub files, message.properties, etc.
1818
srcDirs += ['src/main/java']
19+
20+
// NO-AFU
21+
exclude '**/org/checkerframework/checker/resourceleak/MustCallInference.java'
1922
}
2023
}
2124
testannotations

checker/src/main/java/org/checkerframework/checker/calledmethods/CalledMethodsTransfer.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import org.checkerframework.checker.calledmethods.qual.EnsuresCalledMethodsVarArgs;
44
import org.checkerframework.checker.nullness.qual.Nullable;
5-
import org.checkerframework.checker.resourceleak.ResourceLeakChecker;
65
import org.checkerframework.common.accumulation.AccumulationStore;
76
import org.checkerframework.common.accumulation.AccumulationTransfer;
87
import org.checkerframework.common.accumulation.AccumulationValue;
@@ -53,11 +52,12 @@ public class CalledMethodsTransfer extends AccumulationTransfer {
5352
*/
5453
private final ExecutableElement calledMethodsValueElement;
5554

56-
/**
55+
/* NO-AFU
5756
* True if -AenableWpiForRlc was passed on the command line. See {@link
5857
* ResourceLeakChecker#ENABLE_WPI_FOR_RLC}.
59-
*/
58+
*
6059
private final boolean enableWpiForRlc;
60+
*/
6161

6262
/**
6363
* Create a new CalledMethodsTransfer.
@@ -68,8 +68,8 @@ public CalledMethodsTransfer(CalledMethodsAnalysis analysis) {
6868
super(analysis);
6969
calledMethodsValueElement =
7070
((CalledMethodsAnnotatedTypeFactory) atypeFactory).calledMethodsValueElement;
71-
enableWpiForRlc =
72-
atypeFactory.getChecker().hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
71+
// enableWpiForRlc =
72+
// atypeFactory.getChecker().hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
7373
}
7474

7575
/* NO-AFU
@@ -286,13 +286,14 @@ private void handleEnsuresCalledMethodsVarArgs(
286286
return atypeFactory.createAccumulatorAnnotation(newList);
287287
}
288288

289-
/**
289+
/* NO-AFU
290290
* Checks if WPI is enabled for the Resource Leak Checker inference. See {@link
291291
* ResourceLeakChecker#ENABLE_WPI_FOR_RLC}.
292292
*
293293
* @return returns true if WPI is enabled for the Resource Leak Checker
294-
*/
294+
*
295295
protected boolean isWpiEnabledForRLC() {
296296
return enableWpiForRlc;
297297
}
298+
*/
298299
}

checker/src/main/java/org/checkerframework/checker/mustcall/MustCallAnnotatedTypeFactory.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.checkerframework.checker.mustcall.qual.Owning;
1717
import org.checkerframework.checker.mustcall.qual.PolyMustCall;
1818
import org.checkerframework.checker.nullness.qual.Nullable;
19-
import org.checkerframework.checker.resourceleak.ResourceLeakChecker;
2019
import org.checkerframework.common.basetype.BaseAnnotatedTypeFactory;
2120
import org.checkerframework.common.basetype.BaseTypeChecker;
2221
import org.checkerframework.dataflow.cfg.block.Block;
@@ -127,11 +126,12 @@ public class MustCallAnnotatedTypeFactory extends BaseAnnotatedTypeFactory
127126
/** True if -AnoLightweightOwnership was passed on the command line. */
128127
private final boolean noLightweightOwnership;
129128

130-
/**
129+
/* NO-AFU
131130
* True if -AenableWpiForRlc (see {@link ResourceLeakChecker#ENABLE_WPI_FOR_RLC}) was passed on
132131
* the command line.
133-
*/
132+
*
134133
private final boolean enableWpiForRlc;
134+
*/
135135

136136
/**
137137
* Creates a MustCallAnnotatedTypeFactory.
@@ -149,7 +149,7 @@ public MustCallAnnotatedTypeFactory(BaseTypeChecker checker) {
149149
addAliasedTypeAnnotation(MustCallAlias.class, POLY);
150150
}
151151
noLightweightOwnership = checker.hasOption(MustCallChecker.NO_LIGHTWEIGHT_OWNERSHIP);
152-
enableWpiForRlc = checker.hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
152+
// enableWpiForRlc = checker.hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
153153
this.postInit();
154154
}
155155

@@ -548,15 +548,16 @@ public Void visitIdentifier(IdentifierTree tree, AnnotatedTypeMirror type) {
548548
return tempVars.get(node.getTree());
549549
}
550550

551-
/**
551+
/* NO-AFU
552552
* Checks if WPI is enabled for the Resource Leak Checker inference. See {@link
553553
* ResourceLeakChecker#ENABLE_WPI_FOR_RLC}.
554554
*
555555
* @return returns true if WPI is enabled for the Resource Leak Checker
556-
*/
556+
*
557557
protected boolean isWpiEnabledForRLC() {
558558
return enableWpiForRlc;
559559
}
560+
*/
560561

561562
/**
562563
* Returns true if the given type should never have a must-call obligation.

checker/src/main/java/org/checkerframework/checker/mustcall/MustCallTransfer.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.checkerframework.checker.mustcall.qual.MustCall;
1010
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
1111
import org.checkerframework.checker.nullness.qual.Nullable;
12-
import org.checkerframework.checker.resourceleak.ResourceLeakChecker;
1312
import org.checkerframework.dataflow.analysis.TransferInput;
1413
import org.checkerframework.dataflow.analysis.TransferResult;
1514
import org.checkerframework.dataflow.cfg.node.AssignmentNode;
@@ -62,11 +61,12 @@ public class MustCallTransfer extends CFTransfer {
6261
/** True if -AnoCreatesMustCallFor was passed on the command line. */
6362
private final boolean noCreatesMustCallFor;
6463

65-
/**
64+
/* NO-AFU
6665
* True if -AenableWpiForRlc was passed on the command line. See {@link
6766
* ResourceLeakChecker#ENABLE_WPI_FOR_RLC}.
68-
*/
67+
*
6968
private final boolean enableWpiForRlc;
69+
*/
7070

7171
/**
7272
* Create a MustCallTransfer.
@@ -78,8 +78,8 @@ public MustCallTransfer(CFAnalysis analysis) {
7878
atypeFactory = (MustCallAnnotatedTypeFactory) analysis.getTypeFactory();
7979
noCreatesMustCallFor =
8080
atypeFactory.getChecker().hasOption(MustCallChecker.NO_CREATES_MUSTCALLFOR);
81-
enableWpiForRlc =
82-
atypeFactory.getChecker().hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
81+
// enableWpiForRlc =
82+
// atypeFactory.getChecker().hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
8383
ProcessingEnvironment env = atypeFactory.getChecker().getProcessingEnvironment();
8484
treeBuilder = new TreeBuilder(env);
8585
}
@@ -353,13 +353,14 @@ protected String uniqueName(String prefix) {
353353
return prefix + "-" + uid.getAndIncrement();
354354
}
355355

356-
/**
356+
/* NO-AFU
357357
* Checks if WPI is enabled for the Resource Leak Checker inference. See {@link
358358
* ResourceLeakChecker#ENABLE_WPI_FOR_RLC}.
359359
*
360360
* @return returns true if WPI is enabled for the Resource Leak Checker
361-
*/
361+
*
362362
protected boolean isWpiEnabledForRLC() {
363363
return enableWpiForRlc;
364364
}
365+
*/
365366
}

checker/src/main/java/org/checkerframework/checker/resourceleak/ResourceLeakChecker.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
MustCallChecker.NO_CREATES_MUSTCALLFOR,
3838
MustCallChecker.NO_LIGHTWEIGHT_OWNERSHIP,
3939
MustCallChecker.NO_RESOURCE_ALIASES,
40-
ResourceLeakChecker.ENABLE_WPI_FOR_RLC,
40+
// NO-AFU ResourceLeakChecker.ENABLE_WPI_FOR_RLC,
4141
})
4242
@StubFiles("IOUtils.astub")
4343
public class ResourceLeakChecker extends CalledMethodsChecker {
@@ -116,14 +116,15 @@ public ResourceLeakChecker() {}
116116
+ "(\\w+(?:\\.\\w+)*)"
117117
+ "\\s*$");
118118

119-
/**
119+
/* NO-AFU
120120
* Ordinarily, when the -Ainfer flag is used, whole-program inference is run for every checker
121121
* and sub-checker. However, the Resource Leak Checker is different. The -Ainfer flag enables
122122
* the RLC's own (non-WPI) inference mechanism ({@link MustCallInference}). To use WPI in
123123
* addition to this mechanism for its sub-checkers, use the -AenableWpiForRlc flag, which is
124124
* intended only for testing and experiments.
125-
*/
125+
*
126126
public static final String ENABLE_WPI_FOR_RLC = "enableWpiForRlc";
127+
*/
127128

128129
/**
129130
* The number of expressions with must-call obligations that were checked. Incremented only if

checker/src/main/java/org/checkerframework/checker/resourceleak/ResourceLeakVisitor.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,12 @@ public class ResourceLeakVisitor extends CalledMethodsVisitor {
5353
/** True if -AnoLightweightOwnership was supplied on the command line. */
5454
private final boolean noLightweightOwnership;
5555

56-
/**
56+
/* NO-AFU
5757
* True if -AenableWpiForRlc was passed on the command line. See {@link
5858
* ResourceLeakChecker#ENABLE_WPI_FOR_RLC}.
59-
*/
59+
*
6060
private final boolean enableWpiForRlc;
61+
*/
6162

6263
/**
6364
* Create the visitor.
@@ -69,7 +70,7 @@ public ResourceLeakVisitor(BaseTypeChecker checker) {
6970
rlTypeFactory = (ResourceLeakAnnotatedTypeFactory) atypeFactory;
7071
permitStaticOwning = checker.hasOption("permitStaticOwning");
7172
noLightweightOwnership = checker.hasOption("noLightweightOwnership");
72-
enableWpiForRlc = checker.hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
73+
// enableWpiForRlc = checker.hasOption(ResourceLeakChecker.ENABLE_WPI_FOR_RLC);
7374
}
7475

7576
@Override
@@ -482,13 +483,14 @@ private void checkOwningField(Element field) {
482483
}
483484
}
484485

485-
/**
486+
/* NO-AFU
486487
* Checks if WPI is enabled for the Resource Leak Checker inference. See {@link
487488
* ResourceLeakChecker#ENABLE_WPI_FOR_RLC}.
488489
*
489490
* @return returns true if WPI is enabled for the Resource Leak Checker
490-
*/
491+
*
491492
protected boolean isWpiEnabledForRLC() {
492493
return enableWpiForRlc;
493494
}
495+
*/
494496
}

0 commit comments

Comments
 (0)