aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java3
4 files changed, 9 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
index c209e61a1a..ff3d0dae83 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
@@ -141,12 +141,10 @@ public final class BuildOptions implements Cloneable, Serializable {
/**
* Returns the actual instance of a FragmentOptions class.
*/
- @SuppressWarnings("unchecked")
public <T extends FragmentOptions> T get(Class<T> optionsClass) {
FragmentOptions options = fragmentOptionsMap.get(optionsClass);
Preconditions.checkNotNull(options);
- Preconditions.checkArgument(optionsClass.isAssignableFrom(options.getClass()));
- return (T) options;
+ return optionsClass.cast(options);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 63ff4ff41e..7ae7beb171 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -359,7 +359,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
protected CppConfiguration(CppConfigurationParameters params)
throws InvalidConfigurationException {
CrosstoolConfig.CToolchain toolchain = params.toolchain;
- cppOptions = params.buildOptions.get(CppOptions.class);
+ cppOptions = params.cppOptions;
this.hostSystemName = toolchain.getHostSystemName();
this.compiler = toolchain.getCompiler();
this.targetCpu = toolchain.getTargetCpu();
@@ -368,8 +368,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
this.targetLibc = toolchain.getTargetLibc();
this.crosstoolTop = params.crosstoolTop;
this.ccToolchainLabel = params.ccToolchainLabel;
- this.compilationMode =
- params.buildOptions.get(BuildConfiguration.Options.class).compilationMode;
+ this.compilationMode = params.commonOptions.compilationMode;
this.lipoContextCollector = cppOptions.lipoCollector;
this.execRoot = params.execRoot;
@@ -411,7 +410,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
}
this.fdoSupport = new FdoSupport(
- params.buildOptions.get(CppOptions.class).fdoInstrument, params.fdoZip,
+ cppOptions.fdoInstrument, params.fdoZip,
cppOptions.lipoMode, execRoot);
this.stripBinaries =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
index a68b800bd4..2b200f9ef4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
@@ -88,7 +88,8 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory {
public static class CppConfigurationParameters {
protected final CrosstoolConfig.CToolchain toolchain;
protected final String cacheKeySuffix;
- protected final BuildOptions buildOptions;
+ protected final BuildConfiguration.Options commonOptions;
+ protected final CppOptions cppOptions;
protected final Label crosstoolTop;
protected final Label ccToolchainLabel;
protected final Path fdoZip;
@@ -103,7 +104,8 @@ public class CppConfigurationLoader implements ConfigurationFragmentFactory {
Label ccToolchainLabel) {
this.toolchain = toolchain;
this.cacheKeySuffix = cacheKeySuffix;
- this.buildOptions = buildOptions;
+ this.commonOptions = buildOptions.get(BuildConfiguration.Options.class);
+ this.cppOptions = buildOptions.get(CppOptions.class);
this.fdoZip = fdoZip;
this.execRoot = execRoot;
this.crosstoolTop = crosstoolTop;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java
index 95ff677240..95bd400795 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java
@@ -72,7 +72,6 @@ class SkyframePackageLoaderWithValueEnvironment implements PackageProviderForCon
}
}
- @SuppressWarnings("unchecked")
@Override
public <T extends Fragment> T getFragment(BuildOptions buildOptions, Class<T> fragmentType)
throws InvalidConfigurationException {
@@ -82,7 +81,7 @@ class SkyframePackageLoaderWithValueEnvironment implements PackageProviderForCon
if (fragmentNode == null) {
return null;
}
- return (T) fragmentNode.getFragment();
+ return fragmentType.cast(fragmentNode.getFragment());
}
@Override