public class com.google.common.collect.testing.features.FeatureUtilTest extends junit.framework.TestCase
{
public void <init>()
{
com.google.common.collect.testing.features.FeatureUtilTest v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
specialinvoke v.<junit.framework.TestCase: void <init>()>();
return;
}
public void testTestFeatureEnums() throws java.lang.Exception
{
com.google.common.collect.testing.features.FeatureUtilTest v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
staticinvoke <com.google.common.collect.testing.features.FeatureEnumTest: void assertGoodFeatureEnum(java.lang.Class)>(class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleBaseFeature;");
staticinvoke <com.google.common.collect.testing.features.FeatureEnumTest: void assertGoodFeatureEnum(java.lang.Class)>(class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleDerivedFeature;");
return;
}
public void testAddImpliedFeatures_returnsSameSetInstance() throws java.lang.Exception
{
java.util.HashSet v;
java.lang.Object[] v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.util.Set v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set addImpliedFeatures(java.util.Set)>(v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertSame(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public void testAddImpliedFeatures_addsImpliedFeatures() throws java.lang.Exception
{
java.lang.Object[] v, v, v, v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v, v, v;
java.util.HashSet v, v, v;
com.google.common.truth.IterableSubject v, v, v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.util.Set v, v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature v, v, v, v, v, v, v, v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set addImpliedFeatures(java.util.Set)>(v);
v = staticinvoke <com.google.common.truth.Truth: com.google.common.truth.IterableSubject assertThat(java.lang.Iterable)>(v);
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
virtualinvoke v.<com.google.common.truth.IterableSubject: void contains(java.lang.Object)>(v);
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set addImpliedFeatures(java.util.Set)>(v);
v = staticinvoke <com.google.common.truth.Truth: com.google.common.truth.IterableSubject assertThat(java.lang.Iterable)>(v);
v = newarray (java.lang.Object)[2];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[0] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[1] = v;
virtualinvoke v.<com.google.common.truth.IterableSubject: com.google.common.truth.Ordered containsExactly(java.lang.Object[])>(v);
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature COMPOUND_DERIVED_FEATURE>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set addImpliedFeatures(java.util.Set)>(v);
v = staticinvoke <com.google.common.truth.Truth: com.google.common.truth.IterableSubject assertThat(java.lang.Iterable)>(v);
v = newarray (java.lang.Object)[5];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature COMPOUND_DERIVED_FEATURE>;
v[0] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
v[1] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[2] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[3] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_2>;
v[4] = v;
virtualinvoke v.<com.google.common.truth.IterableSubject: com.google.common.truth.Ordered containsExactly(java.lang.Object[])>(v);
return;
}
public void testImpliedFeatures_returnsNewSetInstance() throws java.lang.Exception
{
java.util.HashSet v;
java.lang.Object[] v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.util.Set v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set impliedFeatures(java.util.Set)>(v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertNotSame(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public void testImpliedFeatures_returnsImpliedFeatures() throws java.lang.Exception
{
java.lang.Object[] v, v, v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v, v, v;
java.util.HashSet v, v, v;
com.google.common.truth.IterableSubject v, v;
boolean v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.util.Set v, v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature v, v, v, v, v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set impliedFeatures(java.util.Set)>(v);
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertTrue(boolean)>(v);
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set impliedFeatures(java.util.Set)>(v);
v = staticinvoke <com.google.common.truth.Truth: com.google.common.truth.IterableSubject assertThat(java.lang.Iterable)>(v);
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
virtualinvoke v.<com.google.common.truth.IterableSubject: void contains(java.lang.Object)>(v);
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature COMPOUND_DERIVED_FEATURE>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set impliedFeatures(java.util.Set)>(v);
v = staticinvoke <com.google.common.truth.Truth: com.google.common.truth.IterableSubject assertThat(java.lang.Iterable)>(v);
v = newarray (java.lang.Object)[4];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
v[0] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[1] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[2] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_2>;
v[3] = v;
virtualinvoke v.<com.google.common.truth.IterableSubject: com.google.common.truth.Ordered containsExactly(java.lang.Object[])>(v);
return;
}
public void testBuildTesterRequirements_class() throws java.lang.Exception
{
java.lang.Object[] v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v, v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.util.Set v, v;
com.google.common.collect.testing.features.TesterRequirements v, v, v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature v;
java.util.HashSet v, v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: com.google.common.collect.testing.features.TesterRequirements buildTesterRequirements(java.lang.Class)>(class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleBaseInterfaceTester;");
v = new com.google.common.collect.testing.features.TesterRequirements;
v = newarray (com.google.common.collect.testing.features.Feature)[1];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[0] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
specialinvoke v.<com.google.common.collect.testing.features.TesterRequirements: void <init>(java.util.Set,java.util.Set)>(v, v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: com.google.common.collect.testing.features.TesterRequirements buildTesterRequirements(java.lang.Class)>(class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleDerivedInterfaceTester;");
v = new com.google.common.collect.testing.features.TesterRequirements;
v = newarray (com.google.common.collect.testing.features.Feature)[2];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[0] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[1] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
specialinvoke v.<com.google.common.collect.testing.features.TesterRequirements: void <init>(java.util.Set,java.util.Set)>(v, v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public void testBuildTesterRequirements_method() throws java.lang.Exception
{
java.lang.Object[] v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v, v;
com.google.common.collect.testing.features.TesterRequirements v, v, v, v;
java.util.HashSet v, v;
java.lang.reflect.Method v, v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.lang.Class[] v, v;
java.util.Set v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature v, v, v, v, v;
java.lang.Class v, v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleDerivedInterfaceTester;";
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("testRequiringTwoExplicitDerivedFeatures", v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: com.google.common.collect.testing.features.TesterRequirements buildTesterRequirements(java.lang.reflect.Method)>(v);
v = new com.google.common.collect.testing.features.TesterRequirements;
v = newarray (com.google.common.collect.testing.features.Feature)[3];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[0] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
v[1] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[2] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
specialinvoke v.<com.google.common.collect.testing.features.TesterRequirements: void <init>(java.util.Set,java.util.Set)>(v, v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleDerivedInterfaceTester;";
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("testRequiringAllThreeDerivedFeatures", v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: com.google.common.collect.testing.features.TesterRequirements buildTesterRequirements(java.lang.reflect.Method)>(v);
v = new com.google.common.collect.testing.features.TesterRequirements;
v = newarray (com.google.common.collect.testing.features.Feature)[4];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
v[0] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
v[1] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[2] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_3>;
v[3] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
specialinvoke v.<com.google.common.collect.testing.features.TesterRequirements: void <init>(java.util.Set,java.util.Set)>(v, v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public void testBuildTesterRequirements_classClassConflict() throws java.lang.Exception
{
java.lang.Throwable v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v;
com.google.common.truth.IterableSubject v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.util.Set v;
java.lang.Object v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
label:
staticinvoke <com.google.common.collect.testing.features.FeatureUtil: com.google.common.collect.testing.features.TesterRequirements buildTesterRequirements(java.lang.Class)>(class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ConflictingRequirementsExampleDerivedInterfaceTester;");
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void fail(java.lang.String)>("Expected ConflictingRequirementsException");
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<com.google.common.collect.testing.features.ConflictingRequirementsException: java.util.Set getConflicts()>();
v = staticinvoke <com.google.common.truth.Truth: com.google.common.truth.IterableSubject assertThat(java.lang.Iterable)>(v);
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
virtualinvoke v.<com.google.common.truth.IterableSubject: void contains(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.testing.features.ConflictingRequirementsException: java.lang.Object getSource()>();
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertEquals(java.lang.Object,java.lang.Object)>(class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ConflictingRequirementsExampleDerivedInterfaceTester;", v);
label:
return;
catch com.google.common.collect.testing.features.ConflictingRequirementsException from label to label with label;
}
public void testBuildTesterRequirements_methodClassConflict() throws java.lang.Exception
{
java.lang.Throwable v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.lang.Class[] v;
java.util.Set v;
com.google.common.truth.IterableSubject v;
java.lang.Class v;
java.lang.Object v;
java.lang.reflect.Method v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleDerivedInterfaceTester;";
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("testRequiringConflictingFeatures", v);
label:
staticinvoke <com.google.common.collect.testing.features.FeatureUtil: com.google.common.collect.testing.features.TesterRequirements buildTesterRequirements(java.lang.reflect.Method)>(v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void fail(java.lang.String)>("Expected ConflictingRequirementsException");
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<com.google.common.collect.testing.features.ConflictingRequirementsException: java.util.Set getConflicts()>();
v = staticinvoke <com.google.common.truth.Truth: com.google.common.truth.IterableSubject assertThat(java.lang.Iterable)>(v);
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleBaseFeature BASE_FEATURE_1>;
virtualinvoke v.<com.google.common.truth.IterableSubject: void contains(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.testing.features.ConflictingRequirementsException: java.lang.Object getSource()>();
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
label:
return;
catch com.google.common.collect.testing.features.ConflictingRequirementsException from label to label with label;
}
public void testBuildDeclaredTesterRequirements() throws java.lang.Exception
{
java.lang.Object[] v;
com.google.common.collect.testing.features.FeatureUtilTest v;
java.lang.Class[] v;
java.util.Set v, v;
com.google.common.collect.testing.features.TesterRequirements v, v;
com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature v, v;
java.util.HashSet v;
java.lang.Class v;
java.lang.reflect.Method v;
v := @this: com.google.common.collect.testing.features.FeatureUtilTest;
v = class "Lcom/google/common/collect/testing/features/FeatureUtilTest$ExampleDerivedInterfaceTester;";
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("testRequiringTwoExplicitDerivedFeatures", v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: com.google.common.collect.testing.features.TesterRequirements buildDeclaredTesterRequirements(java.lang.reflect.AnnotatedElement)>(v);
v = new com.google.common.collect.testing.features.TesterRequirements;
v = newarray (com.google.common.collect.testing.features.Feature)[2];
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_1>;
v[0] = v;
v = <com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature: com.google.common.collect.testing.features.FeatureUtilTest$ExampleDerivedFeature DERIVED_FEATURE_2>;
v[1] = v;
v = staticinvoke <com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.collect.testing.features.FeatureUtil: java.util.Set addImpliedFeatures(java.util.Set)>(v);
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
specialinvoke v.<com.google.common.collect.testing.features.TesterRequirements: void <init>(java.util.Set,java.util.Set)>(v, v);
staticinvoke <com.google.common.collect.testing.features.FeatureUtilTest: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
return;
}
}