Rename retrace element classes as top-level types.

Change-Id: I0ecd975f868581a230c005928c07d297a7f5c297
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceClassElement.java b/src/main/java/com/android/tools/r8/retrace/RetraceClassElement.java
new file mode 100644
index 0000000..76874f7
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceClassElement.java
@@ -0,0 +1,27 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.retrace;
+
+import com.android.tools.r8.Keep;
+import com.android.tools.r8.references.TypeReference;
+import java.util.List;
+
+@Keep
+public interface RetraceClassElement extends RetraceElement<RetraceClassResult> {
+
+  RetracedClass getRetracedClass();
+
+  RetraceSourceFileResult retraceSourceFile(String sourceFile);
+
+  RetraceFieldResult lookupField(String fieldName);
+
+  RetraceMethodResult lookupMethod(String methodName);
+
+  RetraceFrameResult lookupFrame(String methodName);
+
+  RetraceFrameResult lookupFrame(String methodName, int position);
+
+  RetraceFrameResult lookupFrame(
+      String methodName, int position, List<TypeReference> formalTypes, TypeReference returnType);
+}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceClassResult.java b/src/main/java/com/android/tools/r8/retrace/RetraceClassResult.java
index ab7d854..29f4703 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceClassResult.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceClassResult.java
@@ -6,11 +6,10 @@
 
 import com.android.tools.r8.Keep;
 import com.android.tools.r8.references.TypeReference;
-import com.android.tools.r8.retrace.RetraceClassResult.Element;
 import java.util.List;
 
 @Keep
