blob: a29fdb5a49f709b491600fc08a1c1d343ae462c4 [file] [log] [blame]
// Copyright (c) 2020, 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.tracereferences;
import com.android.tools.r8.references.MethodReference;
import com.android.tools.r8.tracereferences.TraceReferencesConsumer.TracedClass;
import com.android.tools.r8.tracereferences.TraceReferencesConsumer.TracedField;
import com.android.tools.r8.tracereferences.TraceReferencesConsumer.TracedMethod;
import java.util.List;
class PrintUsesFormatter extends Formatter {
@Override
protected void printConstructorName(MethodReference method) {
if (method.getMethodName().equals("<clinit>")) {
append("<clinit>");
} else {
String holderName = method.getHolderClass().getTypeName();
String constructorName = holderName.substring(holderName.lastIndexOf('.') + 1);
append(constructorName);
}
}
@Override
protected void printMethod(TracedMethod method) {
append(method.getReference().getHolderClass().getTypeName() + ": ");
printNameAndReturn(method.getReference());
printArguments(method.getReference());
appendLine("");
}
@Override
protected void printPackageNames(List<String> packageNames) {
// No need to print package names for text output.
}
@Override
protected void printTypeHeader(TracedClass type) {
appendLine(type.getReference().getTypeName());
}
@Override
protected void printTypeFooter() {}
@Override
protected void printField(TracedField field) {
appendLine(
field.getReference().getHolderClass().getTypeName()
+ ": "
+ field.getReference().getFieldType().getTypeName()
+ " "
+ field.getReference().getFieldName());
}
}