Remove most of the nocopts-handling java code from bazel.

Leaving the params in to avoid blaze crashes until we're sure no bzl files will pass it anymore.

RELNOTES:
Remove CoptsFilter. rules_cc 0.2.19 no longer uses it..
PiperOrigin-RevId: 935030016
Change-Id: I4534565598bbbbc51bdad0436de43e6e7f0e87c6
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
index 570bc27..427c759 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
@@ -19,12 +19,8 @@
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.CollidingProvidesException;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
 import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType;
-import java.util.regex.Pattern;
 import net.starlark.java.eval.EvalException;
-import net.starlark.java.eval.Printer;
 import net.starlark.java.eval.Starlark;
-import net.starlark.java.eval.StarlarkSemantics;
-import net.starlark.java.eval.StarlarkValue;
 
 /** Common parts of the implementation of cc rules. */
 public final class CcCommon {
@@ -98,52 +94,6 @@
     }
   }
 
-  /** A filter that removes copts from a c++ compile action according to a nocopts regex. */
-  public static final class CoptsFilter implements StarlarkValue {
-    private final Pattern noCoptsPattern;
-    private final boolean allPasses;
-
-    private CoptsFilter(Pattern noCoptsPattern, boolean allPasses) {
-      this.noCoptsPattern = noCoptsPattern;
-      this.allPasses = allPasses;
-    }
-
-    /** Creates a filter that filters all matches to a regex. */
-    public static CoptsFilter fromRegex(Pattern noCoptsPattern) {
-      return new CoptsFilter(noCoptsPattern, false);
-    }
-
-    /** Creates a filter that passes on all inputs. */
-    public static CoptsFilter alwaysPasses() {
-      return new CoptsFilter(null, true);
-    }
-
-    /**
-     * Returns true if the provided string passes through the filter, or false if it should be
-     * removed.
-     */
-    public boolean passesFilter(String flag) {
-      if (allPasses) {
-        return true;
-      } else {
-        return !noCoptsPattern.matcher(flag).matches();
-      }
-    }
-
-    @Override
-    public boolean isImmutable() {
-      return true;
-    }
-
-    @Override
-    public void repr(Printer printer, StarlarkSemantics semantics) {
-      printer.append("CoptsFilter(noCoptsPattern=");
-      printer.append(noCoptsPattern == null ? "null" : noCoptsPattern.pattern());
-      printer.append(", allPasses=");
-      printer.append(Boolean.toString(allPasses));
-      printer.append(")");
-    }
-  }
 
   private static ImmutableList<String> getCoverageFeatures(CppConfiguration cppConfiguration) {
     ImmutableList.Builder<String> coverageFeatures = ImmutableList.builder();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
index f9a0692..00a2702 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
@@ -18,7 +18,6 @@
 import static com.google.devtools.build.lib.analysis.constraints.ConstraintConstants.getOsFromConstraintsOrHost;
 import static com.google.devtools.build.lib.rules.cpp.CcModule.nullIfNone;
 
-import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -55,7 +54,6 @@
 import com.google.devtools.build.lib.packages.TargetUtils;
 import com.google.devtools.build.lib.packages.Types;
 import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
-import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter;
 import com.google.devtools.build.lib.rules.cpp.CcCompilationContext.HeaderInfo;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.MapVariables;
@@ -65,8 +63,6 @@
 import com.google.devtools.build.lib.vfs.PathFragment;
 import java.util.IdentityHashMap;
 import java.util.Objects;
-import java.util.regex.Pattern;
-import java.util.regex.PatternSyntaxException;
 import javax.annotation.Nullable;
 import net.starlark.java.annot.Param;
 import net.starlark.java.annot.ParamType;
@@ -814,16 +810,13 @@
           "action_construction_context must be either StarlarkRuleContext or"
               + " StarlarkTemplateContext");
     }
-    CoptsFilter coptsFilter =
-        createCoptsFilter(
-            Starlark.isNullOrNone(coptsFilterObject) ? null : (String) coptsFilterObject);
+
     CppCompileActionBuilder builder =
         createCppCompileActionBuilder(
             ccActionContext.getActionOwner(),
             CcCompilationContext.of(ccCompilationContext),
             ccToolchain,
             configuration,
-            coptsFilter,
             featureConfigurationForStarlark,
             sourceArtifact,
             additionalCompilationInputs,
@@ -944,19 +937,6 @@
     }
   }
 
