mojo/public/tools/mojom/version_compatibility_unittest.py
def testFieldNestedTypeChanged(self):
    """Changing the definition of a nested type within a field (such as an array
    element or interface endpoint type) should only break backward-compatibility
    if the changes to that type are not backward-compatible."""
    self.assertBackwardCompatible(
        """\
        struct S { string a; };
        struct T { array<S> ss; };
        """, """\
        struct S {
          string a;
          [MinVersion=1] string? b;
        };
        struct T { array<S> ss; };
        """)
    self.assertBackwardCompatible(
        """\
        interface F { Do(); };
        struct S { pending_receiver<F> r; };
        """, """\
        interface F {
          Do();
          [MinVersion=1] Say();
        };
        struct S { pending_receiver<F> r; };
        """)
Changing the definition of a nested type within a field (such as an array
    element or interface endpoint type) should only break backward-compatibility
    if the changes to that type are not backward-compatible.
Changing the definition of a nested type within a field (such as an array
element or interface endpoint type) should only break backward-compatibility
if the changes to that type are not backward-compatible.
Changing the definition of a nested type within a field ( such as an array element or interface endpoint type ) should only break backward - compatibility if the changes to that type are not backward - compatible .
def testFieldNestedTypeChanged(self):
    self.assertBackwardCompatible(
        """\
        struct S { string a; };
        struct T { array<S> ss; };
        """, """\
        struct S {
          string a;
          [MinVersion=1] string? b;
        };
        struct T { array<S> ss; };
        """)
    self.assertBackwardCompatible(
        """\
        interface F { Do(); };
        struct S { pending_receiver<F> r; };
        """, """\
        interface F {
          Do();
          [MinVersion=1] Say();
        };
        struct S { pending_receiver<F> r; };
        """)
def testFieldNestedTypeChanged ( self ) : self . assertBackwardCompatible ( """\
        struct S { string a; };
        struct T { array<S> ss; };
        """ , """\
        struct S {
          string a;
          [MinVersion=1] string? b;
        };
        struct T { array<S> ss; };
        """ ) self . assertBackwardCompatible ( """\
        interface F { Do(); };
        struct S { pending_receiver<F> r; };
        """ , """\
        interface F {
          Do();
          [MinVersion=1] Say();
        };
        struct S { pending_receiver<F> r; };
        """ )
Changing the definition of a nested type within a field (such as an array
element or interface endpoint type) should only break backward-compatibility
if the changes to that type are not backward-compatible.
Changing the definition of a nested type within a field ( such as an array element or interface endpoint type ) should only break backward - compatibility if the changes to that type are not backward - compatible .
"""Changing the definition of a nested type within a field (such as an array
    element or interface endpoint type) should only break backward-compatibility
    if the changes to that type are not backward-compatible."""
self