[codegen] Support nested classes
Adds support for arbitrarily-nested @DataClasses Only static ones are supported for now See FileInfo for the main implementation piece Fixes: 139833958 Test: . frameworks/base/tests/Codegen/runTest.sh Change-Id: I31cd16969788c47003a7a15a3573a4bf623ab960
This commit is contained in:
@@ -243,6 +243,26 @@ public class SampleDataClassTest {
|
||||
assertEquals(instance.toString(), unparceledInstance.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNestedDataClasses_notMangledWhenParceled() {
|
||||
assertEqualsAfterParcelling(
|
||||
new SampleWithNestedDataClasses.NestedDataClass("1"),
|
||||
SampleWithNestedDataClasses.NestedDataClass.CREATOR);
|
||||
|
||||
assertEqualsAfterParcelling(
|
||||
new SampleWithNestedDataClasses.NestedDataClass2("2"),
|
||||
SampleWithNestedDataClasses.NestedDataClass2.CREATOR);
|
||||
|
||||
assertEqualsAfterParcelling(
|
||||
new SampleWithNestedDataClasses.NestedDataClass2.NestedDataClass3(3),
|
||||
SampleWithNestedDataClasses.NestedDataClass2.NestedDataClass3.CREATOR);
|
||||
}
|
||||
|
||||
private static <T extends Parcelable> void assertEqualsAfterParcelling(
|
||||
T p, Parcelable.Creator<T> creator) {
|
||||
assertEquals(p, parcelAndUnparcel(p, creator));
|
||||
}
|
||||
|
||||
private static <T extends Parcelable> T parcelAndUnparcel(
|
||||
T original, Parcelable.Creator<T> creator) {
|
||||
Parcel p = Parcel.obtain();
|
||||
|
||||
Reference in New Issue
Block a user