-  private CoptsFilter createCoptsFilter(String coptsFilterString) throws EvalException {
-    if (Strings.isNullOrEmpty(coptsFilterString)) {
-      return CoptsFilter.alwaysPasses();
-    } else {
-      try {
-        return CoptsFilter.fromRegex(Pattern.compile(coptsFilterString));
-      } catch (PatternSyntaxException e) {
-        throw Starlark.errorf(
-            "invalid regular expression '%s': %s", coptsFilterString, e.getMessage());
-      }
-    }
-  }
-
   @StarlarkMethod(
       name = "create_cc_compile_action_template",
       documented = false,
@@ -1016,9 +996,7 @@
       boolean needsIncludeValidation,
       String toolchainType)
       throws RuleErrorException, EvalException {
-    CoptsFilter coptsFilter =
-        createCoptsFilter(
-            Starlark.isNullOrNone(coptsFilterObject) ? null : (String) coptsFilterObject);
+
     ImmutableList.Builder<ArtifactCategory> outputCategories = ImmutableList.builder();
     for (Object outputCategoryObject : outputCategoriesUnchecked) {
       if (outputCategoryObject instanceof String outputCategoryString) {
@@ -1049,7 +1027,6 @@
             CcCompilationContext.of(ccCompilationContext),
             ccToolchain,
             configuration,
-            coptsFilter,
             featureConfigurationForStarlark,
             source,
             additionalCompilationInputs,
@@ -1089,7 +1066,6 @@
       CcCompilationContext ccCompilationContext,
       StarlarkInfo ccToolchain,
       BuildConfigurationValue configuration,
-      CoptsFilter coptsFilter,
       FeatureConfigurationForStarlark featureConfigurationForStarlark,
       Artifact sourceArtifact,
       Sequence<?> additionalCompilationInputs,
@@ -1108,7 +1084,6 @@
         new CppCompileActionBuilder(owner, CcToolchainProvider.create(ccToolchain), configuration)
             .setSourceFile(sourceArtifact)
             .setCcCompilationContext(ccCompilationContext)
-            .setCoptsFilter(coptsFilter)
             .setFeatureConfiguration(featureConfigurationForStarlark.getFeatureConfiguration())
             .addExecutionInfo(executionInfo);
     if (additionalCompilationInputs.size() > 0) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
index cabfccb..3606cd5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
@@ -21,7 +21,6 @@
 import com.google.devtools.build.lib.actions.CommandLine;
 import com.google.devtools.build.lib.actions.CommandLineExpansionException;
 import com.google.devtools.build.lib.actions.PathMapper;
-import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.ExpansionException;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
 import com.google.devtools.build.lib.util.Pair;
@@ -33,17 +32,14 @@
 
 /** The compile command line for the C++ compile action. */
 public final class CompileCommandLine {
-  private final CoptsFilter coptsFilter;
   private final FeatureConfiguration featureConfiguration;
   private final CcToolchainVariables variables;
   private final String actionName;
 
   private CompileCommandLine(
-      CoptsFilter coptsFilter,
       FeatureConfiguration featureConfiguration,
       CcToolchainVariables variables,
       String actionName) {
-    this.coptsFilter = coptsFilter;
     this.featureConfiguration = Preconditions.checkNotNull(featureConfiguration);
     this.variables = variables;
     this.actionName = actionName;
@@ -167,7 +163,7 @@
     }
   }
 
-  // For each option in 'in', add it to 'out' unless it is matched by the 'coptsFilter' regexp.
+  // For each option in 'in', add it to 'out'.
   private void addFilteredOptions(
       List<String> out, List<Pair<String, List<String>>> expandedFeatures) {
     for (Pair<String, List<String>> pair : expandedFeatures) {
@@ -178,9 +174,7 @@
       // We do not uses Java's stream API here as it causes a substantial overhead compared to the
       // very little work that this is actually doing.
       for (String flag : pair.getSecond()) {
-        if (coptsFilter.passesFilter(flag)) {
-          out.add(flag);
-        }
+        out.add(flag);
       }
     }
   }
@@ -210,27 +204,24 @@
     }
   }
 
-  public static Builder builder(CoptsFilter coptsFilter, String actionName) {
-    return new Builder(coptsFilter, actionName);
+  public static Builder builder(String actionName) {
+    return new Builder(actionName);
   }
 
   /** A builder for a {@link CompileCommandLine}. */
   public static final class Builder {
-    private CoptsFilter coptsFilter;
     private FeatureConfiguration featureConfiguration;
     private CcToolchainVariables variables = CcToolchainVariables.empty();
     private final String actionName;
 
     public CompileCommandLine build() {
       return new CompileCommandLine(
-          Preconditions.checkNotNull(coptsFilter),
           Preconditions.checkNotNull(featureConfiguration),
           Preconditions.checkNotNull(variables),
           Preconditions.checkNotNull(actionName));
     }
 
-    private Builder(CoptsFilter coptsFilter, String actionName) {
-      this.coptsFilter = coptsFilter;
+    private Builder(String actionName) {
       this.actionName = actionName;
     }
 
@@ -247,11 +238,5 @@
       return this;
     }
 
-    @CanIgnoreReturnValue
-    @VisibleForTesting
-    Builder setCoptsFilter(CoptsFilter filter) {
-      this.coptsFilter = Preconditions.checkNotNull(filter);
-      return this;
-    }
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
index 7e1abaa..8d8b237 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
@@ -74,7 +74,6 @@
 import com.google.devtools.build.lib.profiler.Profiler;
 import com.google.devtools.build.lib.profiler.ProfilerTask;
 import com.google.devtools.build.lib.profiler.SilentCloseable;
-import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
 import com.google.devtools.build.lib.rules.cpp.IncludeScanner.IncludeScanningHeaderData;
 import com.google.devtools.build.lib.server.FailureDetails.CppCompile;
@@ -233,7 +232,6 @@
    * @param dwoFile the .dwo output file where debug information is stored for Fission builds (null
    *     if Fission mode is disabled)
    * @param ccCompilationContext the {@code CcCompilationContext}
-   * @param coptsFilter regular expression to remove options from {@code copts}
    * @param additionalIncludeScanningRoots list of additional artifacts to include-scan
    * @param actionName a string giving the name of this action for the purpose of toolchain
    *     evaluation
@@ -263,7 +261,6 @@
       @Nullable Artifact dwoFile,
       @Nullable Artifact ltoIndexingFile,
       CcCompilationContext ccCompilationContext,
-      CoptsFilter coptsFilter,
       ImmutableList<Artifact> additionalIncludeScanningRoots,
       ImmutableMap<String, String> executionInfo,
       String actionName,
@@ -299,8 +296,7 @@
     this.builtinIncludeFiles = builtinIncludeFiles;
     this.additionalIncludeScanningRoots =
         Preconditions.checkNotNull(additionalIncludeScanningRoots);
-    this.compileCommandLine =
-        buildCommandLine(coptsFilter, actionName, featureConfiguration, variables);
+    this.compileCommandLine = buildCommandLine(actionName, featureConfiguration, variables);
     this.executionInfo = executionInfo;
     this.actionName = actionName;
     this.progressMessagePrefix = progressMessagePrefix;
@@ -423,11 +419,10 @@
   }
 
   static CompileCommandLine buildCommandLine(
-      CoptsFilter coptsFilter,
       String actionName,
       FeatureConfiguration featureConfiguration,
       CcToolchainVariables variables) {
-    return CompileCommandLine.builder(coptsFilter, actionName)
+    return CompileCommandLine.builder(actionName)
         .setFeatureConfiguration(featureConfiguration)
         .setVariables(variables)
         .build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
index 6fc5d23..3f18da2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
@@ -28,7 +28,6 @@
 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.rules.cpp.CcCommon.CoptsFilter;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.errorprone.annotations.CanIgnoreReturnValue;
@@ -62,7 +61,6 @@
   private Artifact gcnoFile;
   private CcCompilationContext ccCompilationContext = null;
   private final List<String> pluginOpts = new ArrayList<>();
-  private CoptsFilter coptsFilter = CoptsFilter.alwaysPasses();
   private ImmutableList<PathFragment> extraSystemIncludePrefixes = ImmutableList.of();
   private boolean usePic;
   private final CppConfiguration cppConfiguration;
@@ -122,7 +120,6 @@
     this.gcnoFile = other.gcnoFile;
     this.ccCompilationContext = other.ccCompilationContext;
     this.pluginOpts.addAll(other.pluginOpts);
-    this.coptsFilter = other.coptsFilter;
     this.extraSystemIncludePrefixes = other.extraSystemIncludePrefixes;
     this.cppConfiguration = other.cppConfiguration;
     this.configuration = other.configuration;
@@ -334,7 +331,6 @@
         dwoFile,
         ltoIndexingFile,
         ccCompilationContext,
-        coptsFilter,
         ImmutableList.copyOf(additionalIncludeScanningRoots),
         ImmutableMap.copyOf(executionInfo),
         actionName,
@@ -588,16 +584,6 @@
   }
 
   @CanIgnoreReturnValue
-  public CppCompileActionBuilder setCoptsFilter(CoptsFilter coptsFilter) {
-    this.coptsFilter = Preconditions.checkNotNull(coptsFilter);
-    return this;
-  }
-
-  CoptsFilter getCoptsFilter() {
-    return coptsFilter;
-  }
-
-  @CanIgnoreReturnValue
   public CppCompileActionBuilder setBuildInfoHeaderArtifacts(
       ImmutableList<Artifact> buildInfoHeaderArtifacts) {
     this.buildInfoHeaderArtifacts = buildInfoHeaderArtifacts;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
index 79bb552..0041962 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
@@ -205,7 +205,6 @@
       throws CommandLineExpansionException, InterruptedException {
     CompileCommandLine commandLine =
         CppCompileAction.buildCommandLine(
-            cppCompileActionBuilder.getCoptsFilter(),
             CppActionNames.CPP_COMPILE,
             cppCompileActionBuilder.getFeatureConfiguration(),
             cppCompileActionBuilder.getVariables());
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java
index 50cdd28..ce37db0 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java
@@ -20,7 +20,6 @@
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
 import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
 import com.google.devtools.build.lib.packages.util.ResourceLoader;
-import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
 import com.google.devtools.build.lib.testutil.TestConstants;
 import java.io.IOException;
@@ -149,6 +148,6 @@
   }
 
   private CompileCommandLine.Builder makeCompileCommandLineBuilder() throws Exception {
-    return CompileCommandLine.builder(CoptsFilter.alwaysPasses(), "c++-compile");
+    return CompileCommandLine.builder("c++-compile");
   }
 }