[Retrace] Add support for compiler-synthesized definitions

Bug: b/169953605
Bug: b/172014416
Change-Id: I02ef5040431bb369f9c0b326bced16199ccd9e39
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceFieldResultImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceFieldResultImpl.java
index e87a2ea..afade35 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceFieldResultImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceFieldResultImpl.java
@@ -4,7 +4,6 @@
 
 package com.android.tools.r8.retrace.internal;
 
-import com.android.tools.r8.errors.Unimplemented;
 import com.android.tools.r8.naming.MemberNaming;
 import com.android.tools.r8.naming.MemberNaming.FieldSignature;
 import com.android.tools.r8.references.Reference;
@@ -119,7 +118,7 @@
 
     @Override
     public boolean isCompilerSynthesized() {
-      throw new Unimplemented("b/172014416");
+      return memberNaming != null && memberNaming.isCompilerSynthesized();
     }
 
     @Override
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java
index 1614e37..6577623 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java
@@ -4,7 +4,6 @@
 
 package com.android.tools.r8.retrace.internal;
 
-import com.android.tools.r8.errors.Unimplemented;
 import com.android.tools.r8.naming.ClassNamingForNameMapper.MappedRange;
 import com.android.tools.r8.naming.ClassNamingForNameMapper.MappedRangesOfName;
 import com.android.tools.r8.naming.MemberNaming;
@@ -187,7 +186,7 @@
 
     @Override
     public boolean isCompilerSynthesized() {
-      throw new Unimplemented("b/172014416");
+      return memberNaming != null && memberNaming.isCompilerSynthesized();
     }
 
     @Override
diff --git a/src/test/java/com/android/tools/r8/retrace/RenamedSignatureClashTest.java b/src/test/java/com/android/tools/r8/retrace/RenamedSignatureClashTest.java
index 183f4a1..cd96661 100644
--- a/src/test/java/com/android/tools/r8/retrace/RenamedSignatureClashTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/RenamedSignatureClashTest.java
@@ -5,14 +5,13 @@
 package com.android.tools.r8.retrace;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.DiagnosticsHandler;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.errors.Unimplemented;
 import com.android.tools.r8.references.ClassReference;
 import com.android.tools.r8.references.MethodReference;
 import com.android.tools.r8.references.Reference;
@@ -58,13 +57,12 @@
             result -> {
               String method = result.getRetracedMethod().asKnown().getMethodReference().toString();
               if (method.equals("Lsome/moved/Method;someMethod(I)V")) {
-                // TODO(b/172014416): Fix when changed.
-                assertThrows(Unimplemented.class, result::isCompilerSynthesized);
+                assertFalse(result.isCompilerSynthesized());
               } else {
-                // TODO(b/172014416): Fix when changed.
                 assertEquals(
                     originalHolder.getDescriptor() + "methodWithRemovedArgument(I)V", method);
-                assertThrows(Unimplemented.class, result::isCompilerSynthesized);
+                // TODO(b/169953605): Should be true.
+                assertFalse(result.isCompilerSynthesized());
               }
             });
   }
diff --git a/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedFieldTest.java b/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedFieldTest.java
index d934a5f..9504609 100644
--- a/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedFieldTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedFieldTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.retrace.api;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.DiagnosticsHandler;
 import com.android.tools.r8.TestParameters;
@@ -49,8 +49,7 @@
               .flatMap(element -> element.lookupField("a").stream())
               .collect(Collectors.toList());
       assertEquals(1, fieldResults.size());
-      // TODO(b/172014416): Should report if synthesized.
-      assertThrows(RuntimeException.class, () -> fieldResults.get(0).isCompilerSynthesized());
+      assertTrue(fieldResults.get(0).isCompilerSynthesized());
     }
   }
 }
diff --git a/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedMethodTest.java b/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedMethodTest.java
index 39228e2..08e8bd5 100644
--- a/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedMethodTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/api/RetraceApiSynthesizedMethodTest.java
@@ -6,7 +6,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.DiagnosticsHandler;
 import com.android.tools.r8.TestParameters;
@@ -52,8 +52,7 @@
       assertEquals(1, methodResults.size());
       RetraceMethodElement retraceMethodElement = methodResults.get(0);
       assertFalse(retraceMethodElement.isUnknown());
-      // TODO(b/172014416): Should report if synthesized.
-      assertThrows(RuntimeException.class, () -> methodResults.get(0).isCompilerSynthesized());
+      assertTrue(methodResults.get(0).isCompilerSynthesized());
     }
   }
 }
diff --git a/third_party/retrace/binary_compatibility.tar.gz.sha1 b/third_party/retrace/binary_compatibility.tar.gz.sha1
index bb0a4e3..9ec0996 100644
--- a/third_party/retrace/binary_compatibility.tar.gz.sha1
+++ b/third_party/retrace/binary_compatibility.tar.gz.sha1
@@ -1 +1 @@
-d4f61f4b1310f37c0dc7f143a928d5ece872cc05
\ No newline at end of file
+117ea6834de68a5e00660f5f971bd5caf611c119
\ No newline at end of file