blob: 03727d749cec3f1f10e7175174516c0b2d2d3502 [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.androidapi;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexReference;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.utils.AndroidApiLevel;
import java.util.function.BiConsumer;
class AndroidApiLevelDatabaseHelper {
static void visitAdditionalKnownApiReferences(
DexItemFactory factory, BiConsumer<DexReference, AndroidApiLevel> apiLevelConsumer) {
// StringBuilder and StringBuffer lack api definitions for the exact same methods in
// api-versions.xml. See b/216587554 for related error.
for (DexType type : new DexType[] {factory.stringBuilderType, factory.stringBufferType}) {
apiLevelConsumer.accept(
factory.createMethod(type, factory.createProto(factory.intType), "capacity"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type, factory.createProto(factory.intType, factory.intType), "codePointAt"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type, factory.createProto(factory.intType, factory.intType), "codePointBefore"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type,
factory.createProto(factory.intType, factory.intType, factory.intType),
"codePointCount"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type, factory.createProto(factory.voidType, factory.intType), "ensureCapacity"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type,
factory.createProto(
factory.voidType,
factory.intType,
factory.intType,
factory.charArrayType,
factory.intType),
"getChars"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type, factory.createProto(factory.intType, factory.stringType), "indexOf"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type,
factory.createProto(factory.intType, factory.stringType, factory.intType),
"indexOf"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type, factory.createProto(factory.intType, factory.stringType), "lastIndexOf"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type,
factory.createProto(factory.intType, factory.stringType, factory.intType),
"lastIndexOf"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type,
factory.createProto(factory.intType, factory.intType, factory.intType),
"offsetByCodePoints"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type,
factory.createProto(factory.voidType, factory.intType, factory.charType),
"setCharAt"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type, factory.createProto(factory.voidType, factory.intType), "setLength"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type, factory.createProto(factory.stringType, factory.intType), "substring"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(
type,
factory.createProto(factory.stringType, factory.intType, factory.intType),
"substring"),
AndroidApiLevel.B);
apiLevelConsumer.accept(
factory.createMethod(type, factory.createProto(factory.voidType), "trimToSize"),
AndroidApiLevel.B);
}
}
}