@Test
  public void testNestedNullablePropertiesAreCopied() throws Exception {
    try {
      Method generatedGetter =
          AutoValue_AutoValueJava8Test_NestedNullableProperties.class.getDeclaredMethod(
              "nullableThing");
      Annotation[] getterAnnotations = generatedGetter.getAnnotatedReturnType().getAnnotations();
      assertThat(getterAnnotations).asList().containsAtLeast(nullable(), otherTypeAnnotation());

      Method generatedSetter =
          AutoValue_AutoValueJava8Test_NestedNullableProperties.Builder.class.getDeclaredMethod(
              "setNullableThing", Nested.class);
      Annotation[] setterAnnotations =
          generatedSetter.getAnnotatedParameterTypes()[0].getAnnotations();
      assertThat(setterAnnotations).asList().containsAtLeast(nullable(), otherTypeAnnotation());
    } catch (AssertionError e) {
      if (javacHandlesTypeAnnotationsCorrectly) {
        throw e;
      }
    }
  }
Returns a set containing this test's {@link Nullable @Nullable} annotation, plus possibly
another {@code @Nullable} that is present on the parameter of {@link Object#equals}.
value/src/it/functional/src/test/java/com/google/auto/value/AutoValueJava8Test.java