diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
6 files changed, 18 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java index 82a3a16f69..0a3d428bb8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.ExecException; import com.google.devtools.build.lib.actions.Executor; import com.google.devtools.build.lib.actions.ResourceSet; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import java.io.IOException; @@ -38,6 +39,7 @@ import java.io.IOException; * library depends on it, and only references one of the headers, the other * grep-includes will have been wasted. */ +@Immutable final class ExtractInclusionAction extends AbstractAction { private static final String GUID = "45b43e5a-4734-43bb-a05e-012313808142"; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java index bee74f7092..6897aab084 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java @@ -20,6 +20,7 @@ import com.google.devtools.build.lib.actions.ActionOwner; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.Executor; import com.google.devtools.build.lib.actions.ResourceSet; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.vfs.Path; /** @@ -30,7 +31,8 @@ import com.google.devtools.build.lib.vfs.Path; * would complain that these files have no generating action if we did not set it to an instance of * this class. */ -public class FdoStubAction extends AbstractAction { +@Immutable +public final class FdoStubAction extends AbstractAction { public FdoStubAction(ActionOwner owner, Artifact output) { // TODO(bazel-team): Make extracting the zip file a honest-to-God action so that we can do away // with this ugliness. diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java index c5f766b427..e3250cabc2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.actions.ResourceSet; import com.google.devtools.build.lib.actions.Root; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.util.Preconditions; @@ -44,8 +45,8 @@ import java.io.IOException; * Such symlinks are used by the linker to ensure that all rpath entries can be * specified relative to the $ORIGIN. */ +@Immutable public final class SolibSymlinkAction extends AbstractAction { - private final Artifact library; private final Path target; private final Artifact symlink; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java index 65a300ce66..8d5324ff79 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java @@ -52,6 +52,7 @@ import com.google.devtools.build.lib.collect.ImmutableIterable; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadCompatible; import com.google.devtools.build.lib.rules.java.JavaConfiguration.JavaClasspathMode; import com.google.devtools.build.lib.util.Fingerprint; @@ -71,8 +72,8 @@ import java.util.Map; /** * Action that represents a Java compilation. */ -@ThreadCompatible -public class JavaCompileAction extends AbstractAction { +@ThreadCompatible @Immutable +public final class JavaCompileAction extends AbstractAction { private static final String GUID = "786e174d-ed97-4e79-9f61-ae74430714cf"; private static final ResourceSet LOCAL_RESOURCES = @@ -100,7 +101,7 @@ public class JavaCompileAction extends AbstractAction { /** * The path to the extdir to specify to javac. */ - private final Collection<Artifact> extdirInputs; + private final ImmutableList<Artifact> extdirInputs; /** * The list of classpath entries to search for annotation processors. @@ -181,7 +182,7 @@ public class JavaCompileAction extends AbstractAction { Artifact outputJar, NestedSet<Artifact> classpathEntries, ImmutableList<Artifact> bootclasspathEntries, - Collection<Artifact> extdirInputs, + ImmutableList<Artifact> extdirInputs, List<Artifact> processorPath, List<String> processorNames, Collection<Artifact> messages, diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java index d974deb37e..7661970157 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java @@ -71,6 +71,7 @@ import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction; import com.google.devtools.build.lib.packages.TargetUtils; @@ -1069,8 +1070,8 @@ public final class CompilationSupport { * <p>Required as a hack to the link command line because that may contain two commands, which are * then passed to {@code /bin/bash -c}, and accordingly need to be a single argument. */ - private static class SingleArgCommandLine extends CommandLine { - + @Immutable // if original is immutable + private static final class SingleArgCommandLine extends CommandLine { private final CommandLine original; private SingleArgCommandLine(CommandLine original) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java index 2b01aec41a..c375701f14 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java @@ -40,6 +40,7 @@ import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.cpp.CppFileTypes; @@ -560,7 +561,8 @@ public final class PyCommon { } // Used purely to set the legacy ActionType of the ExtraActionInfo. - private static class PyPseudoAction extends PseudoAction<PythonInfo> { + @Immutable + private static final class PyPseudoAction extends PseudoAction<PythonInfo> { private static final UUID ACTION_UUID = UUID.fromString("8d720129-bc1a-481f-8c4c-dbe11dcef319"); public PyPseudoAction(ActionOwner owner, @@ -569,10 +571,5 @@ public final class PyCommon { PythonInfo info) { super(ACTION_UUID, owner, inputs, outputs, mnemonic, infoExtension, info); } - - @Override - public ExtraActionInfo.Builder getExtraActionInfo() { - return super.getExtraActionInfo(); - } } } |