Skip to content

Commit b9a621b

Browse files
authored
Merge branch 'master' into 22404-getenv
2 parents 563742a + 9dcec10 commit b9a621b

File tree

105 files changed

+1381
-901
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+1381
-901
lines changed

MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ bazel_dep(name = "with_cfg.bzl", version = "0.2.4")
3535
bazel_dep(name = "abseil-cpp", version = "20230125.1")
3636

3737
# TODO(fmeum): Remove the dependency on buildozer after Bazel is built with 7.2.0.
38-
bazel_dep(name = "buildozer", version = "7.1.1.1")
38+
bazel_dep(name = "buildozer", version = "7.1.2")
3939

4040
# TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR.
4141
bazel_dep(name = "remoteapis", version = "")

MODULE.bazel.lock

Lines changed: 24 additions & 48 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/MODULE.tools

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ bazel_dep(name = "rules_license", version = "0.0.3")
1010
bazel_dep(name = "rules_proto", version = "4.0.0")
1111
bazel_dep(name = "rules_python", version = "0.22.1")
1212

13-
bazel_dep(name = "buildozer", version = "7.1.1.1")
13+
bazel_dep(name = "buildozer", version = "7.1.2")
1414
bazel_dep(name = "platforms", version = "0.0.9")
1515
bazel_dep(name = "protobuf", version = "3.19.6", repo_name = "com_google_protobuf")
1616
bazel_dep(name = "zlib", version = "1.3")

src/main/java/com/google/devtools/build/lib/analysis/AliasProvider.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ public final class AliasProvider implements TransitiveInfoProvider {
3030
// We don't expect long alias chains, so it's better to have a list instead of a nested set
3131
private final ImmutableList<Label> aliasChain;
3232

33+
/** Singleton instance of {@link LateBoundAliasProvider}. */
34+
public static final LateBoundAliasProvider LATE_BOUND_ALIAS_PROVIDER =
35+
new LateBoundAliasProvider();
36+
3337
private AliasProvider(ImmutableList<Label> aliasChain) {
3438
this.aliasChain = aliasChain;
3539
}
@@ -156,6 +160,18 @@ public static boolean mayBeAlias(Target target) {
156160
}
157161
AdvertisedProviderSet providerSet = rule.getRuleClassObject().getAdvertisedProviders();
158162
return providerSet.canHaveAnyProvider()
159-
|| providerSet.getBuiltinProviders().contains(AliasProvider.class);
163+
|| providerSet.getBuiltinProviders().contains(AliasProvider.class)
164+
|| providerSet.getBuiltinProviders().contains(LateBoundAliasProvider.class);
165+
}
166+
167+
/**
168+
* A provider to be advertised by {@link LateBoundAlias} rules.
169+
*
170+
* <p>This is a separate provider from {@link AliasProvider} because {@link LateBoundAlias} rules
171+
* do not always create an {@link AliasProvider}.
172+
*/
173+
@Immutable
174+
public static final class LateBoundAliasProvider implements TransitiveInfoProvider {
175+
private LateBoundAliasProvider() {}
160176
}
161177
}

