
/* Generic Signature Changes */
cake1: Func P1.P1Constraint() has generic signature change from <τ_0_0 where τ_0_0 : P1, τ_0_0 : P2> to <τ_0_0 where τ_0_0 : P1>
cake1: Protocol P3 has generic signature change from <τ_0_0 : P1, τ_0_0 : P2> to <τ_0_0 : P1, τ_0_0 : P4>

/* RawRepresentable Changes */

/* Removed Decls */
cake1: AssociatedType RequiementChanges.removedType has been removed
cake1: Class C3 has been removed
cake1: Constructor Somestruct2.init(_:) has been removed
cake1: Func C4.foo() has been removed
cake1: Func RequiementChanges.removedFunc() has been removed
cake1: Subscript RemoveSetters.subscript(_:) has removed its setter
cake1: Var GlobalVarChangedToLet has removed its setter
cake1: Var RemoveSetters.Value has removed its setter
cake1: Var RequiementChanges.removedVar has been removed

/* Moved Decls */
cake1: Class ClassToStruct has been changed to a Struct
cake1: InfixOperator ..*.. has been changed to a PrefixOperator
cake1: Protocol ProtocolToEnum has been changed to a Enum

/* Renamed Decls */
cake1: Func S1.foo5(x:y:) has been renamed to Func S1.foo5(x:y:z:)
cake1: Struct Somestruct2 has been renamed to Struct NSSomestruct2

/* Type Changes */
cake1: AssociatedType AssociatedTypePro.T3 has default type change from C1 to C6
cake1: Class TChangesFromIntToString has type witness type for AssociatedTypesProtocol.T changing from Int to String
cake1: Constructor S1.init(_:) has parameter 0 type change from Int to Double
cake1: Func C1.foo2(_:) has parameter 0 type change from Int to () -> ()
cake1: Func C7.foo(_:_:) has removed default argument from parameter 0
cake1: Func C7.foo(_:_:) has removed default argument from parameter 1
cake1: Func EscapingFunctionType.addedEscaping(_:) has added @escaping in parameter 0
cake1: Func EscapingFunctionType.removedEscaping(_:) has removed @escaping in parameter 0
cake1: Func Somestruct2.foo1(_:) has parameter 0 type change from C3 to C1
cake1: Func ownershipChange(_:_:) has parameter 0 changing from InOut to Default
cake1: Func ownershipChange(_:_:) has parameter 1 changing from Shared to Owned

/* Decl Attribute changes */
cake1: Class C5 is now without @objc
cake1: Enum IceKind is now without @_frozen
cake1: Func C1.foo1() is now not static
cake1: Func C5.dy_foo() is now with dynamic
cake1: Func FinalFuncContainer.NewFinalFunc() is now with final
cake1: Func FinalFuncContainer.NoLongerFinalFunc() is now without final
cake1: Func S1.foo1() has self access kind changing from NonMutating to Mutating
cake1: Func S1.foo3() is now static
cake1: Func _NoResilientClass.NoLongerFinalFunc() is now without final
cake1: Struct C6 is now with @_fixed_layout
cake1: Var C1.CIIns1 changes from weak to strong
cake1: Var C1.CIIns2 changes from strong to weak
cake1: Var GlobalLetChangedToVar changes from let to var
cake1: Var GlobalVarChangedToLet changes from var to let

/* Fixed-layout Type changes */
cake1: EnumElement FrozenKind.Fixed in a non-resilient type changes position from 1 to 2
cake1: EnumElement FrozenKind.Rigid in a non-resilient type changes position from 2 to 1
cake1: Var fixedLayoutStruct.a in a non-resilient type changes position from 1 to 0
cake1: Var fixedLayoutStruct.b in a non-resilient type changes position from 0 to 1
cake1: Var fixedLayoutStruct2.BecomeFixedBinaryOrder is now a stored property
cake1: Var fixedLayoutStruct2.NoLongerWithFixedBinaryOrder is no longer a stored property
cake2: EnumElement FrozenKind.AddedCase is added to a non-resilient type
cake2: Var fixedLayoutStruct.$__lazy_storage_$_lazy_d is added to a non-resilient type
cake2: Var fixedLayoutStruct.c is added to a non-resilient type

/* Conformance changes */
cake1: Func ObjCProtocol.addOptional() is now an optional requirement
cake1: Func ObjCProtocol.removeOptional() is no longer an optional requirement
cake1: Protocol P3 has removed inherited protocol P2
cake1: Struct fixedLayoutStruct has removed conformance to P1
cake2: Protocol P3 has added inherited protocol P4

/* Protocol Requirement Change */
cake1: AssociatedType AssociatedTypePro.T1 has removed default type Int
cake2: AssociatedType RequiementChanges.addedTypeWithoutDefault has been added as a protocol requirement
cake2: Func RequiementChanges.addedFunc() has been added as a protocol requirement
cake2: Var RequiementChanges.addedVar has been added as a protocol requirement

/* Class Inheritance Change */
cake1: Class C4 has changed its super class from OldType to NewType
cake1: Class SubGenericClass has changed its super class from GenericClass<P1> to GenericClass<P2>
cake1: Class SuperClassRemoval has removed its super class C3
