blob: c12ba986ca4cde408ac6fa97596b40321e0ce30e [file] [log] [blame]
// Copyright (c) 2022, 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.experimental.keepanno.annotations;
/**
* Utility class for referencing the various keep annotations and their structure.
*
* <p>Use of these references avoids poluting the Java namespace with imports of the java
* annotations which overlap in name with the actual semantic AST types.
*/
public final class KeepConstants {
public static String getDescriptor(Class<?> clazz) {
return "L" + clazz.getTypeName().replace('.', '/') + ";";
}
public static String getBinaryNameFromClassTypeName(String classTypeName) {
return classTypeName.replace('.', '/');
}
public static final class Edge {
public static final Class<KeepEdge> CLASS = KeepEdge.class;
public static final String DESCRIPTOR = getDescriptor(CLASS);
public static final String preconditions = "preconditions";
public static final String consequences = "consequences";
}
public static final class Target {
public static final Class<KeepTarget> CLASS = KeepTarget.class;
public static final String DESCRIPTOR = getDescriptor(CLASS);
public static final String classConstant = "classConstant";
}
}