blob: 9fd1f911e99b4b91e31a4a21bebd7c9e081d8d56 [file] [log] [blame]
// 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.graph;
import com.android.tools.r8.references.ClassReference;
import java.util.function.BiConsumer;
import java.util.function.BiPredicate;
import java.util.function.Consumer;
public interface ClassDefinition extends Definition {
Iterable<DexType> allImmediateSupertypes();
void forEachClassField(Consumer<? super DexClassAndField> consumer);
void forEachClassMethod(Consumer<? super DexClassAndMethod> consumer);
void forEachImmediateSuperClassMatching(
DexDefinitionSupplier definitions,
BiPredicate<? super DexType, ? super DexClass> predicate,
BiConsumer<? super DexType, ? super DexClass> consumer);
MethodCollection getMethodCollection();
ClassReference getClassReference();
DexType getType();
boolean isInterface();
@Override
default boolean isClass() {
return true;
}
}