src/main/java/com/google/devtools/build/lib/analysis/BUILD

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ java_library(
7777
":config/transitions/composing_transition_factory",
7878
":config/transitions/configuration_transition",
7979
":config/transitions/no_transition",
80-
":config/transitions/null_transition",
8180
":config/transitions/patch_transition",
8281
":config/transitions/split_transition",
8382
":config/transitions/transition_factory",
@@ -2021,6 +2020,7 @@ java_library(
20212020
"//src/main/java/com/google/devtools/build/lib/events",
20222021
"//src/main/java/com/google/devtools/build/lib/packages",
20232022
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/config",
2023+
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/config:configuration_transition_api",
20242024
"//src/main/java/com/google/devtools/build/lib/util",
20252025
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
20262026
"//src/main/java/com/google/devtools/common/options",
@@ -2050,7 +2050,6 @@ java_library(
20502050
deps = [
20512051
":config/transitions/configuration_transition",
20522052
":config/transitions/no_transition",
2053-
":config/transitions/null_transition",
20542053
":config/transitions/split_transition",
20552054
":config/transitions/transition_factory",
20562055
"//third_party:auto_value",
@@ -2119,7 +2118,6 @@ java_library(
21192118
":config/build_options",
21202119
":config/transitions/configuration_transition",
21212120
":config/transitions/no_transition",
2122-
":config/transitions/null_transition",
21232121
":required_config_fragments_provider",
21242122
"//src/main/java/com/google/devtools/build/lib/events",
21252123
"//third_party:guava",
@@ -2133,7 +2131,6 @@ java_library(
21332131
":config/transitions/composing_transition",
21342132
":config/transitions/configuration_transition",
21352133
":config/transitions/no_transition",
2136-
":config/transitions/null_transition",
21372134
":config/transitions/transition_factory",
21382135
"//third_party:auto_value",
21392136
"//third_party:guava",
@@ -2168,21 +2165,7 @@ java_library(
21682165
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
21692166
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
21702167
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/config",
2171-
"//third_party:auto_value",
2172-
],
2173-
)
2174-
2175-
java_library(
2176-
name = "config/transitions/null_transition",
2177-
srcs = ["config/transitions/NullTransition.java"],
2178-
deps = [
2179-
":config/build_options",
2180-
":config/transitions/configuration_transition",
2181-
":config/transitions/patch_transition",
2182-
":config/transitions/transition_factory",
2183-
"//src/main/java/com/google/devtools/build/lib/events",
2184-
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
2185-
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
2168+
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/config:configuration_transition_api",
21862169
"//third_party:auto_value",
21872170
],
21882171
)
@@ -2603,6 +2586,7 @@ java_library(
26032586
":config/transitions/no_transition",
26042587
"//src/main/java/com/google/devtools/build/lib/packages",
26052588
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/config",
2589+
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/config:configuration_transition_api",
26062590
"//src/main/java/net/starlark/java/eval",
26072591
],
26082592
)

src/main/java/com/google/devtools/build/lib/analysis/config/TransitionFactories.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import com.google.auto.value.AutoValue;
1717
import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
1818
import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
19-
import com.google.devtools.build.lib.analysis.config.transitions.NullTransition;
2019
import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
2120
import com.google.devtools.build.lib.analysis.config.transitions.TransitionFactory;
2221

@@ -33,8 +32,6 @@ public static <T extends TransitionFactory.Data> TransitionFactory<T> of(
3332
ConfigurationTransition transition) {
3433
if (transition instanceof NoTransition) {
3534
return NoTransition.createFactory();
36-
} else if (transition instanceof NullTransition) {
37-
return NullTransition.createFactory();
3835
} else if (transition instanceof SplitTransition splitTransition) {
3936
return split(splitTransition);
4037
}

src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransition.java

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -119,29 +119,17 @@ public static ConfigurationTransition of(
119119
Preconditions.checkNotNull(transition1);
120120
Preconditions.checkNotNull(transition2);
121121

122-
if (isFinal(transition1)) {
123-
// Since no other transition can be composed with transition1, use it directly.
124-
return transition1;
125-
} else if (transition1 == NoTransition.INSTANCE) {
122+
if (transition1 == NoTransition.INSTANCE) {
126123
// Since transition1 causes no changes, use transition2 directly.
127124
return transition2;
128-
}
129-
130-
if (transition2 == NoTransition.INSTANCE) {
125+
} else if (transition2 == NoTransition.INSTANCE) {
131126
// Since transition2 causes no changes, use transition 1 directly.
132127
return transition1;
133-
} else if (isFinal(transition2)) {
134-
// When the second transition is null, there's no need to compose.
135-
return transition2;
136128
}
137129

138130
return new ComposingTransition(transition1, transition2);
139131
}
140132

141-
private static boolean isFinal(ConfigurationTransition transition) {
142-
return transition == NullTransition.INSTANCE;
143-
}
144-
145133
/**
146134
* Composes a new key out of two given keys. Composing two split transitions is not allowed at the
147135
* moment, so what this essentially does are (1) make sure not both transitions are split and (2)

src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransitionFactory.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,30 +51,17 @@ public static <T extends TransitionFactory.Data> TransitionFactory<T> of(
5151
!transitionFactory1.isSplit() || !transitionFactory2.isSplit(),
5252
"can't compose two split transition factories");
5353

54-
if (isFinal(transitionFactory1)) {
55-
// Since no other transition can be composed with transitionFactory1, use it directly.
56-
return transitionFactory1;
57-
} else if (NoTransition.isInstance(transitionFactory1)) {
54+
if (NoTransition.isInstance(transitionFactory1)) {
5855
// Since transitionFactory1 causes no changes, use transitionFactory2 directly.
5956
return transitionFactory2;
60-
}
61-
62-
if (NoTransition.isInstance(transitionFactory2)) {
57+
} else if (NoTransition.isInstance(transitionFactory2)) {
6358
// Since transitionFactory2 causes no changes, use transitionFactory1 directly.
6459
return transitionFactory1;
65-
} else if (isFinal(transitionFactory2)) {
66-
// When the second transition is null there's no need to compose.
67-
return transitionFactory2;
6860
}
6961

7062
return create(transitionFactory1, transitionFactory2);
7163
}
7264

73-
private static <T extends TransitionFactory.Data> boolean isFinal(
74-
TransitionFactory<T> transitionFactory) {
75-
return NullTransition.isInstance(transitionFactory);
76-
}
77-
7865
private static <T extends TransitionFactory.Data> TransitionFactory<T> create(
7966
TransitionFactory<T> transitionFactory1, TransitionFactory<T> transitionFactory2) {
8067
return new AutoValue_ComposingTransitionFactory<T>(transitionFactory1, transitionFactory2);

0 commit comments

Comments
 (0)