Skip to content

Commit 09db2c2

Browse files
cpovirkGoogle Java Core Libraries
authored and
Google Java Core Libraries
committedMay 26, 2023
Remove Sets.complementOf from guava-gwt.
Previously, it was present but failed at runtime under J2CL. And soon, J2CL may drop support for the reflective enum-related APIs that it depends on. `guava-gwt` is used by both GWT and J2CL users, so we have to keep our code buildable against both. If this CL causes trouble for you as a GWT user, let us know, and we can investigate options further. In the worst case, you can copy the implementation as needed, since `complementOf` is a static method. RELNOTES=`collect`: Removed `Sets.complementOf` from `guava-gwt` to prepare for the removal of reflective enum-related APIs from J2CL. If this causes you problems as a GWT user, let us know. PiperOrigin-RevId: 535589407
1 parent c3a155d commit 09db2c2

File tree

4 files changed

+22
-0
lines changed

4 files changed

+22
-0
lines changed
 

‎android/guava-tests/test/com/google/common/collect/SetsTest.java

+8
Original file line numberDiff line numberDiff line change
@@ -578,48 +578,56 @@ public void testNewCOWASFromIterable() {
578578
verifySetContents(set, SOME_COLLECTION);
579579
}
580580

581+
@GwtIncompatible // complementOf
581582
public void testComplementOfEnumSet() {
582583
Set<SomeEnum> units = EnumSet.of(SomeEnum.B, SomeEnum.D);
583584
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units);
584585
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
585586
}
586587

588+
@GwtIncompatible // complementOf
587589
public void testComplementOfEnumSetWithType() {
588590
Set<SomeEnum> units = EnumSet.of(SomeEnum.B, SomeEnum.D);
589591
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units, SomeEnum.class);
590592
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
591593
}
592594

595+
@GwtIncompatible // complementOf
593596
public void testComplementOfRegularSet() {
594597
Set<SomeEnum> units = Sets.newHashSet(SomeEnum.B, SomeEnum.D);
595598
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units);
596599
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
597600
}
598601

602+
@GwtIncompatible // complementOf
599603
public void testComplementOfRegularSetWithType() {
600604
Set<SomeEnum> units = Sets.newHashSet(SomeEnum.B, SomeEnum.D);
601605
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units, SomeEnum.class);
602606
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
603607
}
604608

609+
@GwtIncompatible // complementOf
605610
public void testComplementOfEmptySet() {
606611
Set<SomeEnum> noUnits = Collections.emptySet();
607612
EnumSet<SomeEnum> allUnits = Sets.complementOf(noUnits, SomeEnum.class);
608613
verifySetContents(EnumSet.allOf(SomeEnum.class), allUnits);
609614
}
610615

616+
@GwtIncompatible // complementOf
611617
public void testComplementOfFullSet() {
612618
Set<SomeEnum> allUnits = Sets.newHashSet(SomeEnum.values());
613619
EnumSet<SomeEnum> noUnits = Sets.complementOf(allUnits, SomeEnum.class);
614620
verifySetContents(noUnits, EnumSet.noneOf(SomeEnum.class));
615621
}
616622

623+
@GwtIncompatible // complementOf
617624
public void testComplementOfEmptyEnumSetWithoutType() {
618625
Set<SomeEnum> noUnits = EnumSet.noneOf(SomeEnum.class);
619626
EnumSet<SomeEnum> allUnits = Sets.complementOf(noUnits);
620627
verifySetContents(allUnits, EnumSet.allOf(SomeEnum.class));
621628
}
622629

