Propagate @Access and @ExclusiveAccess from @Use
Change-Id: I0fe4bf667333c9ec59de7c4ea700a8c2eeb439ef
diff --git a/jack/src/com/android/jack/backend/dex/MainDexTracer.java b/jack/src/com/android/jack/backend/dex/MainDexTracer.java
index 5e419d7..1fa5943 100644
--- a/jack/src/com/android/jack/backend/dex/MainDexTracer.java
+++ b/jack/src/com/android/jack/backend/dex/MainDexTracer.java
@@ -19,9 +19,11 @@
import com.android.jack.analysis.tracer.Tracer;
import com.android.jack.ir.ast.JAnnotation;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
+import com.android.jack.ir.ast.JSession;
import com.android.jack.scheduling.feature.SourceVersion8;
import com.android.jack.shrob.obfuscation.SubClassOrInterfaceMarker;
import com.android.sched.item.Description;
+import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.Optional;
import com.android.sched.schedulable.RunnableSchedulable;
@@ -35,6 +37,7 @@
*/
@Description("Trace for main dex.")
@Use({Tracer.class, MultiDexLegacyTracerBrush.class})
+@Access(JSession.class)
@Constraint(need = SubClassOrInterfaceMarker.class)
@Optional(@ToSupport(feature = SourceVersion8.class,
add = @Constraint(need = JAnnotation.RepeatedAnnotation.class)))
diff --git a/jack/src/com/android/jack/shrob/shrink/Keeper.java b/jack/src/com/android/jack/shrob/shrink/Keeper.java
index cbfa240..0551512 100644
--- a/jack/src/com/android/jack/shrob/shrink/Keeper.java
+++ b/jack/src/com/android/jack/shrob/shrink/Keeper.java
@@ -19,9 +19,11 @@
import com.android.jack.analysis.tracer.Tracer;
import com.android.jack.ir.ast.JAnnotation;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
+import com.android.jack.ir.ast.JSession;
import com.android.jack.scheduling.feature.SourceVersion8;
import com.android.jack.shrob.obfuscation.SubClassOrInterfaceMarker;
import com.android.sched.item.Description;
+import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.Optional;
import com.android.sched.schedulable.RunnableSchedulable;
@@ -36,6 +38,7 @@
*/
@Description("Marks all classes and members that will be kept when shrinking.")
@Use({Tracer.class, KeeperBrush.class})
+@Access(JSession.class)
@Constraint(need = SubClassOrInterfaceMarker.class)
@Optional(@ToSupport(feature = SourceVersion8.class,
add = @Constraint(need = JAnnotation.RepeatedAnnotation.class)))
diff --git a/jack/src/com/android/jack/shrob/shrink/ShrinkAndMainDexTracer.java b/jack/src/com/android/jack/shrob/shrink/ShrinkAndMainDexTracer.java
index 32d66b5..b311e64 100644
--- a/jack/src/com/android/jack/shrob/shrink/ShrinkAndMainDexTracer.java
+++ b/jack/src/com/android/jack/shrob/shrink/ShrinkAndMainDexTracer.java
@@ -22,9 +22,11 @@
import com.android.jack.backend.dex.MultiDexLegacyTracerBrush;
import com.android.jack.ir.ast.JAnnotation;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
+import com.android.jack.ir.ast.JSession;
import com.android.jack.scheduling.feature.SourceVersion8;
import com.android.jack.shrob.obfuscation.SubClassOrInterfaceMarker;
import com.android.sched.item.Description;
+import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.Optional;
import com.android.sched.schedulable.RunnableSchedulable;
@@ -38,6 +40,7 @@
*/
@Description("Trace for shrink and main dex.")
@Use({Tracer.class, KeeperBrush.class, MultiDexLegacyTracerBrush.class})
+@Access(JSession.class)
@Constraint(need = SubClassOrInterfaceMarker.class)
@Optional(@ToSupport(feature = SourceVersion8.class,
add = @Constraint(need = JAnnotation.RepeatedAnnotation.class)))
diff --git a/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationAdder.java b/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationAdder.java
index ebf1ad2..d159271 100644
--- a/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationAdder.java
+++ b/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationAdder.java
@@ -54,7 +54,7 @@
* Add container annotations when they are needed.
*/
@Transform(add = {JAnnotation.class, JNameValuePair.class, JArrayLiteral.class})
-// Uses etOrCreateMethodIdWide on container JAnnotationType of JAnnotation founds on Annotable.
+// Uses getOrCreateMethodIdWide on container JAnnotationType of JAnnotation founds on Annotable.
@ExclusiveAccess(JSession.class)
public class ContainerAnnotationAdder {
@@ -65,6 +65,7 @@
@Constraint(need = ContainerAnnotationMarker.class)
@Transform(remove = {JAnnotation.RepeatedAnnotationOnType.class})
@Use(ContainerAnnotationAdder.class)
+ @ExclusiveAccess(JSession.class)
@Filter(TypeWithoutPrebuiltFilter.class)
public static class TypeContainerAnnotationAdder extends ContainerAnnotationAdder
implements RunnableSchedulable<JDefinedClassOrInterface> {
@@ -85,6 +86,7 @@
@Constraint(need = ContainerAnnotationMarker.class)
@Transform(remove = {JAnnotation.RepeatedAnnotationOnField.class})
@Use(ContainerAnnotationAdder.class)
+ @ExclusiveAccess(JSession.class)
@Filter(TypeWithoutPrebuiltFilter.class)
public static class FieldContainerAnnotationAdder extends ContainerAnnotationAdder
implements RunnableSchedulable<JField> {
@@ -105,6 +107,7 @@
@Constraint(need = ContainerAnnotationMarker.class)
@Transform(remove = {JAnnotation.RepeatedAnnotationOnMethod.class})
@Use(ContainerAnnotationAdder.class)
+ @ExclusiveAccess(JSession.class)
@Filter(TypeWithoutPrebuiltFilter.class)
public static class MethodContainerAnnotationAdder extends ContainerAnnotationAdder
implements RunnableSchedulable<JMethod> {
diff --git a/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationMarkerAdder.java b/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationMarkerAdder.java
index f3c9e37..9ea0b97 100644
--- a/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationMarkerAdder.java
+++ b/jack/src/com/android/jack/transformations/annotation/ContainerAnnotationMarkerAdder.java
@@ -58,6 +58,7 @@
+ "are on the same type")
@Constraint(need = JAnnotation.RepeatedAnnotationOnType.class)
@Use(ContainerAnnotationMarkerAdder.class)
+ @Access(JSession.class)
public static class TypeContainerAnnotationMarkerAdder extends ContainerAnnotationMarkerAdder
implements RunnableSchedulable<JDefinedClassOrInterface> {
@Override
@@ -74,6 +75,7 @@
+ "are on the same field")
@Constraint(need = JAnnotation.RepeatedAnnotationOnField.class)
@Use(ContainerAnnotationMarkerAdder.class)
+ @Access(JSession.class)
public static class FieldContainerAnnotationMarkerAdder extends ContainerAnnotationMarkerAdder
implements RunnableSchedulable<JField> {
@Override
@@ -90,6 +92,7 @@
+ "are on the same method or parameter")
@Constraint(need = JAnnotation.RepeatedAnnotationOnMethod.class)
@Use(ContainerAnnotationMarkerAdder.class)
+ @Access(JSession.class)
public static class MethodContainerAnnotationMarkerAdder extends ContainerAnnotationMarkerAdder
implements RunnableSchedulable<JMethod> {
@Override
diff --git a/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java b/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java
index fa5d5e0..d3f2e45 100644
--- a/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/MethodStringLiteralRefiner.java
@@ -17,8 +17,10 @@
package com.android.jack.transformations.ast.string;
import com.android.jack.ir.ast.JMethod;
+import com.android.jack.ir.ast.JSession;
import com.android.jack.transformations.request.TransformationRequest;
import com.android.sched.item.Description;
+import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
import com.android.sched.schedulable.Use;
@@ -30,6 +32,7 @@
*/
@Description("Refine JStringLiteral in methods into more specific string literals.")
@Use(StringLiteralRefinerVisitor.class)
+@Access(JSession.class)
@Transform(add = StringLiteralRefined.Method.class)
public class MethodStringLiteralRefiner implements RunnableSchedulable<JMethod> {
diff --git a/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java b/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java
index 8ea4506..c4ca7d3 100644
--- a/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/ReflectionStringLiteralRefiner.java
@@ -22,6 +22,7 @@
import com.android.jack.ir.ast.JAbstractStringLiteral;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JMethodCall;
+import com.android.jack.ir.ast.JSession;
import com.android.jack.ir.ast.JStringLiteral;
import com.android.jack.ir.ast.JTypeStringLiteral;
import com.android.jack.ir.ast.JVisitor;
@@ -41,6 +42,7 @@
import com.android.jack.util.filter.Filter;
import com.android.sched.item.Description;
import com.android.sched.item.Name;
+import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
@@ -63,6 +65,7 @@
AtomicReferenceUpdaterParameterRefiner.class,
GetMethodParameterRefiner.class,
GetDeclaredMethodParameterRefiner.class})
+@Access(JSession.class)
public class ReflectionStringLiteralRefiner implements RunnableSchedulable<JMethod> {
@Nonnull
diff --git a/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java b/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java
index 59dd82b..13c4031 100644
--- a/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java
+++ b/jack/src/com/android/jack/transformations/ast/string/TypeStringLiteralRefiner.java
@@ -17,8 +17,10 @@
package com.android.jack.transformations.ast.string;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
+import com.android.jack.ir.ast.JSession;
import com.android.jack.transformations.request.TransformationRequest;
import com.android.sched.item.Description;
+import com.android.sched.schedulable.Access;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
import com.android.sched.schedulable.Use;
@@ -30,6 +32,7 @@
*/
@Description("Refine JStringLiteral in types into more specific string literals.")
@Use(StringLiteralRefinerVisitor.class)
+@Access(JSession.class)
@Transform(add = StringLiteralRefined.Type.class)
public class TypeStringLiteralRefiner implements RunnableSchedulable<JDefinedClassOrInterface> {