-public interface RetraceClassResult extends RetraceResult<Element> {
+public interface RetraceClassResult extends RetraceResult<RetraceClassElement> {
 
   boolean hasRetraceResult();
 
@@ -30,22 +29,4 @@
   RetraceFrameResult lookupFrame(
       String methodName, int position, List<TypeReference> formalTypes, TypeReference returnType);
 
-  @Keep
-  interface Element extends RetraceElement<RetraceClassResult> {
-
-    RetracedClass getRetracedClass();
-
-    RetraceSourceFileResult retraceSourceFile(String sourceFile);
-
-    RetraceFieldResult lookupField(String fieldName);
-
-    RetraceMethodResult lookupMethod(String methodName);
-
-    RetraceFrameResult lookupFrame(String methodName);
-
-    RetraceFrameResult lookupFrame(String methodName, int position);
-
-    RetraceFrameResult lookupFrame(
-        String methodName, int position, List<TypeReference> formalTypes, TypeReference returnType);
-  }
 }
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceFieldElement.java b/src/main/java/com/android/tools/r8/retrace/RetraceFieldElement.java
new file mode 100644
index 0000000..5646b31
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceFieldElement.java
@@ -0,0 +1,18 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.retrace;
+
+import com.android.tools.r8.Keep;
+
+@Keep
+public interface RetraceFieldElement extends RetraceElement<RetraceFieldResult> {
+
+  boolean isUnknown();
+
+  RetracedField getField();
+
+  RetraceClassElement getClassElement();
+
+  RetraceSourceFileResult retraceSourceFile(String sourceFile);
+}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceFieldResult.java b/src/main/java/com/android/tools/r8/retrace/RetraceFieldResult.java
index f0f2a3d..0dc3cc5 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceFieldResult.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceFieldResult.java
@@ -5,20 +5,6 @@
 package com.android.tools.r8.retrace;
 
 import com.android.tools.r8.Keep;
-import com.android.tools.r8.retrace.RetraceFieldResult.Element;
 
 @Keep
-public interface RetraceFieldResult extends RetraceResult<Element> {
-
-  @Keep
-  interface Element extends RetraceElement<RetraceFieldResult> {
-
-    boolean isUnknown();
-
-    RetracedField getField();
-
-    RetraceClassResult.Element getClassElement();
-
-    RetraceSourceFileResult retraceSourceFile(String sourceFile);
-  }
-}
+public interface RetraceFieldResult extends RetraceResult<RetraceFieldElement> {}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceFrameElement.java b/src/main/java/com/android/tools/r8/retrace/RetraceFrameElement.java
new file mode 100644
index 0000000..cf1fa87
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceFrameElement.java
@@ -0,0 +1,24 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.retrace;
+
+import com.android.tools.r8.Keep;
+import java.util.List;
+import java.util.function.BiConsumer;
+
+@Keep
+public interface RetraceFrameElement extends RetraceElement<RetraceFrameResult> {
+
+  boolean isUnknown();
+
+  RetracedMethod getTopFrame();
+
+  RetraceClassElement getClassElement();
+
+  void visitFrames(BiConsumer<RetracedMethod, Integer> consumer);
+
+  RetraceSourceFileResult retraceSourceFile(RetracedClassMember frame, String sourceFile);
+
+  List<? extends RetracedMethod> getOuterFrames();
+}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceFrameResult.java b/src/main/java/com/android/tools/r8/retrace/RetraceFrameResult.java
index f70f3d2..bfe0967 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceFrameResult.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceFrameResult.java
@@ -5,26 +5,6 @@
 package com.android.tools.r8.retrace;
 
 import com.android.tools.r8.Keep;
-import com.android.tools.r8.retrace.RetraceFrameResult.Element;
-import java.util.List;
-import java.util.function.BiConsumer;
 
 @Keep
-public interface RetraceFrameResult extends RetraceResult<Element> {
-
-  @Keep
-  interface Element extends RetraceElement<RetraceFrameResult> {
-
-    boolean isUnknown();
-
-    RetracedMethod getTopFrame();
-
-    RetraceClassResult.Element getClassElement();
-
-    void visitFrames(BiConsumer<RetracedMethod, Integer> consumer);
-
-    RetraceSourceFileResult retraceSourceFile(RetracedClassMember frame, String sourceFile);
-
-    List<? extends RetracedMethod> getOuterFrames();
-  }
-}
+public interface RetraceFrameResult extends RetraceResult<RetraceFrameElement> {}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceMethodElement.java b/src/main/java/com/android/tools/r8/retrace/RetraceMethodElement.java
new file mode 100644
index 0000000..967f863
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceMethodElement.java
@@ -0,0 +1,18 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.retrace;
+
+import com.android.tools.r8.Keep;
+
+@Keep
+public interface RetraceMethodElement extends RetraceElement<RetraceMethodResult> {
+
+  boolean isUnknown();
+
+  RetracedMethod getRetracedMethod();
+
+  RetraceClassElement getClassElement();
+
+  RetraceSourceFileResult retraceSourceFile(String sourceFile);
+}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceMethodResult.java b/src/main/java/com/android/tools/r8/retrace/RetraceMethodResult.java
index f565326..9abb027 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceMethodResult.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceMethodResult.java
@@ -5,22 +5,10 @@
 package com.android.tools.r8.retrace;
 
 import com.android.tools.r8.Keep;
-import com.android.tools.r8.retrace.RetraceMethodResult.Element;
 
 @Keep
-public interface RetraceMethodResult extends RetraceResult<Element> {
+public interface RetraceMethodResult extends RetraceResult<RetraceMethodElement> {
 
   RetraceFrameResult narrowByPosition(int position);
 
-  @Keep
-  interface Element extends RetraceElement<RetraceMethodResult> {
-
-    boolean isUnknown();
-
-    RetracedMethod getRetracedMethod();
-
-    RetraceClassResult.Element getClassElement();
-
-    RetraceSourceFileResult retraceSourceFile(String sourceFile);
-  }
 }
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java
index 212e8a8..2a88d14 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java
@@ -14,6 +14,7 @@
 import com.android.tools.r8.references.ClassReference;
 import com.android.tools.r8.references.Reference;
 import com.android.tools.r8.references.TypeReference;
+import com.android.tools.r8.retrace.RetraceClassElement;
 import com.android.tools.r8.retrace.RetraceClassResult;
 import com.android.tools.r8.retrace.RetraceFrameResult;
 import com.android.tools.r8.retrace.Retracer;
@@ -96,7 +97,7 @@
       D definition,
       BiFunction<ClassNamingForNameMapper, String, T> lookupFunction,
       ResultConstructor<T, R, D> constructor) {
-    List<Pair<ElementImpl, T>> mappings = new ArrayList<>();
+    List<Pair<RetraceClassElementImpl, T>> mappings = new ArrayList<>();
     internalStream()
         .forEach(
             element -> {
@@ -133,7 +134,7 @@
   }
 
   private RetraceFrameResultImpl lookupFrame(MethodDefinition definition, int position) {
-    List<Pair<ElementImpl, List<MappedRange>>> mappings = new ArrayList<>();
+    List<Pair<RetraceClassElementImpl, List<MappedRange>>> mappings = new ArrayList<>();
     internalStream()
         .forEach(
             element ->
@@ -143,7 +144,7 @@
   }
 
   private List<MappedRange> getMappedRangesForFrame(
-      ElementImpl element, MethodDefinition definition, int position) {
+      RetraceClassElementImpl element, MethodDefinition definition, int position) {
     if (mapper == null) {
       return null;
     }
@@ -167,16 +168,16 @@
   }
 
   @Override
-  public Stream<Element> stream() {
+  public Stream<RetraceClassElement> stream() {
     return Stream.of(createElement());
   }
 
-  private Stream<ElementImpl> internalStream() {
+  private Stream<RetraceClassElementImpl> internalStream() {
     return Stream.of(createElement());
   }
 
-  private ElementImpl createElement() {
-    return new ElementImpl(
+  private RetraceClassElementImpl createElement() {
+    return new RetraceClassElementImpl(
         this,
         RetracedClassImpl.create(
             mapper == null
@@ -188,18 +189,18 @@
   private interface ResultConstructor<T, R, D> {
     R create(
         RetraceClassResultImpl classResult,
-        List<Pair<ElementImpl, T>> mappings,
+        List<Pair<RetraceClassElementImpl, T>> mappings,
         D definition,
         Retracer retracer);
   }
 
-  public static class ElementImpl implements Element {
+  public static class RetraceClassElementImpl implements RetraceClassElement {
 
     private final RetraceClassResultImpl classResult;
     private final RetracedClassImpl classReference;
     private final ClassNamingForNameMapper mapper;
 
-    public ElementImpl(
+    public RetraceClassElementImpl(
         RetraceClassResultImpl classResult,
         RetracedClassImpl classReference,
         ClassNamingForNameMapper mapper) {
@@ -277,7 +278,7 @@
         D definition,
         BiFunction<ClassNamingForNameMapper, String, T> lookupFunction,
         ResultConstructor<T, R, D> constructor) {
-      List<Pair<ElementImpl, T>> mappings = ImmutableList.of();
+      List<Pair<RetraceClassElementImpl, T>> mappings = ImmutableList.of();
       if (mapper != null) {
         T result = lookupFunction.apply(mapper, definition.getName());
         if (result != null) {
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 c3fe597..0d4ee80 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
@@ -7,9 +7,11 @@
 import com.android.tools.r8.naming.MemberNaming;
 import com.android.tools.r8.naming.MemberNaming.FieldSignature;
 import com.android.tools.r8.references.Reference;
+import com.android.tools.r8.retrace.RetraceFieldElement;
 import com.android.tools.r8.retrace.RetraceFieldResult;
 import com.android.tools.r8.retrace.RetraceSourceFileResult;
 import com.android.tools.r8.retrace.Retracer;
+import com.android.tools.r8.retrace.internal.RetraceClassResultImpl.RetraceClassElementImpl;
 import com.android.tools.r8.utils.DescriptorUtils;
 import com.android.tools.r8.utils.Pair;
 import java.util.List;
@@ -18,13 +20,13 @@
 public class RetraceFieldResultImpl implements RetraceFieldResult {
 
   private final RetraceClassResultImpl classResult;
-  private final List<Pair<RetraceClassResultImpl.ElementImpl, List<MemberNaming>>> memberNamings;
+  private final List<Pair<RetraceClassElementImpl, List<MemberNaming>>> memberNamings;
   private final FieldDefinition fieldDefinition;
   private final Retracer retracer;
 
   RetraceFieldResultImpl(
       RetraceClassResultImpl classResult,
-      List<Pair<RetraceClassResultImpl.ElementImpl, List<MemberNaming>>> memberNamings,
+      List<Pair<RetraceClassElementImpl, List<MemberNaming>>> memberNamings,
       FieldDefinition fieldDefinition,
       Retracer retracer) {
     this.classResult = classResult;
@@ -36,11 +38,11 @@
   }
 
   @Override
-  public Stream<Element> stream() {
+  public Stream<RetraceFieldElement> stream() {
     return memberNamings.stream()
         .flatMap(
             mappedNamePair -> {
-              RetraceClassResultImpl.ElementImpl classElement = mappedNamePair.getFirst();
+              RetraceClassElementImpl classElement = mappedNamePair.getFirst();
               List<MemberNaming> memberNamings = mappedNamePair.getSecond();
               if (memberNamings == null) {
                 return Stream.of(
@@ -89,15 +91,15 @@
     return mappings.size() > 1;
   }
 
-  public static class ElementImpl implements RetraceFieldResult.Element {
+  public static class ElementImpl implements RetraceFieldElement {
 
     private final RetracedFieldImpl fieldReference;
     private final RetraceFieldResultImpl retraceFieldResult;
-    private final RetraceClassResultImpl.ElementImpl classElement;
+    private final RetraceClassElementImpl classElement;
 
     private ElementImpl(
         RetraceFieldResultImpl retraceFieldResult,
-        RetraceClassResultImpl.ElementImpl classElement,
+        RetraceClassElementImpl classElement,
         RetracedFieldImpl fieldReference) {
       this.classElement = classElement;
       this.fieldReference = fieldReference;
@@ -120,7 +122,7 @@
     }
 
     @Override
-    public RetraceClassResultImpl.ElementImpl getClassElement() {
+    public RetraceClassElementImpl getClassElement() {
       return classElement;
     }
 
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java
index c4a54b0..b380d56 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java
@@ -9,11 +9,13 @@
 import com.android.tools.r8.naming.ClassNamingForNameMapper.MappedRange;
 import com.android.tools.r8.naming.Range;
 import com.android.tools.r8.references.MethodReference;
+import com.android.tools.r8.retrace.RetraceFrameElement;
 import com.android.tools.r8.retrace.RetraceFrameResult;
 import com.android.tools.r8.retrace.RetraceSourceFileResult;
 import com.android.tools.r8.retrace.RetracedClassMember;
 import com.android.tools.r8.retrace.RetracedMethod;
 import com.android.tools.r8.retrace.Retracer;
+import com.android.tools.r8.retrace.internal.RetraceClassResultImpl.RetraceClassElementImpl;
 import com.android.tools.r8.utils.Pair;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
@@ -28,12 +30,12 @@
   private final RetraceClassResultImpl classResult;
   private final MethodDefinition methodDefinition;
   private final int obfuscatedPosition;
-  private final List<Pair<RetraceClassResultImpl.ElementImpl, List<MappedRange>>> mappedRanges;
+  private final List<Pair<RetraceClassElementImpl, List<MappedRange>>> mappedRanges;
   private final Retracer retracer;
 
   public RetraceFrameResultImpl(
       RetraceClassResultImpl classResult,
-      List<Pair<RetraceClassResultImpl.ElementImpl, List<MappedRange>>> mappedRanges,
+      List<Pair<RetraceClassElementImpl, List<MappedRange>>> mappedRanges,
       MethodDefinition methodDefinition,
       int obfuscatedPosition,
       Retracer retracer) {
@@ -65,11 +67,11 @@
   }
 
   @Override
-  public Stream<Element> stream() {
+  public Stream<RetraceFrameElement> stream() {
     return mappedRanges.stream()
         .flatMap(
             mappedRangePair -> {
-              RetraceClassResultImpl.ElementImpl classElement = mappedRangePair.getFirst();
+              RetraceClassElementImpl classElement = mappedRangePair.getFirst();
               List<MappedRange> mappedRanges = mappedRangePair.getSecond();
               if (mappedRanges == null || mappedRanges.isEmpty()) {
                 return Stream.of(
@@ -102,7 +104,7 @@
   }
 
   private ElementImpl elementFromMappedRanges(
-      List<MappedRange> mappedRangesForElement, RetraceClassResultImpl.ElementImpl classElement) {
+      List<MappedRange> mappedRangesForElement, RetraceClassElementImpl classElement) {
     MappedRange topFrame = mappedRangesForElement.get(0);
     MethodReference methodReference =
         methodReferenceFromMappedRange(
@@ -129,17 +131,17 @@
         methodReference, mappedRange.getOriginalLineNumber(obfuscatedPosition));
   }
 
-  public static class ElementImpl implements RetraceFrameResult.Element {
+  public static class ElementImpl implements RetraceFrameElement {
 
     private final RetracedMethodImpl methodReference;
     private final RetraceFrameResultImpl retraceFrameResult;
-    private final RetraceClassResultImpl.ElementImpl classElement;
+    private final RetraceClassElementImpl classElement;
     private final List<MappedRange> mappedRanges;
     private final int obfuscatedPosition;
 
     public ElementImpl(
         RetraceFrameResultImpl retraceFrameResult,
-        RetraceClassResultImpl.ElementImpl classElement,
+        RetraceClassElementImpl classElement,
         RetracedMethodImpl methodReference,
         List<MappedRange> mappedRanges,
         int obfuscatedPosition) {
@@ -166,7 +168,7 @@
     }
 
     @Override
-    public RetraceClassResultImpl.ElementImpl getClassElement() {
+    public RetraceClassElementImpl getClassElement() {
       return classElement;
     }
 
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 251518d..7de56d7 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
@@ -7,8 +7,10 @@
 import com.android.tools.r8.naming.ClassNamingForNameMapper.MappedRange;
 import com.android.tools.r8.naming.ClassNamingForNameMapper.MappedRangesOfName;
 import com.android.tools.r8.references.MethodReference;
+import com.android.tools.r8.retrace.RetraceMethodElement;
 import com.android.tools.r8.retrace.RetraceMethodResult;
 import com.android.tools.r8.retrace.Retracer;
+import com.android.tools.r8.retrace.internal.RetraceClassResultImpl.RetraceClassElementImpl;
 import com.android.tools.r8.utils.Pair;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
@@ -19,12 +21,12 @@
 
   private final MethodDefinition methodDefinition;
   private final RetraceClassResultImpl classResult;
-  private final List<Pair<RetraceClassResultImpl.ElementImpl, List<MappedRange>>> mappedRanges;
+  private final List<Pair<RetraceClassElementImpl, List<MappedRange>>> mappedRanges;
   private final Retracer retracer;
 
   RetraceMethodResultImpl(
       RetraceClassResultImpl classResult,
-      List<Pair<RetraceClassResultImpl.ElementImpl, List<MappedRange>>> mappedRanges,
+      List<Pair<RetraceClassElementImpl, List<MappedRange>>> mappedRanges,
       MethodDefinition methodDefinition,
       Retracer retracer) {
     this.classResult = classResult;
@@ -57,11 +59,9 @@
 
   @Override
   public RetraceFrameResultImpl narrowByPosition(int position) {
-    List<Pair<RetraceClassResultImpl.ElementImpl, List<MappedRange>>> narrowedRanges =
-        new ArrayList<>();
-    List<Pair<RetraceClassResultImpl.ElementImpl, List<MappedRange>>> noMappingRanges =
-        new ArrayList<>();
-    for (Pair<RetraceClassResultImpl.ElementImpl, List<MappedRange>> mappedRange : mappedRanges) {
+    List<Pair<RetraceClassElementImpl, List<MappedRange>>> narrowedRanges = new ArrayList<>();
+    List<Pair<RetraceClassElementImpl, List<MappedRange>>> noMappingRanges = new ArrayList<>();
+    for (Pair<RetraceClassElementImpl, List<MappedRange>> mappedRange : mappedRanges) {
       if (mappedRange.getSecond() == null) {
         noMappingRanges.add(new Pair<>(mappedRange.getFirst(), null));
         continue;
@@ -94,11 +94,11 @@
   }
 
   @Override
-  public Stream<Element> stream() {
+  public Stream<RetraceMethodElement> stream() {
     return mappedRanges.stream()
         .flatMap(
             mappedRangePair -> {
-              RetraceClassResultImpl.ElementImpl classElement = mappedRangePair.getFirst();
+              RetraceClassElementImpl classElement = mappedRangePair.getFirst();
               List<MappedRange> mappedRanges = mappedRangePair.getSecond();
               if (mappedRanges == null || mappedRanges.isEmpty()) {
                 return Stream.of(
@@ -121,15 +121,15 @@
             });
   }
 
-  public static class ElementImpl implements RetraceMethodResult.Element {
+  public static class ElementImpl implements RetraceMethodElement {
 
     private final RetracedMethodImpl methodReference;
     private final RetraceMethodResultImpl retraceMethodResult;
-    private final RetraceClassResultImpl.ElementImpl classElement;
+    private final RetraceClassElementImpl classElement;
 
     private ElementImpl(
         RetraceMethodResultImpl retraceMethodResult,
-        RetraceClassResultImpl.ElementImpl classElement,
+        RetraceClassElementImpl classElement,
         RetracedMethodImpl methodReference) {
       this.classElement = classElement;
       this.retraceMethodResult = retraceMethodResult;
@@ -152,7 +152,7 @@
     }
 
     @Override
-    public RetraceClassResultImpl.ElementImpl getClassElement() {
+    public RetraceClassElementImpl getClassElement() {
       return classElement;
     }
 
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceUtils.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceUtils.java
index 02166f9..f45b9b3 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceUtils.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceUtils.java
@@ -12,8 +12,8 @@
 import com.android.tools.r8.references.MethodReference;
 import com.android.tools.r8.references.Reference;
 import com.android.tools.r8.references.TypeReference;
+import com.android.tools.r8.retrace.RetraceClassElement;
 import com.android.tools.r8.retrace.RetraceClassResult;
-import com.android.tools.r8.retrace.RetraceClassResult.Element;
 import com.android.tools.r8.retrace.RetraceSourceFileResult;
 import com.android.tools.r8.retrace.RetracedClass;
 import com.android.tools.r8.retrace.RetracedMethod;
@@ -76,7 +76,10 @@
   }
 
   static RetraceSourceFileResult getSourceFile(
-      Element classElement, RetracedClass context, String sourceFile, Retracer retracer) {
+      RetraceClassElement classElement,
+      RetracedClass context,
+      String sourceFile,
+      Retracer retracer) {
     // If no context is specified always retrace using the found class element.
     if (context == null) {
       return classElement.retraceSourceFile(sourceFile);
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/MemberFieldOverlapStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/MemberFieldOverlapStackTrace.java
index 080990f..9b5ba56 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/MemberFieldOverlapStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/MemberFieldOverlapStackTrace.java
@@ -9,8 +9,8 @@
 import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.references.Reference;
+import com.android.tools.r8.retrace.RetraceFieldElement;
 import com.android.tools.r8.retrace.RetraceFieldResult;
-import com.android.tools.r8.retrace.RetraceFieldResult.Element;
 import com.android.tools.r8.retrace.Retracer;
 import com.android.tools.r8.utils.StringUtils;
 import java.util.Arrays;
@@ -47,7 +47,7 @@
         retracer.retraceClass(Reference.classFromTypeName("a.A")).lookupField("a");
     assertFalse(result.isAmbiguous());
     assertEquals(1, result.stream().count());
-    Optional<? extends Element> field = result.stream().findFirst();
+    Optional<? extends RetraceFieldElement> field = result.stream().findFirst();
     assertTrue(field.isPresent());
     assertEquals("field", field.get().getField().getFieldName());
   }
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
index e7db18c..aa6d435 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
@@ -15,6 +15,7 @@
 import com.android.tools.r8.naming.retrace.StackTrace;
 import com.android.tools.r8.naming.retrace.StackTrace.StackTraceLine;
 import com.android.tools.r8.references.MethodReference;
+import com.android.tools.r8.retrace.RetraceFrameElement;
 import com.android.tools.r8.retrace.RetraceFrameResult;
 import com.android.tools.r8.utils.Box;
 import com.android.tools.r8.utils.Visibility;
@@ -517,7 +518,7 @@
     return new TypeSafeMatcher<RetraceFrameResult>() {
       @Override
       protected boolean matchesSafely(RetraceFrameResult item) {
-        RetraceFrameResult.Element single = item.stream().collect(Collectors.toSingle());
+        RetraceFrameElement single = item.stream().collect(Collectors.toSingle());
         Box<LinePosition> currentPosition = new Box<>(startPosition);
         Box<Boolean> returnValue = new Box<>();
         single.visitFrames(
@@ -557,7 +558,7 @@
     return new TypeSafeMatcher<RetraceFrameResult>() {
       @Override
       protected boolean matchesSafely(RetraceFrameResult item) {
-        RetraceFrameResult.Element single = item.stream().collect(Collectors.toSingle());
+        RetraceFrameElement single = item.stream().collect(Collectors.toSingle());
         Box<Boolean> matches = new Box<>(true);
         single.visitFrames(
             (method, index) -> {