630+
@GwtIncompatible // complementOf
623631
public void testComplementOfEmptySetWithoutTypeDoesntWork() {
624632
Set<SomeEnum> set = Collections.emptySet();
625633
try {

‎android/guava/src/com/google/common/collect/Sets.java

+3
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,7 @@ public static <E extends Comparable> TreeSet<E> newTreeSet(Iterable<? extends E>
466466
* contains no elements
467467
*/
468468
@J2ktIncompatible
469+
@GwtIncompatible
469470
public static <E extends Enum<E>> EnumSet<E> complementOf(Collection<E> collection) {
470471
if (collection instanceof EnumSet) {
471472
return EnumSet.complementOf((EnumSet<E>) collection);
@@ -486,6 +487,7 @@ public static <E extends Enum<E>> EnumSet<E> complementOf(Collection<E> collecti
486487
* @return a new, modifiable {@code EnumSet} initially containing all the values of the enum not
487488
* present in the given collection
488489
*/
490+
@GwtIncompatible
489491
public static <E extends Enum<E>> EnumSet<E> complementOf(
490492
Collection<E> collection, Class<E> type) {
491493
checkNotNull(collection);
@@ -494,6 +496,7 @@ public static <E extends Enum<E>> EnumSet<E> complementOf(
494496
: makeComplementByHand(collection, type);
495497
}
496498

499+
@GwtIncompatible
497500
private static <E extends Enum<E>> EnumSet<E> makeComplementByHand(
498501
Collection<E> collection, Class<E> type) {
499502
EnumSet<E> result = EnumSet.allOf(type);

‎guava-tests/test/com/google/common/collect/SetsTest.java

+8
Original file line numberDiff line numberDiff line change
@@ -609,48 +609,56 @@ public void testNewCOWASFromIterable() {
609609
verifySetContents(set, SOME_COLLECTION);
610610
}
611611

612+
@GwtIncompatible // complementOf
612613
public void testComplementOfEnumSet() {
613614
Set<SomeEnum> units = EnumSet.of(SomeEnum.B, SomeEnum.D);
614615
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units);
615616
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
616617
}
617618

619+
@GwtIncompatible // complementOf
618620
public void testComplementOfEnumSetWithType() {
619621
Set<SomeEnum> units = EnumSet.of(SomeEnum.B, SomeEnum.D);
620622
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units, SomeEnum.class);
621623
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
622624
}
623625

626+
@GwtIncompatible // complementOf
624627
public void testComplementOfRegularSet() {
625628
Set<SomeEnum> units = Sets.newHashSet(SomeEnum.B, SomeEnum.D);
626629
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units);
627630
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
628631
}
629632

633+
@GwtIncompatible // complementOf
630634
public void testComplementOfRegularSetWithType() {
631635
Set<SomeEnum> units = Sets.newHashSet(SomeEnum.B, SomeEnum.D);
632636
EnumSet<SomeEnum> otherUnits = Sets.complementOf(units, SomeEnum.class);
633637
verifySetContents(otherUnits, EnumSet.of(SomeEnum.A, SomeEnum.C));
634638
}
635639

640+
@GwtIncompatible // complementOf
636641
public void testComplementOfEmptySet() {
637642
Set<SomeEnum> noUnits = Collections.emptySet();
638643
EnumSet<SomeEnum> allUnits = Sets.complementOf(noUnits, SomeEnum.class);
639644
verifySetContents(EnumSet.allOf(SomeEnum.class), allUnits);
640645
}
641646

647+
@GwtIncompatible // complementOf
642648
public void testComplementOfFullSet() {
643649
Set<SomeEnum> allUnits = Sets.newHashSet(SomeEnum.values());
644650
EnumSet<SomeEnum> noUnits = Sets.complementOf(allUnits, SomeEnum.class);
645651
verifySetContents(noUnits, EnumSet.noneOf(SomeEnum.class));
646652
}
647653

654+
@GwtIncompatible // complementOf
648655
public void testComplementOfEmptyEnumSetWithoutType() {
649656
Set<SomeEnum> noUnits = EnumSet.noneOf(SomeEnum.class);
650657
EnumSet<SomeEnum> allUnits = Sets.complementOf(noUnits);
651658
verifySetContents(allUnits, EnumSet.allOf(SomeEnum.class));
652659
}
653660

661+
@GwtIncompatible // complementOf
654662
public void testComplementOfEmptySetWithoutTypeDoesntWork() {
655663
Set<SomeEnum> set = Collections.emptySet();
656664
try {

‎guava/src/com/google/common/collect/Sets.java

+3
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,7 @@ public static <E extends Comparable> TreeSet<E> newTreeSet(Iterable<? extends E>
480480
* contains no elements
481481
*/
482482
@J2ktIncompatible
483+
@GwtIncompatible
483484
public static <E extends Enum<E>> EnumSet<E> complementOf(Collection<E> collection) {
484485
if (collection instanceof EnumSet) {
485486
return EnumSet.complementOf((EnumSet<E>) collection);
@@ -500,6 +501,7 @@ public static <E extends Enum<E>> EnumSet<E> complementOf(Collection<E> collecti
500501
* @return a new, modifiable {@code EnumSet} initially containing all the values of the enum not
501502
* present in the given collection
502503
*/
504+
@GwtIncompatible
503505
public static <E extends Enum<E>> EnumSet<E> complementOf(
504506
Collection<E> collection, Class<E> type) {
505507
checkNotNull(collection);
@@ -508,6 +510,7 @@ public static <E extends Enum<E>> EnumSet<E> complementOf(
508510
: makeComplementByHand(collection, type);
509511
}
510512

513+
@GwtIncompatible
511514
private static <E extends Enum<E>> EnumSet<E> makeComplementByHand(
512515
Collection<E> collection, Class<E> type) {
513516
EnumSet<E> result = EnumSet.allOf(type);

0 commit comments

Comments
 (0)
Please sign in to comment.