Skip to content

Commit 78acd97

Browse files
l46kokcopybara-github
authored andcommitted
Fix CelContainer's toBuilder to properly copy aliases over
PiperOrigin-RevId: 789877509
1 parent 2b9a5c4 commit 78acd97

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

common/src/main/java/dev/cel/common/CelContainer.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,13 @@ public ImmutableSet<String> resolveCandidateNames(String typeName) {
252252
return candidates.add(typeName).build();
253253
}
254254

255-
public abstract Builder toBuilder();
255+
abstract Builder autoToBuilder();
256+
257+
public Builder toBuilder() {
258+
Builder builder = autoToBuilder();
259+
builder.aliases.putAll(aliases());
260+
return builder;
261+
}
256262

257263
public static Builder newBuilder() {
258264
return new AutoValue_CelContainer.Builder().setName("");

common/src/test/java/dev/cel/common/CelContainerTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,4 +198,15 @@ public void containerBuilder_addAbbreviationsCollidesWithContainer_throws() {
198198
"abbreviation collides with container name: name=my.alias.a, abbreviation=a,"
199199
+ " container=a.b.c.M.N");
200200
}
201+
202+
@Test
203+
public void container_toBuilderRoundTrip_retainsExistingProperties() {
204+
CelContainer container =
205+
CelContainer.newBuilder().setName("hello").addAlias("foo", "x.y").build();
206+
207+
container = container.toBuilder().addAlias("bar", "a.b").build();
208+
209+
assertThat(container.name()).isEqualTo("hello");
210+
assertThat(container.aliases()).containsExactly("foo", "x.y", "bar", "a.b").inOrder();
211+
}
201212
}

0 commit comments

Comments
 (0)