mojo/public/tools/mojom/version_compatibility_unittest.py
def testStructFieldTypeChange(self):
    """If a struct field's own type definition changes, the containing struct
    is backward-compatible if and only if the field type's change is
    backward-compatible."""
    self.assertBackwardCompatible(
        'struct S {}; struct T { S s; };',
        'struct S { [MinVersion=1] int32 x; }; struct T { S s; };')
    self.assertBackwardCompatible(
        '[Extensible] enum E { kA }; struct S { E e; };',
        '[Extensible] enum E { kA, [MinVersion=1] kB }; struct S { E e; };')
    self.assertNotBackwardCompatible(
        'struct S {}; struct T { S s; };',
        'struct S { int32 x; }; struct T { S s; };')
    self.assertNotBackwardCompatible(
        '[Extensible] enum E { kA }; struct S { E e; };',
        '[Extensible] enum E { kA, kB }; struct S { E e; };')
If a struct field's own type definition changes, the containing struct
    is backward-compatible if and only if the field type's change is
    backward-compatible.
If a struct field's own type definition changes, the containing struct
is backward-compatible if and only if the field type's change is
backward-compatible.
If a struct field ' s own type definition changes the containing struct is backward - compatible if and only if the field type ' s change is backward - compatible .
def testStructFieldTypeChange(self):
    self.assertBackwardCompatible(
        'struct S {}; struct T { S s; };',
        'struct S { [MinVersion=1] int32 x; }; struct T { S s; };')
    self.assertBackwardCompatible(
        '[Extensible] enum E { kA }; struct S { E e; };',
        '[Extensible] enum E { kA, [MinVersion=1] kB }; struct S { E e; };')
    self.assertNotBackwardCompatible(
        'struct S {}; struct T { S s; };',
        'struct S { int32 x; }; struct T { S s; };')
    self.assertNotBackwardCompatible(
        '[Extensible] enum E { kA }; struct S { E e; };',
        '[Extensible] enum E { kA, kB }; struct S { E e; };')
def testStructFieldTypeChange ( self ) : self . assertBackwardCompatible ( 'struct S {}; struct T { S s; };' , 'struct S { [MinVersion=1] int32 x; }; struct T { S s; };' ) self . assertBackwardCompatible ( '[Extensible] enum E { kA }; struct S { E e; };' , '[Extensible] enum E { kA, [MinVersion=1] kB }; struct S { E e; };' ) self . assertNotBackwardCompatible ( 'struct S {}; struct T { S s; };' , 'struct S { int32 x; }; struct T { S s; };' ) self . assertNotBackwardCompatible ( '[Extensible] enum E { kA }; struct S { E e; };' , '[Extensible] enum E { kA, kB }; struct S { E e; };' )
If a struct field's own type definition changes, the containing struct
is backward-compatible if and only if the field type's change is
backward-compatible.
If a struct field ' s own type definition changes the containing struct is backward - compatible if and only if the field type ' s change is backward - compatible .
"""If a struct field's own type definition changes, the containing struct
    is backward-compatible if and only if the field type's change is
    backward-compatible."""
self