Remove CppRuleClasses.LANGUAGE and LanguageDependentFragment and turn LibraryLanguage into an enum.
RELNOTES: None.
PiperOrigin-RevId: 219173902
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LanguageDependentFragment.java b/src/main/java/com/google/devtools/build/lib/analysis/LanguageDependentFragment.java
deleted file mode 100644
index 6dd8963..0000000
--- a/src/main/java/com/google/devtools/build/lib/analysis/LanguageDependentFragment.java
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2014 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.analysis;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import java.util.Objects;
-
-/**
- * Transitive info provider for rules that behave differently when used from
- * different languages.
- *
- * <p>Most rules generate code for a particular language or are totally language independent.
- * Some rules, however, behave differently when depended upon from different languages.
- * They might generate different libraries when used from different languages (and with
- * different API versions). This interface allows code sharing between implementations.
- *
- * <p>This provider is not really a roll-up of transitive information.
- */
-@Immutable
-@AutoCodec
-public final class LanguageDependentFragment implements TransitiveInfoProvider {
- /**
- * A language that can be supported by a multi-language configured target.
- *
- * <p>Note that no {@code hashCode}/{@code equals} methods are provided, because these
- * objects are expected to be compared for object identity, which is the default.
- */
- @AutoCodec
- public static final class LibraryLanguage {
- private final String displayName;
-
- @AutoCodec.Instantiator
- public LibraryLanguage(String displayName) {
- this.displayName = displayName;
- }
-
- @Override
- public String toString() {
- return displayName;
- }
-
- @Override
- public boolean equals(Object other) {
- if (!(other instanceof LibraryLanguage)) {
- return false;
- }
- LibraryLanguage otherLanguage = (LibraryLanguage) other;
- return Objects.equals(displayName, otherLanguage.displayName);
- }
-
- @Override
- public int hashCode() {
- return displayName.hashCode();
- }
- }
-
- private final ImmutableSet<LibraryLanguage> languages;
-
- @AutoCodec.Instantiator
- public LanguageDependentFragment(ImmutableSet<LibraryLanguage> languages) {
- this.languages = languages;
- }
-
- /**
- * Returns a set of the languages the ConfiguredTarget generates output for.
- * For use only by rules that directly depend on this library via a "deps" attribute.
- */
- public ImmutableSet<LibraryLanguage> getSupportedLanguages() {
- return languages;
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java
index 67df1f6..d2b27f1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationHelper.java
@@ -29,7 +29,6 @@
import com.google.devtools.build.lib.actions.Artifact.SpecialArtifact;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
import com.google.devtools.build.lib.analysis.AnalysisUtils;
-import com.google.devtools.build.lib.analysis.LanguageDependentFragment;
import com.google.devtools.build.lib.analysis.OutputGroupInfo;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
@@ -713,9 +712,7 @@
}
/**
- * Disables checking that the deps actually are C++ rules. By default, the {@link #compile} method
- * uses {@link LanguageDependentFragment.Checker#depSupportsLanguage} to check that all deps
- * provide C++ providers.
+ * Disables checking that the deps actually are C++ rules.
*/
public CcCompilationHelper setCheckDepsGenerateCpp(boolean checkDepsGenerateCpp) {
this.checkDepsGenerateCpp = checkDepsGenerateCpp;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java
index 2010a2d..23a0e10 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java
@@ -24,7 +24,6 @@
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
import com.google.devtools.build.lib.analysis.AnalysisUtils;
import com.google.devtools.build.lib.analysis.FileProvider;
-import com.google.devtools.build.lib.analysis.LanguageDependentFragment;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -281,9 +280,7 @@
}
/**
- * Disables checking that the deps actually are C++ rules. By default, the {@link #link} method
- * uses {@link LanguageDependentFragment.Checker#depSupportsLanguage} to check that all deps
- * provide C++ providers.
+ * Disables checking that the deps actually are C++ rules.
*/
public CcLinkingHelper setCheckDepsGenerateCpp(boolean checkDepsGenerateCpp) {
this.checkDepsGenerateCpp = checkDepsGenerateCpp;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
index 85bbd08..581ff5a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
@@ -32,7 +32,6 @@
import static com.google.devtools.build.lib.rules.cpp.CppFileTypes.SHARED_LIBRARY;
import static com.google.devtools.build.lib.rules.cpp.CppFileTypes.VERSIONED_SHARED_LIBRARY;
-import com.google.devtools.build.lib.analysis.LanguageDependentFragment.LibraryLanguage;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.config.HostTransition;
@@ -109,8 +108,6 @@
.withSourceAttributes("srcs", "hdrs")
.withDependencyAttributes("deps", "data");
- public static final LibraryLanguage LANGUAGE = new LibraryLanguage("C++");
-
/** Implicit outputs for cc_binary rules. */
public static final SafeImplicitOutputsFunction CC_BINARY_STRIPPED =
fromTemplates("%{name}.stripped" + OsUtils.executableExtension());